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

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

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

IAM コンソールのロール作成ウィザードには、2 つのパスが用意されています。1 つのパスでは、AWS マネジメントコンソールへのシングルサインオン(SSO)用のロールを作成します。もう 1 つのパスでは、プログラムで引き受けることができるロールを作成します。以下の手順で、この 2 つのパスについて説明します。両方のパスで作成されたロールは似ていますが、SSO のパスでは、信頼ポリシーに特定の条件が含まれるロールが作成されます。その条件では明示的に、SAML オーディエンス (aud 属性) が SAML の AWS サインインエンドポイント (https://signin.aws.amazon.com/saml) に設定されます。

トピック

    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 new role] の順に選択します。

    3. [Role for identity provider access] を選択します。

    4. [Grant Web Single Sign-On (SSO) access to SAML identity providers] または [Grant API access to SAML identity providers] のうち、作成するロールのタイプを選択します。

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

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

      SAML シングルサインオン用のロールを作成する場合、SAML:aud 属性が自動的に追加されて AWS SAML エンドポイントの URL (https://signin.aws.amazon.com/saml) に設定されます。

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

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

    8. [Next Step] を選択します。ウィザードの編集可能なボックスにロール用の信頼ポリシーが表示されます。入力した情報に基づいて、ポリシーに条件が含まれます。

    9. ポリシーの確認と変更が終了したら、[Next Step] を再度選択します。

    10. デフォルト設定では、ロールには何も許可されていません。フェデレーションユーザーに許可する権限を割り当てる管理ポリシーを選択し、[Next Step] を選択します。

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

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

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

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