View a markdown version of this page

サードパーティー ID プロバイダーにロールを作成する - AWS Identity and Access Management

サードパーティー ID プロバイダーにロールを作成する

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

OIDC と SAML のフェデレーティッドプリンシパルのロールの作成 (コンソール)

ロールを作成する手順は、選択するサードパーティープロバイダーによって異なります。

フェデレーションアクセス用のロールの作成 (AWS CLI)

サポートされている ID プロバイダー (OIDC または SAML) 用のロールを AWS CLI から作成するステップは同じです。違いは、前提条件のステップで作成する信頼ポリシーの内容です。使用するプロバイダーのタイプに合わせた前提条件セクションのステップに従って開始します。

AWS CLI を使用したロールの作成には、複数のステップがあります。コンソールを使用してロールを作成する場合、多くのステップは自動的に行われますが、AWS CLI を使用する場合は、各ステップを明示的に実行する必要があります。ロールを作成して、これにアクセス許可ポリシーを割り当てる必要があります。必要に応じて、ロールのアクセス許可の境界を設定することもできます。

ロールを作成するには (AWS CLI)
  1. ロール aws iam create-role を作成します。

  2. アクセス許可ポリシー aws iam attach-role-policy をロールにアタッチします。

    または

    ロールのインラインアクセス許可ポリシーaws iam put-role-policy を作成します。

  3. (オプション) タグ (aws iam tag-role) をアタッチして、カスタム属性をロールに追加します。

    詳細については、「IAM ロールのタグの管理 (AWS CLI または AWS API)」を参照してください。

  4. (オプション) ロールのアクセス許可の境界 aws iam put-role-permissions-boundary を設定します。

    アクセス許可の境界では、ロールに許可されるアクセス許可の上限を設定します。アクセス許可の境界は AWS のアドバンスド機能です。

次の例では、シンプルな環境で ID プロバイダーのロールを作成するための最初の 2 つのステップ (最も一般的なステップ) を示します。この例では、123456789012 アカウントの任意のユーザーに、ロールを引き受けて Amazon S3 バケット example_bucket を表示することを許可します。また、この例では、Windows が動作しているコンピュータで AWS CLI を実行していること、さらに認証情報を使って AWS CLI を設定済みであることを前提とします。詳細については、「Configuring the AWS Command Line Interface」を参照してください。

次の例では、ユーザーが Amazon Cognito を使用してサインインする場合のモバイルアプリ用の信頼ポリシーを示します。この例では、us-east:12345678-ffff-ffff-ffff-123456 は Amazon Cognito によって割り当てられた ID プール ID を表します。

JSON
{ "Version":"2012-10-17", "Statement": { "Sid": "RoleForCognito", "Effect": "Allow", "Principal": {"Federated": "cognito-identity.amazonaws.com"}, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": {"StringEquals": {"cognito-identity.amazonaws.com:aud": "us-east:12345678-ffff-ffff-ffff-123456"}} } }

以下のアクセス許可ポリシーでは、Amazon S3 バケット example_bucket に対して ListBucket アクションのみを実行することを、ロールを引き受ける任意のユーザーに許可します。

JSON
{ "Version":"2012-10-17", "Statement": { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "arn:aws:s3:::example_bucket" } }

この Test-Cognito-Role ロールを作成するには、まず前の信頼ポリシーを trustpolicyforcognitofederation.json という名前で、前のアクセス許可ポリシーを permspolicyforcognitofederation.json という名前で、ローカル policies ドライブの C: フォルダに保存する必要があります。次に、以下のコマンドを使用してロールを作成し、インラインポリシーをアタッチできます。

# Create the role and attach the trust policy that enables users in an account to assume the role. $ aws iam create-role --role-name Test-Cognito-Role --assume-role-policy-document file://C:\policies\trustpolicyforcognitofederation.json # Attach the permissions policy to the role to specify what it is allowed to do. aws iam put-role-policy --role-name Test-Cognito-Role --policy-name Perms-Policy-For-CognitoFederation --policy-document file://C:\policies\permspolicyforcognitofederation.json

フェデレーションアクセス用のロールの作成 (AWS API)

サポートされている ID プロバイダー (OIDC または SAML) 用のロールを AWS CLI から作成するステップは同じです。違いは、前提条件のステップで作成する信頼ポリシーの内容です。使用するプロバイダーのタイプに合わせた前提条件セクションのステップに従って開始します。

ロールを作成する方法 (AWS API)
  1. ロールとして CreateRole を作成します。

  2. アクセス許可ポリシーとして AttachRolePolicy をロールにアタッチします。

    または

    ロールのインラインアクセス許可ポリシー PutRolePolicy を作成します。

  3. (オプション) タグ (TagRole) をアタッチして、カスタム属性をロールに追加します。

    詳細については、「IAM ロールのタグの管理 (AWS CLI または AWS API)」を参照してください。

  4. (オプション) ロールのアクセス許可の境界 PutRolePermissionsBoundary を設定します。

    アクセス許可の境界では、ロールに許可されるアクセス許可の上限を設定します。アクセス許可の境界は AWS のアドバンスド機能です。