本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
assumeRole
提供者
如果您使用 Aws\Credentials\AssumeRoleCredentialProvider
通过代入角色创建凭证,则需要按所示方式使用 'client'
对象和 StsClient
详细信息来提供 'assume_role_params'
信息。
注意
为避免在每个 API 操作中不必要地获取 Amazon 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。