

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ロール認証情報プロバイダーを引き受けます
<a name="feature-assume-role-credentials"></a>

**注記**  
設定ページのレイアウトの理解、または以下の ** AWS SDKs**「」を参照してください[このガイドの設定ページについて](settings-reference.md#settingsPages)。

ロールでは、他の方法ではアクセスできない AWS リソースへのアクセスに、一時的なセキュリティ認証情報のセットを使用する必要があるとします。これらの一時的な認証情報は、アクセスキー ID、シークレットアクセスキー、およびセキュリティトークンで構成されています。

ロールを引き受けるように SDK またはツールを設定するには、まず引き受けるのための特定の*ロール*を作成または特定する必要があります。IAM ロールは、ロール (Amazon リソースネーム (「[ARN](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html)」 )で一意に識別されます。ロールは別のエンティティとの信頼関係を確立します。ロールを使用する信頼されたエンティティは AWS のサービス、、別の AWS アカウント、ウェブ ID プロバイダーまたは OIDC、または SAML フェデレーションです。

IAM ロールが特定されると、そのロールから信頼されている場合は、そのロールによって付与された権限を使用するように SDK またはツールを設定できます。これを行うには、次のコマンドを使用します。

これらの設定の使用を開始するためのガイダンスについては、このガイドの「[AWS SDKsとツールを認証するための AWS 認証情報を持つロールの引き受け](access-assume-role.md)」を参照してください。

## ロール認証情報プロバイダーを引き受けます
<a name="feature-assume-role-credentials-settings"></a>

この機能を設定するには、以下のように使用します。

**`credential_source` - 共有 AWS `config`ファイル設定**  
Amazon EC2 インスタンスまたは Amazon Elastic Container Service のコンテナ内で使用され、`role_arn` パラメータで指定したロールを引き受けるために使用する認証情報を SDK またはツールが検索できる場所を指定します。  
**デフォルト値：** なし  
**有効な値:**  
+ **Environment** – SDK またはツールが環境変数 [`AWS_ACCESS_KEY_ID` と `AWS_SECRET_ACCESS_KEY`](feature-static-credentials.md) からソース認証情報を取得することを指定します。
+ **EC2InstanceMetadata** – SDK またはツールが [EC2 インスタンスプロファイルにアタッチされた IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html)を使用してソースの認証情報を取得することを指定します。
+ **EcsContainer** – SDK またはツールが、ソースの認証情報を取得するために [Amazon ECS コンテナにアタッチされた IAM ロール](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html)または [Amazon EKS コンテナにアタッチされた IAM ロール](https://docs.aws.amazon.com/eks/latest/userguide/security-iam-service-with-iam.html)を使用することを指定します。
`credential_source` と `source_profile` の両方を同じプロファイルで指定することはできません。  
認証情報を Amazon EC2 から取得する必要があることを示すために、`config` ファイルにこれを設定する例を以下に示します。  

```
credential_source = Ec2InstanceMetadata
role_arn = arn:aws:iam::123456789012:role/my-role-name
```

**`duration_seconds` - 共有 AWS `config`ファイル設定**  
ロールセッションの最大期間を秒単位で指定します。  
この設定は、プロファイルがロールの継承を指定している場合にのみ適用されます。  
**デフォルト値：** 3600 秒 (1 時間) です  
**有効な値：** この値は 900 秒 (15 分) からロールの最大セッション期間設定 (上限は 43200、すなわち12時間) までの範囲を指定できます。詳細については、「*IAM ユーザーガイド*」の「[ロールの最大セッション期間設定を表示する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html#id_roles_use_view-role-max-session)」 を参照してください。  
`config` ファイルにこれを設定する例を以下に示します。  

```
duration_seconds = 43200
```

**`external_id` - 共有 AWS `config`ファイル設定**  
お客様のアカウントでサードパーティーがロールを引き受けるために使用される独自の識別子を指定します。  
この設定は、プロファイルが役割を引き受けるように指定していて、その役割の信頼ポリシーで `ExternalId` の値が必要な場合にのみ適用されます。この値は、プロファイルがロールを指定するときに `AssumeRole` 操作に渡される `ExternalId` パラメータにマップされます。  
**デフォルト値:** なし。  
**有効な値:** *IAM* [ユーザーガイドの AWS 「リソースへのアクセス権を第三者に付与するときに外部 ID を使用する方法](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)」を参照してください。  
`config` ファイルにこれを設定する例を以下に示します。  

```
external_id = unique_value_assigned_by_3rd_party
```

**`mfa_serial` - 共有 AWS `config`ファイル設定**  
ロールを引き受けるときに使用する必要がある多要素認証 (MFA) デバイスの ID もしくはシリアル番号を指定します。  
ロールの信頼ポリシーに MFA 認証を必要とする条件が含まれているロールを引き受ける場合に必要です。MFA の詳細については、「*IAM ユーザーガイド*」の「[IAM のAWS 多要素認証](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html)」を参照してください。  
**デフォルト値:** なし。  
**有効な値：** 値には、ハードウェアデバイスのシリアルナンバー (`GAHT12345678`など) または仮想 MFA デバイス (など) の Amazon リソースネーム (ARN) のいずれか指定できます。ARN の形式は以下のようになります。`arn:aws:iam::account-id:mfa/mfa-device-name`  
`config` ファイルにこれを設定する例を以下に示します。  
この例では、アカウント用に作成され、ユーザーに対して有効になっている `MyMFADevice` という仮想 MFA デバイスを想定しています。  

```
mfa_serial = arn:aws:iam::123456789012:mfa/MyMFADevice
```

**`role_arn` - 共有 AWS `config`ファイル設定`AWS_ROLE_ARN` - 環境変数`aws.roleArn` - JVM システムプロパティ: Java/Kotlin のみ**  
このプロファイルを使用してリクエストされた操作の実行に使用する IAM ロールの Amazon リソースネーム (ARN) を指定します。  
**デフォルト値：** なし。  
**有効な値：** 値は、以下の `arn:aws:iam::account-id:role/role-name` 形式の IAM ロールの ARN である必要があります。  
 さらに、以下の設定の**いずれか**を指定する必要があります。  
+ `source_profile` — そのプロファイルでその役割を引き受ける権限を持つ認証情報を検索するために使用する別のプロファイルを識別する。
+ `credential_source` — 現在の環境変数で識別される認証情報、または Amazon EC2 インスタンスプロファイルに添付されている認証情報、または Amazon ECS コンテナインスタンスを使用する。
+ `web_identity_token_file` — モバイルまたはウェブアプリケーションで認証されたユーザーにパブリックOpenID Connect (OIDC) 互換の ID プロバイダーを使用する。

**`role_session_name` - 共有 AWS `config`ファイル設定`AWS_ROLE_SESSION_NAME` - 環境変数`aws.roleSessionName` - JVM システムプロパティ: Java/Kotlin のみ**  
ロールセッションにアタッチする名前を指定します。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。詳細については、「*AWS CloudTrail ユーザーガイド*」の「[CloudTrail userIdentity element](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-event-reference-user-identity.html)」を参照してください。  
**デフォルト値：**オプションパラメータ。この値を指定しない場合、セッション名は自動的に生成されます。  
**有効な値:** AWS CLI または AWS API がユーザーに代わって `AssumeRole`オペレーション (または オペレーションなどの `AssumeRoleWithWebIdentity` オペレーション) を呼び出すときに `RoleSessionName`パラメータに提供されます。この値は、クエリ可能な想定ロールユーザーの Amazon リソースネーム (ARN) の一部になり、このプロファイルによって呼び出されるオペレーションの CloudTrail ログエントリの一部として表示されます。  
 `arn:aws:sts::123456789012:assumed-role/my-role-name/my-role_session_name`.  
`config` ファイルにこれを設定する例を以下に示します。  

```
role_session_name = my-role-session-name
```

**`source_profile` - 共有 AWS `config`ファイル設定**  
元のプロファイル内の `role_arn` 設定で指定されたロールを継承するために使用される認証情報の別のプロファイルを指定します。共有 AWS `config` ファイルと `credentials` ファイルでプロファイルがどのように使用されるかについては、「」を参照してください[共有 `config` および `credentials` ファイル](file-format.md)。  
ロール引き受けプロファイルでもあるプロファイルを指定すると、認証情報が完全に解決されるように、各ロールが順番に引き継がれます。SDK が認証情報を含むプロファイルに遭遇すると、このチェーンは停止します。ロールの連鎖は、 AWS CLI または AWS API ロールセッションを最大 1 時間に制限し、増やすことはできません。詳細については、「*IAM ユーザーガイド*」 の「[ロールの主な用語と概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)」を参照してください。  
**デフォルト値：** NONE。  
**有効な値：** `config` および `credentials` ファイルで定義されているプロファイルの名前で構成されるテキスト文字列。現在のプロファイルの `role_arn` に対する値も指定する必要があります。  
`credential_source` と `source_profile` の両方を同じプロファイルで指定することはできません。  
設定ファイルでこれを設定する例:  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_process = ./aws_signing_helper credential-process --certificate /path/to/certificate --private-key /path/to/private-key --trust-anchor-arn arn:aws:rolesanywhere:region:account:trust-anchor/TA_ID --profile-arn arn:aws:rolesanywhere:region:account:profile/PROFILE_ID --role-arn arn:aws:iam::account:role/ROLE_ID
```
前の例では、`A` プロファイルは SDK またはツールに、リンクされた `B` プロファイルの認証情報を自動的に検索するように指示します。この場合、`B` プロファイルは [IAM Roles Anywhere を使用した AWS SDKsとツールの認証](access-rolesanywhere.md) が提供する認証情報ヘルパーツールを使用して AWS SDK の認証情報を取得します。これらの一時的な認証情報は、次に AWS リソースへのアクセスに使用されます。指定されたロールには、 コマンド AWS のサービスや API メソッドなど、リクエストされたコードの実行を許可する IAM アクセス許可ポリシーがアタッチされている必要があります。プロファイル `A` によって実行されるすべてのアクションには、CloudTrail ログに含まれるロールセッション名が含まれます。  
ロールチェーンの 2 番目の例では、Amazon Elastic Compute Cloud インスタンスにアプリケーションがあり、そのアプリケーションに別のロールを引き受けさせる場合、次の設定を使用できます。  

```
[profile A]
source_profile = B
role_arn =  arn:aws:iam::123456789012:role/RoleA
role_session_name = ProfileARoleSession
                
[profile B]
credential_source=Ec2InstanceMetadata
```
プロファイル `A` は、Amazon EC2 インスタンスの認証情報を使用して指定されたロールを引き受け、認証情報を自動的に更新します。  


**`web_identity_token_file` - 共有 AWS `config`ファイル設定`AWS_WEB_IDENTITY_TOKEN_FILE` - 環境変数`aws.webIdentityTokenFile` - JVM システムプロパティ: Java/Kotlin のみ**  
[対応する OAuth 2.0 プロバイダー](https://wikipedia.org/wiki/List_of_OAuth_providers) または、[OpenID Connect ID 識別情報プロバイダー](https://openid.net/developers/certified/) からのアクセストークンを含むファイルへのパスを指定します。  
この設定により、「[Google](https://developers.google.com/identity/protocols/OAuth2)」 、「[Facebook](https://developers.facebook.com/docs/facebook-login/overview)」 、「[Amazon](https://login.amazon.com/)」 などの多数のウェブ ID フェデレーションプロバイダーを使用して認証を行うことができます。SDK または開発者ツールはこのファイルの内容をロードし、ユーザーに代わって `AssumeRoleWithWebIdentity` オペレーションを呼び出すときに `WebIdentityToken` 引数として渡します。  
**デフォルト値：** NONE。  
**有効な値：** この値はパスとファイル名でなければなりません。ファイルには、認識情報プロバイダーから提供される、OAuth 2.0 アクセストークンまたは OpenID Connect ID トークンが含まれていなければなりません。相対パスは、プロセスの作業ディレクトリを基準にした相対パスとして扱われます。

## AWS SDKsとツールによるサポート
<a name="assume-role-sdk-compat"></a>

以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。


| SDK | サポート | 注意または詳細情報 | 
| --- | --- | --- | 
| [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | はい |  | 
| [SDK for C\$1\$1](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 部分的 | credential\$1source はサポートされていません。duration\$1seconds はサポートされていません。mfa\$1serial はサポートされていません。 | 
| [SDK for Go V2 (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | はい |  | 
| [SDK for Go 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | はい | 共有 config ファイル設定を使用するには、設定ファイルからの読み込みを有効にする必要があります。「[セッション](https://docs.aws.amazon.com/sdk-for-go/api/aws/session/)」を参照してください。 | 
| [SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 部分的 | mfa\$1serial はサポートされていません。duration\$1seconds はサポートされていません。 | 
| [SDK for Java 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 部分的 | credential\$1source はサポートされていません。mfa\$1serial はサポートされていません。JVM システムプロパティはサポートされていません。 | 
| [SDK for JavaScript 3.x](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | はい |  | 
| [SDK for JavaScript 2.x](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 部分的 | credential\$1source はサポートされていません。 | 
| [SDK for Kotlin](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | はい |  | 
| [SDK for .NET 4.x](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | はい |  | 
| [SDK for .NET 3.x](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | はい |  | 
| [SDK for PHP 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | はい |  | 
| [SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | はい |  | 
| [SDK for Ruby 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | はい |  | 
| [SDK for Rust](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | はい |  | 
| [SDK for Swift](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | はい |  | 
| [PowerShell V5 のツール](https://docs.aws.amazon.com/powershell/latest/userguide/) | はい |  | 
| [PowerShell V4 のツール](https://docs.aws.amazon.com/powershell/v4/userguide/) | はい |  | 