AWS Identity and Access Management
ユーザーガイド

SAML 2.0 フェデレーション用のロールの作成 (コンソール)

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

SAML 用のロールを作成するための前提条件

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

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

  1. SAML ベースのフェデレーション用のロールを作成する前に、IAM で SAML プロバイダーを作成する必要があります。詳細については、「SAML ID プロバイダーの作成」を参照してください。

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

    ロールの信頼ポリシーを作成する場合は、以下の 3 つの値を使用して当該アプリケーションにのみロールの引き受けを許可する必要があります。

    • Action 要素で、sts:AssumeRoleWithSAML アクションを使用します。

    • Principal 要素で、{"Federated":ARNofIdentityProvider} 文字列を使用します。ARNofIdentityProvider を、ステップ 1 で作成した SAML ID プロバイダーの ARN と置き換えます。

    • Condition 要素では StringEquals 条件を使用して、SAML レスポンスからの saml:aud 属性が AWS の SAML フェデレーションエンドポイントと一致することをテストします。

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

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

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

SAML 用のロールの作成

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

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

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

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

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

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

  5. SAML 2.0 のアクセスレベルメソッドを選択します。

    • [プログラムによるアクセスのみを許可する] を選択して、AWS API または AWS CLI からプログラムで引き受けることができるロールを作成します。

    • [プログラムによるアクセスと AWS マネジメントコンソールによるアクセスを許可する] を選択して、コンソールからプログラムで引き受けることのできるロールを作成します。

    作成されたロールはいずれも似ていますが、コンソールから引き受けられるロールにも、特定の条件を含む信頼ポリシーがあります。その条件では明示的に、SAML 対象者 (SAML:aud 属性) が SAML の AWS サインインエンドポイント (https://signin.aws.amazon.com/saml) に設定されます。

  6. プログラムによるアクセス用のロールを作成する場合は、[属性] リストから属性を選択します。次に、[] ボックスで、ロールに追加する値を入力します。これにより、ロールアクセスは、指定した属性を SAML 認証応答 (アサーション) に含んでいる ID プロバイダーのユーザーのみに制限されます。ロールが組織のユーザーのサブセットに限定されるように、少なくとも 1 つの属性を指定する必要があります。

    プログラムによるアクセスとコンソールによるアクセス用のロールを作成する場合、SAML:aud 属性が自動的に追加され、AWS SAML エンドポイントの URL (https://signin.aws.amazon.com/saml) に設定されます。

  7. 信頼ポリシーに属性関連の条件をさらに追加するには、[条件の追加 (オプション)] を選択し、続いて追加の条件を選択して、値を指定します。

    注記

    最も一般的に使用される SAML 属性がリストに表示されます。IAM は、条件の作成に使用できる追加の属性をサポートしています (サポートされる属性のリストについては、「IAM JSON ポリシーエレメントのリファレンス」トピックの「SAML ベースのフェデレーションに利用可能なキー」を参照)。 リストに含まれないサポート対象の SAML 属性の条件が必要な場合、その条件は次のステップで手動で追加できます。これを行うには、ロールを作成後に信頼ポリシーを編集します。

  8. SAML 2.0 の信頼情報を確認し、[Next: Permissions (次へ: アクセス許可)] を選択します。

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

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

    [Set permissions boundary (アクセス許可の境界の設定)] セクションを開き、[Use a permissions boundary to control the maximum role permissions (アクセス許可の境界を使用してロールのアクセス許可の上限を設定する)] を選択します。アクセス許可の境界として使用するポリシーを選択します。

  11. [Next: Review] を選択します。

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

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

  14. ロール情報を確認し、[Create role] を選択します。

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