

# SAML 2.0 フェデレーティッドプリンシパルを有効にして AWS マネジメントコンソール にアクセス
<a name="id_roles_providers_enable-console-saml"></a>

SAML フェデレーティッドプリンシパルの AWS マネジメントコンソール へのアクセスを許可するため、ロールを使用して SAML 2.0 互換 ID プロバイダー (IdP) および AWS を設定できます。このロールは、コンソールでタスクを実行するユーザーアクセス権限を付与します。AWS にアクセスするその他の方法を SAML フェデレーティッドプリンシパルに許可する場合、次のいずれかのトピックを参照してください。
+ AWS CLI: [IAM ロールに切り替える (AWS CLI)](id_roles_use_switch-role-cli.md)
+ [IAM ロールに切り替える (Tools for Windows PowerShell)](id_roles_use_switch-role-twp.md) Tools for Windows PowerShell
+ AWS API:[IAM ロールを切り替える (AWS)](id_roles_use_switch-role-api.md)

## 概要
<a name="enable-console-saml-overview"></a>

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

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

![SAML を使用した AWS マネジメントコンソールへのシングルサインオン (SSO)](http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/images/saml-based-sso-to-console.diagram.png)


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

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

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

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

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

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

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

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

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

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

## ネットワークを AWS の SAML プロバイダーとして設定する
<a name="fedconsole-config-network-as-saml"></a>

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

## IAMで SAML プロバイダーを作成するには
<a name="fedconsole-create-saml-provider"></a>

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

## SAML フェデレーティッドプリンシパル用に AWS でアクセス許可を設定する
<a name="fedconsole-grantperms"></a>

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

SAML 暗号化が必要な場合、サインイン URL に SAML プロバイダーに割り当てる一意の識別子 AWS が含まれている必要があります。この識別子は ID プロバイダーの詳細ページで確認できます。ロールの信頼ポリシーは次のようなものです。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Federated": "arn:aws:iam::{{111122223333}}:saml-provider/ExampleOrgSSOProvider"
            },
            "Action": "sts:AssumeRoleWithSAML",
            "Condition": {
                "StringEquals": {
                    "saml:edupersonorgdn": "ExampleOrg",
                    "saml:aud": "https://{{region-code}}.signin.aws.amazon.com/saml/acs/{{SAMLSP4SHN3UIS2D558H46}}"
                }
            }
        }
    ]
}
```

------

**注記**  
ロール信頼ポリシーで使用される SAML IDP は、そのロールと同じアカウントにある必要があります。

`https://{{region-code}}.signin.aws.amazon.com/static/saml-metadata.xml` の `saml:aud` 属性にはリージョンのエンドポイントを使用することをお勧めします。実行可能な {{region-code}} 値のリストについては、「[AWS サインインエンドポイント](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)」の **[Region]** (リージョン) 列を参照します。

ロールの[アクセス許可ポリシー](access_policies.md)では、任意のロール、ユーザー、グループに付与するアクセス許可を指定します。たとえば、組織のユーザーが Amazon EC2 インスタンスを管理することを許可する場合、アクセス許可ポリシーで明示的に Amazon EC2 アクションを許可します。これは、**Amazon EC2 Full Access** 管理ポリシーなどの[管理ポリシー](access_policies_manage-attach-detach.md)を割り当てることでも行えます。

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

## 設定の完了と SAML アサーションの作成
<a name="fedconsole-configassertions"></a>

`https://{{region-code}}.signin.aws.amazon.com/static/saml-metadata.xml` または `https://signin.aws.amazon.com/static/saml-metadata.xml` にある `saml-metadata.xml` ファイルをインストールし、AWS がお客様のサービスプロバイダーであることを SAML IdP に通知します。SAMl 暗号化が必要な場合、`https://{{region-code}}.signin.aws.amazon.com/static/saml/{{SAMLSP4SHN3UIS2D558H46}}/saml-metadata.xml` にあるファイルを使用してください。

実行可能な {{region-code}} 値のリストについては、「[AWS サインインエンドポイント](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)」の **[Region]** (リージョン) 列を参照します。

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

また、認証レスポンスの一部として、IdP から AWS へ SAML 属性として渡す情報も設定します。この情報のほとんどは、ポリシーで評価できる条件コンテキストキーとして AWS に表示されます。これらの条件キーにより、適切なコンテキストで許可されたユーザーのみに、AWS リソースにアクセスするアクセス許可が付与されます。コンソールを使用するタイミングを制限する時間ウィンドウを指定できます。ユーザーが認証情報を更新する前にコンソールにアクセスできる最大時間（最大 12 時間）を指定できます。詳細については、[認証レスポンス用の SAML アサーションを設定する](id_roles_providers_create_saml_assertions.md) を参照してください