

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

# SDK for PHP の `assumeRoleWithWebIdentityCredentialProvider` プロバイダ
<a name="assume-role-with-web-identity-provider"></a>

 `Aws\Credentials\CredentialProvider::assumeRoleWithWebIdentityCredentialProvider` は、ロールを引き受けることで認証情報のロードを試みます。環境変数 `AWS_ROLE_ARN` および `AWS_WEB_IDENTITY_TOKEN_FILE` が存在する場合、プロバイダーは、`AWS_WEB_IDENTITY_TOKEN_FILE` で指定されたフルパスのディスク上のトークンを使用して、`AWS_ROLE_ARN` で指定されたロールの引き受けを試みます。環境変数が使用された場合、プロバイダーは `AWS_ROLE_SESSION_NAME` 環境変数からセッションの設定を試みます。

環境変数が設定されていない場合、プロバイダーはデフォルトのプロファイル、または `AWS_PROFILE` として設定されているプロファイルを使用します。デフォルトでは、プロバイダーは `~/.aws/credentials` および `~/.aws/config` からプロファイルを読み取り、`filename` config オプションで指定されたプロファイルから読み取ることができます。プロバイダーはプロファイルの `role_arn` ロールを引き受け、`web_identity_token_file` で設定されたフルパスからトークンを読み取ります。プロファイルで設定されている場合は、`role_session_name` が使用されます。

デフォルトのチェーンの一部としてプロバイダーが呼び出され、直接呼び出すことができます。

```
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;

$provider = CredentialProvider::assumeRoleWithWebIdentityCredentialProvider();
// Cache the results in a memoize function to avoid loading and parsing
// the ini file on every API operation
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```

デフォルトでは、この認証情報プロバイダーは、ロールを引き受けるために StsClient が使用する、設定されたリージョンを継承します。オプションで、完全な StsClient を提供できます。認証情報は、指定された StsClient として `false` で設定する必要があります。

```
use Aws\Credentials\CredentialProvider;
use Aws\S3\S3Client;
use Aws\Sts\StsClient;

$stsClient = new StsClient([
    'region'      => 'us-west-2',
    'version'     => 'latest',
    'credentials' => false
])

$provider = CredentialProvider::assumeRoleWithWebIdentityCredentialProvider([
    'stsClient' => $stsClient
]);
// Cache the results in a memoize function to avoid loading and parsing
// the ini file on every API operation
$provider = CredentialProvider::memoize($provider);

$client = new S3Client([
    'region'      => 'us-west-2',
    'version'     => '2006-03-01',
    'credentials' => $provider
]);
```