

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 适用于 PHP 的 SDK 中的 `env` 提供程序
<a name="env-provider"></a>

使用环境变量来包含您的凭据可以防止您意外共享您的 AWS 私有访问密钥。我们建议您不要在任何生产文件中将 AWS 访问密钥直接添加到客户端。

要对 Amazon Web Services 进行身份验证，SDK 首先检查环境变量中的凭证。开发工具包会使用 `getenv()` 函数来查找 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 环境变量。这些凭证称为环境凭证。有关如何获取这些值的说明，请参阅《工具参考指南》*AWS SDKs 和《工具参考指南*》中的[使用短期凭证进行身份验证](https://docs.aws.amazon.com/sdkref/latest/guide/access-temp-idc.html)。

如果您在上托管应用程序 [AWS Elastic Beanstalk](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_PHP_eb.html)，则可以通过[AWS Elastic Beanstalk 控制台](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-cfg-softwaresettings.html#environments-cfg-softwaresettings-console)设置`AWS_ACCESS_KEY_ID``AWS_SECRET_KEY`、和`AWS_SESSION_TOKEN`环境变量，这样 SDK 就可以自动使用这些凭证。

有关如何设置环境变量的更多信息，请参阅《工具参考指南》*AWS SDKs 和《工具参考指南*》中的[环境变量支持](https://docs.aws.amazon.com/sdkref/latest/guide/environment-variables.html)。另外，有关大多数支持的所有环境变量的列表 AWS SDKs，请参阅[环境变量列表](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html#EVarSettings)。

您也可以在命令行中设置环境变量，如下所示。

 **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()
]);
```