SAML 2.0 フェデレーション用のロールを作成する (コンソール) - AWS Identity and Access Management

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

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

注記

フェデレーションの耐障害性を高めるには、IdP と AWS フェデレーションを、複数の SAML サインインエンドポイントをサポートするように設定することをお勧めします。詳細については、AWS セキュリティブログの記事「フェイルオーバーにリージョン SAML エンドポイントを使用する方法」を参照してください。

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

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

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

  2. SAML 2.0 認証ユーザーが引き受けるロールのポリシーを準備します。すべてのロールに該当することですが、SAML フェデレーション用のロールにも 2 つのポリシーが含まれています。1 つは、ロールの引き受け先を指定するロール信頼ポリシーです。もう 1 つは IAM アクセス許可ポリシーです。このポリシーでは、フェデレーティッドユーザーにアクセスを許可または拒否する 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:saml-provider/PROVIDER-NAME"}, "Condition": {"StringEquals": {"SAML:aud": "https://signin.aws.amazon.com/saml"}} } }

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

SAML 用のロールの作成

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

SAML ベースのフェデレーション用のロールを作成するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

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

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

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

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

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

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

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

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

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

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

    注記

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

  8. SAML 2.0 の信頼情報を確認し、[Next] (次へ) を選択します。

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

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

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

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

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

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

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

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

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

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

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