

# SAML 2.0 フェデレーション用のロールを作成する (コンソール)
<a name="id_roles_create_for-idp_saml"></a>

 AWS アカウント で IAM ユーザーを作成する代わりに、SAML 2.0 フェデレーションを使用できます。ID プロバイダー (IdP) を使用すると、AWS の外部のユーザー ID を管理して、これらの外部ユーザー ID にアカウント内の AWS リソースに対するアクセス許可を付与できます。フェデレーションおよび認証プロバイダーについて詳しくは、「[ID プロバイダーと AWS とのフェデレーション](id_roles_providers.md)」を参照してください。

**注記**  
フェデレーションの耐障害性を高めるには、IdP と AWS フェデレーションを、複数の SAML サインインエンドポイントをサポートするように設定することをお勧めします。詳細については、AWS セキュリティブログの記事「[フェイルオーバーにリージョン SAML エンドポイントを使用する方法](https://aws.amazon.com/blogs//security/how-to-use-regional-saml-endpoints-for-failover)」を参照してください。

## SAML 用のロールを作成するための前提条件
<a name="idp_saml_Prerequisites"></a>

SAML 2.0 フェデレーション用のロールを作成する前に、まず次の基本的なステップを実行する必要があります。<a name="saml-prereqs"></a>

**SAML 2.0 フェデレーション用のロールを作成する準備をするには**

1. <a name="idpsamlstep1"></a>SAML ベースのフェデレーション用のロールを作成する前に、IAM で SAML プロバイダーを作成する必要があります。詳細については、「[IAM で SAML ID プロバイダーを作成する](id_roles_providers_create_saml.md)」を参照してください。

1. SAML 2.0 認証ユーザーが引き受けるロールのポリシーを準備します。すべてのロールに該当することですが、SAML フェデレーション用のロールにも 2 つのポリシーが含まれています。1 つは、ロールの引き受け先を指定するロール信頼ポリシーです。もう 1 つは IAM アクセス許可ポリシーです。このポリシーでは、SAML フェデレーティッドプリンシパルにアクセスを許可または拒否する AWS アクションやリソースが指定されます。

   ロールの信頼ポリシーを作成する場合は、以下の 3 つの値を使用して当該アプリケーションにのみロールの引き受けを許可する必要があります。
   + `Action` 要素で、`sts:AssumeRoleWithSAML` アクションを使用します。
   + `Principal` 要素で、`{"Federated":{{ARNofIdentityProvider}}}` 文字列を使用します。`{{ARNofIdentityProvider}}` を、[Step 1](#idpsamlstep1) で作成した [SAML ID プロバイダー](id_roles_providers_saml.md)の ARN と置き換えます。
   + `Condition` 要素では、 `StringEquals` 条件を使用して、SAML レスポンスの `saml:aud` 属性が、コンソールにサインインするときにブラウザに表示される URL と一致することをテストします。このサインインエンドポイント URL は、ID プロバイダーの SAML 受取人属性です。特定のリージョン内にサインイン URL を含めることができます。AWS では、フェデレーションの耐障害性を向上させるために、グローバルエンドポイントの代わりにリージョンエンドポイントを使用することをお勧めします。実行可能な {{region-code}} 値のリストについては、「[AWS サインインエンドポイント](https://docs.aws.amazon.com/general/latest/gr/signin-service.html)」の **[リージョン]** 列を参照します。

     サインイン URL には、SAML プロバイダーに割り当てられる一意の識別子 AWS が含まれている必要があります。IAM コンソールで ID プロバイダーを選択して詳細ページを表示することで、一意の識別子を確認できます。

     `https://{{region-code}}.signin.aws.amazon.com/saml/acs/{{IdP-ID}}`

   次の例では、SAML フェデレーティッドユーザー用に設計された信頼ポリシーを示します。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": {
           "Effect": "Allow",
           "Action": "sts:AssumeRoleWithSAML",
           "Principal": {
               "Federated": "arn:aws:iam::{{111122223333}}:saml-provider/{{PROVIDER-NAME}}"
           },
           "Condition": {
               "StringEquals": {
                   "SAML:aud": "https://{{region-code}}.signin.aws.amazon.com/saml"
               }
           }
       }
   }
   ```

------

   プリンシパル ARN は、IAM で作成した SAML プロバイダー用の実際の ARN に置き換えます。これは、独自のアカウント ID およびプロバイダー名になります。

## SAML 用のロールの作成
<a name="idp_saml_Create"></a>

前提条件のステップを完了すると、SAML ベースのフェデレーション用のロールを作成できます。

**SAML ベースのフェデレーション用のロールを作成するには**

1. AWS マネジメントコンソール にサインインして、IAM コンソール [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) を開きます。

1. IAM コンソールのナビゲーションペインで、**[ロール]**、**[ロールの作成]** の順に選択します。

1. **[SAML 2.0 フェデレーション]** ロールタイプを選択します。

1. **[SAML プロバイダーの選択]** で、ロールのプロバイダーを選択します。

1. SAML 2.0 のアクセスレベルメソッドを選択します。
   + **[プログラムによるアクセスのみを許可する]** を選択して、AWS API または AWS CLI からプログラムで引き受けることができるロールを作成します。
   + [**プログラムによるアクセスと AWS マネジメントコンソール によるアクセスを許可する**] を選択して、AWS マネジメントコンソール からプログラムで引き受けることのできるロールを作成します。

   作成されたロールはいずれも似ていますが、コンソールから引き受けられるロールにも、特定の条件を含む信頼ポリシーがあります。この条件により、SAML オーディエンス (`SAML:aud` 属性) が SAML プロバイダーの AWS サインインエンドポイントに設定されていることが明示的に保証されます。

1. 属性を定義する手順は、アクセスタイプによって異なります。
   + プログラムによるアクセス用のロールを作成する場合は、**[属性]** リストから属性を選択します。次に、**[値]** ボックスで、ロールに追加する値を入力します。これにより、ロールアクセスは、指定した属性を SAML 認証応答 (アサーション) に含んでいる ID プロバイダーのユーザーのみに制限されます。ロールが組織のユーザーのサブセットに限定されるように、少なくとも 1 つの属性を指定する必要があります。
   + プログラムによるアクセスと AWS マネジメントコンソール アクセスのロールを作成する場合、**[サインインエンドポイント]** セクションでは、コンソールにサインインするときにブラウザに表示される URL を定義します。このエンドポイントは、ID プロバイダーの SAML 受取人属性であり、[`saml:aud`](reference_policies_iam-condition-keys.md#condition-keys-saml) コンテキストキーにマッピングされます。詳細については、「[認証レスポンス用の SAML アサーションを設定する](id_roles_providers_create_saml_assertions.md)」を参照してください。

     1. **[リージョンエンドポイント]** または **[非リージョンエンドポイント]** を選択します。フェデレーションの耐障害性を向上させるには、複数のリージョンにまたがる SAML サインインエンドポイントを使用することをお勧めします。

     1. **リージョン**では、SAML プロバイダーが AWS サインインでサポートするリージョンを選択します。

     1.  **[一意の識別子を含めるサインイン URL]** には、サインインエンドポイントに SAML ID プロバイダーに割り当てられた一意の識別子 AWS を含めるかどうかを選択します。このオプションは、暗号化された SAML アサーションに必要です。詳細については、「[SAML 2.0 フェデレーション](id_roles_providers_saml.md)」を参照してください。

1. 信頼ポリシーに属性関連の条件をさらに追加するには、**[条件 (オプション)]** を選択し、続いて追加の条件を選択して、値を指定します。
**注記**  
最も一般的に使用される SAML 属性がリストに表示されます。IAM では、条件の作成に使用できる追加の属性をサポートしています。サポートされる属性のリストについては、「[SAML ベースのフェデレーションに利用可能なキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_iam-condition-keys.html#condition-keys-saml)」を参照してください。リストに含まれないサポート対象の SAML 属性の条件が必要な場合、その条件は次のステップで手動で追加できます。これを行うには、ロールを作成後に信頼ポリシーを編集します。

1.  SAML 2.0 の信頼情報を確認し、**[次へ]** を選択します。

1. IAM には、あなたのアカウント内の AWS 管理ポリシーとカスタマー管理ポリシーのリストがあります。アクセス許可ポリシーとして使用するポリシーを選択するか、**[ポリシーの作成]** を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、「[IAM ポリシーの作成](access_policies_create-console.md#access_policies_create-start)」を参照してください。ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。SAML フェデレーションユーザーに付与するアクセス許可ポリシーの横にあるチェックボックスをオンにします。必要に応じて、この時点でポリシーを選択せずに、後でポリシーをロールにアタッチすることもできます。デフォルトでは、ロールにはいずれのアクセス権限もありません。

1. (オプション) [アクセス許可の境界](access_policies_boundaries.md)を設定します。これはアドバンスド機能です。

   **[アクセス許可の境界]** セクションを開き、**[アクセス許可の境界を使用してロールのアクセス許可の上限を設定する]** を選択します。アクセス許可の境界として使用するポリシーを選択します。

1. **[次へ]** を選択します。

1. **[次へ: レビュー]** を選択します。

1. **[ロール名]** に、ロールの名前を入力します。ロール名は AWS アカウント アカウント内で一意である必要があります。大文字と小文字は区別されません。例えば、**PRODROLE** と **prodrole** というロール名を両方作成することはできません。他の AWS リソースがロールを参照している場合があるため、作成後はロールの名前を変更できません。

1. (オプション) **[説明]** には、新しいロールの説明を入力します。

1. **[ステップ 1: 信頼済みエンティティの選択]** または **[ステップ 2: 権限の追加]** のセクションで **[編集]** を選択し、ロールのユースケースと権限を変更します。

1. (オプション) タグをキーバリューのペアとしてアタッチして、メタデータをロールに追加します。IAM におけるタグの使用の詳細については、「[AWS Identity and Access Management リソースのタグ](id_tags.md)」を参照してください。

1. ロール情報を確認し、**ロールの作成** を選択します。

ロールの作成後に、AWS に関する情報を使用して ID プロバイダーソフトウェアを設定し、SAML 信頼を確立します。この情報には、SAML フェデレーションユーザーが使用するロールが含まれます。これは、IdP と AWS との証明書利用者信頼の設定と呼ばれます。詳細については、「[証明書利用者の信頼およびクレームの追加によって SAML 2.0 IdP を設定する](id_roles_providers_create_saml_relying-party.md)」を参照してください。