SDK for PHP の assumeRole プロバイダ - AWS SDK for PHP

SDK for PHP の assumeRole プロバイダ

Aws\Credentials\AssumeRoleCredentialProvider を使用してロールを継承することによって認証情報を作成する場合は、次に示すように、'client' オブジェクトと StsClient の詳細を使用して 'assume_role_params' 情報を提供する必要があります。

注記

API オペレーションごとに AWS STS の認証情報が取得されることを回避するために、memoize 関数を使用して、認証情報の有効期限が切れたときの認証情報の更新を自動的に処理できます。次のコードを例として参照してください。

use Aws\Credentials\CredentialProvider; use Aws\Credentials\InstanceProfileProvider; use Aws\Credentials\AssumeRoleCredentialProvider; use Aws\S3\S3Client; use Aws\Sts\StsClient; // Passing Aws\Credentials\AssumeRoleCredentialProvider options directly $profile = new InstanceProfileProvider(); $ARN = "arn:aws:iam::123456789012:role/xaccounts3access"; $sessionName = "s3-access-example"; $assumeRoleCredentials = new AssumeRoleCredentialProvider([ 'client' => new StsClient([ 'region' => 'us-east-2', 'version' => '2011-06-15', 'credentials' => $profile ]), 'assume_role_params' => [ 'RoleArn' => $ARN, 'RoleSessionName' => $sessionName, ], ]); // To avoid unnecessarily fetching STS credentials on every API operation, // the memoize function handles automatically refreshing the credentials when they expire $provider = CredentialProvider::memoize($assumeRoleCredentials); $client = new S3Client([ 'region' => 'us-east-2', 'version' => '2006-03-01', 'credentials' => $provider ]);

'assume_role_params' の詳細については、「AssumeRole」を参照してください。