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

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

ID フェデレーションを使用すると、サードパーティの ID プロバイダー (IdP) を使用してサインインするユーザー向けに AWS リソースへのアクセス権を付与できます。ID フェデレーションを設定するには、プロバイダーを設定し、フェデレーションユーザーが持つ権限を決定する IAM ロールを作成します。フェデレーションおよび認証プロバイダーについて詳しくは、「ID プロバイダーとフェデレーション」を参照してください。

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

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

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

  2. SAML 2.0 認証ユーザーが引き受けるロールのポリシーを準備します。あらゆるロールと同様に、SAML フェデレーション用のロールにもポリシーが 2 つ含まれています。1 つは、誰がロールを引き受けることができるか(信頼されたエンティティまたはプリンシパル)を指定する信頼ポリシーです。もう 1 つは、フェデレーションユーザーがアクセスを許可または拒否される実際の AWS アクションおよびリソースを指定するアクセスポリシーであり、ユーザーポリシーやリソースポリシーに似たものです。

    SAML 2.0 プロバイダーの場合、ポリシーには次に類似した Statement エレメントが含まれている必要があります。

    信頼ポリシーは、sts:AssumeRoleWithSAML アクションの Allow 効果を付与する必要があります。このロールでは、ロールを特定のアプリケーションのみが引き受けることができるように、次の 2 つの値を使用します。

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

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

    注記

    信頼されたエンティティのポリシーは、SAML レスポンスの値を表すポリシー変数を使用するため、ポリシーの Version 要素を 2012-10-17 またはそれ以降のサポートされているバージョンに設定する必要があります。

    次の例は、SAML フェデレーションユーザーのために設計されたロールの信頼ポリシーを示しています。

    Copy
    { "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 ベースのフェデレーション用のロールを作成するには

  1. SAML 2.0 ベースのフェデレーションについて」で説明されているように、IAM で SAML プロバイダが作成されていることを確認します。

  2. コンソールのナビゲーションペインで、[Roles]、[Create role] の順に選択します。

  3. [SAML 2.0 federation] ロールタイプを選択します。

  4. [SAML Provider] リストで、作成するロールの対象であるプロバイダを選択します。

  5. SAML 2.0 のアクセスレベルメソッドを選択します。[Allow programmatic access only] を選択して、AWS API からプログラムで引き受けることのできるロールを作成します。続いて、[Allow programmatic and AWS マネジメントコンソール access] を選択して、コンソールからプログラムで引き受けることのできるロールを作成します。作成されたロールはいずれも似ていますが、コンソールから引き受けられるロールにも、特定の条件を含む信頼ポリシーがあります。その条件では明示的に、SAML オーディエンス (SAML:aud 属性) が SAML の AWS サインインエンドポイント (https://signin.aws.amazon.com/saml) に設定されます。

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

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

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

    注記

    最も一般的に使用される SAML 属性がリストに表示されます。IAM は、条件の作成に使用できる追加の属性をサポートしています(サポートされる属性のリストについては、トピック「IAM ポリシーエレメントのリファレンス」の「Available Keys for SAML Federation」を参照してください)。リストに含まれない、サポートされる SAML 属性用の条件が必要な場合は、ロール作成後に信頼ポリシーを編集して、その条件を手動で追加します。

  8. SAML 2.0 の信頼情報を確認し、[Next: Permissions] を選択します。

  9. ロールにアタッチするアクセス権限ポリシーを 1 つ以上選択します。デフォルト設定では、ロールには何も許可されていません。フェデレーティッドユーザーに許可するアクセス権限を割り当てるポリシーの横にあるボックスを選択します。続いて、[Next: Review] を選択します。

  10. [Role name] に、このロールの目的を識別しやすくするロール名を入力します。ロール名は AWS アカウント内で一意でなければなりません。大文字と小文字は区別されません。たとえば、PRODROLEprodrole というロール名を両方作成することはできません。多くのエンティティによりロールが参照されるため、作成後にロール名を変更することはできません。

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

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

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