适用于 PHP 的 SDK 中的 env 提供程序
使用环境变量以包含您的凭证,可防止意外共享您的 AWS 秘密访问密钥。我们建议:不要直接将您的 AWS 访问密钥添加到客户端的任何生产文件。
要对 Amazon Web Services 进行身份验证,SDK 首先检查环境变量中的凭证。开发工具包会使用 getenv() 函数来查找 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY 和 AWS_SESSION_TOKEN 环境变量。这些凭证称为环境凭证。有关如何获取这些值的说明,请参阅 AWS SDK 和工具参考指南中的使用短期凭证进行身份验证。
如果您正在 AWS Elastic Beanstalk 上托管应用程序,可以通过 AWS Elastic Beanstalk 控制台设置 AWS_ACCESS_KEY_ID、AWS_SECRET_KEY 和 AWS_SESSION_TOKEN 环境变量,以便 SDK 可以自动使用这些凭证。
有关如何设置环境变量的更多信息,请参阅 AWS SDK 和工具参考指南中的环境变量支持。另外,有关大多数 AWS SDK 都支持的所有环境变量的列表,请参阅环境变量列表。
您也可以在命令行中设置环境变量,如下所示。
(Linux):
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE # The access key for your AWS 账户. $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY # The secret access key for your AWS 账户. $ export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of security token> # The temporary session key for your AWS 账户. # The AWS_SECURITY_TOKEN environment variable can also be used, but is only supported for backward compatibility purposes. # AWS_SESSION_TOKEN is supported by multiple AWS SDKs other than PHP.
(Windows):
C:\> SET AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE # The access key for your AWS 账户. C:\> SET AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY # The secret access key for your AWS 账户. C:\> SET AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of security token> # The temporary session key for your AWS 账户. # The AWS_SECURITY_TOKEN environment variable can also be used, but is only supported for backward compatibility purposes. # AWS_SESSION_TOKEN is supported by multiple AWS SDKs besides PHP.
Aws\Credentials\CredentialProvider::env 尝试从环境变量中加载凭证。
use Aws\Credentials\CredentialProvider; use Aws\S3\S3Client; $client = new S3Client([ 'region' => 'us-west-2', 'version' => '2006-03-01', 'credentials' => CredentialProvider::env() ]);