本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 适用于 PHP 的 AWS SDK 版本 3 凭证提供商
有关可用凭证机制的参考信息 AWS SDKs,请参阅和工具参考指南中的凭证AWS SDKs 和访问权限。
重要
出于安全考虑,我们强烈建议您不要使用 root 账户进行 AWS 访问。请务必参阅 IAM 用户指南中的 IAM 中的安全最佳实践,了解最新安全建议。
在 适用于 PHP 的 AWS SDK 版本 3 中,凭证提供者的角色是为 SDK 的 AWS 服务 客户端获取和提供凭证。SDK 使用其获取的凭据对每个请求进行加密签名,从而向服务进行身份验证。证书通常由访问密钥组成,即访问密钥 ID 和私有访问密钥。
当您使用临时证书时,例如设置 IAM Identity Center 身份验证或将运行时配置为担任 IAM 角色时,会话令牌会添加到访问密钥中,从而提供对 AWS 资源的限时访问权限。
适用于 PHP 的 AWS SDK 版本 3 中的凭证提供者是什么?
凭证提供程序是一个函数,该函数返回一个用 GuzzleHttp\Promise\PromiseInterface
实例执行或因 Aws\Credentials\CredentialsInterface
而被拒绝的 Aws\Exception\CredentialsException
。SDK 提供了多种证书提供程序函数的实现,或者您可以实现自己的自定义逻辑来创建凭据或优化凭据加载。
凭证提供程序将被传入 credentials
客户端构造函数选项。凭证提供程序是异步的,因此每次调用 API 操作时都会强制对其进行延迟评估。因此,将凭证提供程序函数传递给开发工具包客户端构造函数不会立即验证凭证。如果凭证提供程序未返回凭证对象,将因 Aws\Exception\CredentialsException
拒绝 API 操作。
use Aws\Credentials\CredentialProvider; use Aws\S3\S3Client; // Use the ECS credential provider. $provider = CredentialProvider::ecsCredentials(); // Be sure to memoize the credentials. $memoizedProvider = CredentialProvider::memoize($provider); // Pass the provider to the client $client = new S3Client([ 'region' => 'us-west-2', 'version' => '2006-03-01', 'credentials' => $memoizedProvider ]);