メニュー
AWS Identity and Access Management
ユーザーガイド

SAML 2.0 フェデレーションユーザーが AWS マネジメントコンソールにアクセス可能にする

SAML 2.0 互換 IdP および AWS を設定するロールを使用して、フェデレーションユーザーが AWS マネジメントコンソールにアクセスできるようにします。このロールは、コンソールでタスクを実行するユーザーアクセス権限を付与します。AWS にアクセスするためのその他の方法を SAML フェデレーションユーザーに付与する場合は、以下のトピックの 1 つを参照してください。

概要

次の図は、SAML 対応のシングルサインオンについて処理の流れを示しています。

注記

この SAML の使用方法の場合、ワークフローでユーザーの代わりに AWS マネジメントコンソールが開かれるので、SAML 2.0 ベースのフェデレーションについて に示されている一般的な使用方法とは異なります。これには、AssumeRoleWithSAML API を直接呼び出す代わりに、AWS SSO エンドポイントを使用する必要があります。エンドポイントはユーザーの代わりに API を呼び出し、URL を返すと、それによってユーザーのブラウザーが AWS マネジメントコンソールへ自動的にリダイレクトされます。

 SAML を使用した AWS マネジメントコンソールへのシングルサインオン(SSO)

この図は次のステップを示しています。

  1. ユーザーは組織のポータルにアクセスして、AWS マネジメントコンソール に移動するオプションを選択します。一般的に、組織のポータルは、組織と AWS 間の信頼の交換を処理する ID プロバイダー(IdP)の機能です。たとえば、Active Directory フェデレーションサービスでは、ポータル URL は次のようになります。https://ADFSServiceName/adfs/ls/IdpInitiatedSignOn.aspx

  2. ポータルが組織内のユーザーの ID を確認します。

  3. ポータルは、ユーザーを識別するアサーションを含む SAML アサーションレスポンスを生成し、ユーザーの属性を含めます。コンソールセッションが有効な期間を指定する SessionDuration という SAML アサーションの属性を含むよう IdP を設定できます。 ポータルはこのレスポンスをクライアントブラウザーに送信します。

  4. クライアントブラウザーは AWS のシングルサインオンエンドポイントにリダイレクトされ、SAML アサーションを投稿します。

  5. エンドポイントは、ユーザーの代わりに一時的なセキュリティ認証情報をリクエストし、コンソールのサインイン URL を作成します。

  6. AWS は、サインイン URL をクライアントにリダイレクトとして送信します。

  7. クライアントのブラウザーは AWS マネジメントコンソールにリダイレクトされます。複数の IAM ロールに対応付けられた属性を SAML 認証レスポンスが含む場合は、最初にコンソールへのアクセスに使用するロールを選択する画面が表示されます。

ユーザーの立場では、この処理を意識することはありません。ユーザーは組織の内部ポータルから AWS マネジメントコンソールに移動するだけで、AWS 認証情報を指定する必要はありません。

以下のセクションでは、この動作を設定する方法の概要と、詳細なステップへのリンクをご紹介します。

ネットワークを AWS の SAML プロバイダーとして設定する

組織のネットワーク内で、組織の ID ストア(Windows Active Directory など)が、Windows Active Directory Federation Services や Shibboleth などの SAML ベースの ID プロバイダー(IdP)と連携するように設定します。IdP を使用して、組織を ID プロバイダーとして記述し、認証キーを含むドキュメントメタデータを生成します。また、AWS マネジメントコンソール に対するユーザーリクエストを AWS SAML エンドポイントにルーティングして、SAML アサーションを使って認証するように、組織のポータルを設定します。metadata.xml ファイルを生成するための IdP の設定方法は、IdP によって異なります。手順については IdP の文書を参照してください。また、サードパーティの SAML ソリューションプロバイダーと AWS の統合 には、サポートされる数多くの SAML プロバイダーのウェブドキュメントへのリンクが掲載されています。

IAM で SAML プロバイダーを作成する

次に、AWS マネジメントコンソールにサインインし、IAM コンソールへ移動します。ここで、新しい SAML プロバイダーを作成します。これは、組織の ID プロバイダーに関する情報を保持する IAM のエンティティです。このプロセスの一環として、前のセクションで組織の IdP ソフトウェアによって生成されたメタデータドキュメントをアップロードします。詳細については、「SAML ID プロバイダーの作成」を参照してください。

フェデレーションユーザーのアクセス権限を AWS で設定する

次のステップでは、IAM と組織の IdP との間の信頼関係を確立し、フェデレーション目的で組織の IdP をプリンシパル (信頼されたエンティティ) として識別する IAM ロールを作成します。ロールは、組織の IdP によって認証されたユーザーが AWS で何を実行できるかも定義します。このロールは、IAM コンソールを使用して作成できます。誰がロールを引き受けることができるかを示す信頼ポリシーを作成する際には、IAM で既に作成済みの SAML プロバイダーと、ロールを引き受けるためにユーザーが一致する必要がある 1 つ以上の SAML 属性を指定します。たとえば、SAML の eduPersonOrgDN 値が ExampleOrg であるユーザーのみにサインインを許可するように指定できます。 ロールウィザードは、そのロールが AWS マネジメントコンソールへのサインインだけで引き受けられるように、saml:aud 属性をテストする条件を自動的に追加します。ロールの信頼ポリシーは次のようなものです。

Copy
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": {"Federated": "arn:aws:iam::ACCOUNT-ID-WITHOUT-HYPHENS:saml-provider/ExampleOrgSSOProvider"}, "Action": "sts:AssumeRoleWithSAML", "Condition": {"StringEquals": { "saml:edupersonorgdn": "ExampleOrg", "saml:aud": "https://signin.aws.amazon.com/saml" }} }] }

ロールのアクセスポリシーでは、どのロール、ユーザー、グループにも付与するアクセス権限を指定します。たとえば、組織のユーザーが Amazon EC2 インスタンスを管理することを許可する場合、アクセスポリシーで明示的に Amazon EC2 アクションを許可します。このためには、Amazon EC2 フルアクセス管理ポリシーなどの 管理ポリシーを割り当てます。

SAML IdP のロールの作成に関する詳細については、「SAML 2.0 フェデレーション用のロールの作成 (コンソール)」を参照してください。

SAML IdP の設定を終了し、SAML 認証レスポンスのアサーションを作成する

ロールを作成したら saml-metadata.xml ファイルを https://signinaws.amazon.com/static/saml-metadata.xml からダウンロードしてインストールし、サービスプロバイダーとしての AWS を SAML IdP に通知します。ファイルのインストール方法は IdP によって異なります。プロバイダーによっては、URL の入力を選択できる場合があります。この場合、IdP がお客様の代わりにファイルを取得してインストールします。また、URL からファイルをダウンロードし、ローカルファイルとして指定する必要があるプロバイダーもあります。詳細については IdP の文書を参照してください。また、サードパーティの SAML ソリューションプロバイダーと AWS の統合 には、サポートされる数多くの SAML プロバイダーのウェブドキュメントへのリンクが掲載されています。

また、認証レスポンスの一部として、IdP から AWS へ SAML 属性として渡す情報も設定します。この情報のほとんどは、ポリシーで評価できる条件コンテキストキーとして AWS に表示され、適切なコンテキストの承認されたユーザーのみに AWS リソースへのアクセス権限が付与されるようにします。 コンソールが使用される時間を制限する時間枠、およびユーザーが認証情報を更新する前にコンソールにアクセスできる最大時間 (最大 12 時間) を指定できます。 詳細については、「認証レスポンスの SAML アサーションを設定する」を参照してください。

このページの内容: