

# サードパーティー ID プロバイダーにロールを作成する
<a name="id_roles_create_for-idp"></a>

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

## OIDC と SAML のフェデレーティッドプリンシパルのロールの作成 (コンソール)
<a name="roles-creatingrole-federated-users-console"></a>

ロールを作成する手順は、選択するサードパーティープロバイダーによって異なります。
+ OpenID Connect (OIDC) については、「[OpenID Connect フェデレーション用のロールを作成する (コンソール）](id_roles_create_for-idp_oidc.md)」を参照してください。
+ SAML 2.0 については、「[SAML 2.0 フェデレーション用のロールを作成する (コンソール)](id_roles_create_for-idp_saml.md)」を参照してください。

## フェデレーションアクセス用のロールの作成 (AWS CLI)
<a name="roles-creatingrole-identityprovider-cli"></a>

サポートされている ID プロバイダー (OIDC または SAML) 用のロールを AWS CLI から作成するステップは同じです。違いは、前提条件のステップで作成する信頼ポリシーの内容です。使用するプロバイダーのタイプに合わせた**前提条件**セクションのステップに従って開始します。
+ OIDC プロバイダーについては、「[OIDC 用のロールを作成するための前提条件](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites)」を参照してください。
+ SAML プロバイダーについては、「[SAML 用のロールを作成するための前提条件](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites)」を参照してください。

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

**ロールを作成するには (AWS CLI)**

1. ロール [aws iam create-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-role.html) を作成します。

1. アクセス許可ポリシー [aws iam attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html) をロールにアタッチします。

    または

   ロールのインラインアクセス許可ポリシー[aws iam put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html) を作成します。

1. (オプション) タグ ([aws iam tag-role](https://docs.aws.amazon.com/cli/latest/reference/iam/tag-role.html)) をアタッチして、カスタム属性をロールに追加します。

   詳細については、「[IAM ロールのタグの管理 (AWS CLI または AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api)」を参照してください。

1. (オプション) ロールの[アクセス許可の境界](access_policies_boundaries.md) [aws iam put-role-permissions-boundary](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-permissions-boundary.html) を設定します。

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

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

次の例では、ユーザーが 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)
<a name="roles-creatingrole-identityprovider-api"></a>

サポートされている ID プロバイダー (OIDC または SAML) 用のロールを AWS CLI から作成するステップは同じです。違いは、前提条件のステップで作成する信頼ポリシーの内容です。使用するプロバイダーのタイプに合わせた**前提条件**セクションのステップに従って開始します。
+ OIDC プロバイダーについては、「[OIDC 用のロールを作成するための前提条件](id_roles_create_for-idp_oidc.md#idp_oidc_Prerequisites)」を参照してください。
+ SAML プロバイダーについては、「[SAML 用のロールを作成するための前提条件](id_roles_create_for-idp_saml.md#idp_saml_Prerequisites)」を参照してください。

**ロールを作成する方法 (AWS API)**

1. ロールとして [CreateRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateRole.html) を作成します。

1. アクセス許可ポリシーとして [AttachRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_AttachRolePolicy.html) をロールにアタッチします。

    または

   ロールのインラインアクセス許可ポリシー [PutRolePolicy](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePolicy.html) を作成します。

1. (オプション) タグ ([TagRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_TagRole.html)) をアタッチして、カスタム属性をロールに追加します。

   詳細については、「[IAM ロールのタグの管理 (AWS CLI または AWS API)](id_tags_roles.md#id_tags_roles_procs-cli-api)」を参照してください。

1. (オプション) ロールの[アクセス許可の境界](access_policies_boundaries.md) [PutRolePermissionsBoundary](https://docs.aws.amazon.com/IAM/latest/APIReference/API_PutRolePermissionsBoundary.html) を設定します。

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