GSuiteのアカウントでAWSマネジメントコンソールにログインする(SAML) はじめに イーツー・インフォでは、AWSの複数アカウントを運用しています。そういえばReadOnlyのアカウント作ってないなーと思って作り始めたのですが、ちょうどいいタイミングで「G Suite アカウントを用いた AWS へのシングルサインオン」という記事が投稿されました。かっこよすぎ。 会社でGSuiteを使っていることもあり、さっそくやってみました。 以下の情報が必要になります。 G Suite Basic,G Suite Business,G Suite Enterpriseいずれかのプラン(有料) GSuite管理者アカウント IAMユーザーを作成できるAWS権限 連携の方法(SAML) GoogleがサポートしているSAMLという方法でログイン連携(シングルサインオン)をおこないます。SAMLはSecurity Assertion Markup Languageという、HTTPやSOAPでやり取りをおこなう方式です。 G Suite アカウントを用いた AWS へのシングルサインオン」より引用 GSuiteのユーザー属性の追加 管理コンソールでユーザー画面を開き、カスタム属性の追加を選択します。 以下の通りカスタム属性を追加します。 GSuiteのSAMLの有効化 続いてGSuiteでSAMLを有効化します。 管理コンソールで「アプリ」を選択します。 右下の+ボタンでアプリケーションを追加します。 AWSのアプリケーションを追加すると下の画像のようになります。 証明書をダウンロードします。あとで使います。 属性のマッピング情報を追加します。AWSの説明のとおり、標準ではセッションの有効期間が1時間となっているため、変更したい場合はSession Durationを設定します。変更しない場合は不要です。 また、デフォルトの Session の有効期間は1時間であり、作業中に切れることも多いかと思います。パラメータで可変にするためには属性名に https://aws.amazon.com/SAML/Attributes/SessionDuration を設定し、値に “Session Duration” を設定します。 GSuite側の基本設定は完了です。 続いてAWS側の設定をおこないます。 AWSでIDプロバイダー(IdP)を作成 IAM → IDプロバイダー → プロバイダの作成 プロバイダーのタイプにSAMLを選択して、任意のプロバイダ名を入力します。 続いて、メタデータドキュメントに、前の手順でGSuiteからダウンロードした証明書ファイルをアップロードします。 できた 続いてロールをつくります。 IAM → ロール → ロールの作成で、SAML 2.0フェデレーションを選択した後、SAMLプロバイダーに先程作成したSAMLプロバイダーを選択します。 必要な権限を選択した後、ユーザーにロールを紐付ければAWS側の設定は完了です。 GSuiteユーザーのログイン設定 ここまでで必要な準備は完了したので、GSuiteのユーザーアカウントをAWSログイン用のプロバイダーと紐付けます。 GSuiteの管理画面から対象のユーザーを選択し、ユーザー情報をクリックします。 最初の方で作成したAWSのカスタム属性が表示されるので、値を設定します。 値は、 「ロールのARN:IDプロバイダーのARN 」という形式で指定します。以下の図のようなイメージです。 ログインする GSuiteのメニューにAWSのログインアイコンが表示されます。このメニューからAWSアカウントにログインできるようになりました。 複数アカウントでもログイン可能です。 1Password導入時もそうでしたが、パスワードを思い出して入力する手間をなるべく減らしたいので、またひとつ効率化ができました。 authAuthorizationAWSGSuiteIdPLoginSAMLSSOインフラシングルサインオンログイン Tweet