使用Amazon凭证文件和凭证配置文件 - Amazon适用于 PHP 的开发工具包
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用Amazon凭证文件和凭证配置文件

凭证文件是一个纯文本文件,其中包含您的访问密钥。该文件必须:

  • 位于运行应用程序的同一台计算机上。

  • 命名为 credentials

  • 请位于您的主目录中的 .aws/ 文件夹。

该主目录可以因操作系统。在 Windows 上,您可以使用环境变量引用到您的主目录 %UserProfile%。在类 Unix 的系统,您可以使用环境变量 $HOME~ (tilde)。

如果您已将此文件用于其他开发工具包和工具(如 Amazon CLI),则不需要进行任何更改就可以在该开发工具包中使用这些文件。如果您对不同的工具或应用程序使用不同的凭证,则可以使用配置文件在相同的配置文件中配置多个访问密钥。

我们使用此方法在所有我们的 PHP 代码示例。

使用Amazon凭证文件具备下列优点:

  • 您的项目凭证存储在项目之外的位置,因此不会意外将其提交到版本控制中。

  • 您可以在一个位置定义和命名多组凭证。

  • 您可以轻松地在项目之间重用相同的凭证。

  • 其他Amazon开发工具包和工具支持这个相同的凭证文件。这样,您便可以对其他工具重用您的凭证。

的格式Amazon凭证文件应该类似下面的内容。

[default] aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY [project1] aws_access_key_id = ANOTHER_AWS_ACCESS_KEY_ID aws_secret_access_key = ANOTHER_AWS_SECRET_ACCESS_KEY

每个部分 (例如 [default][project1]) 表示不同的凭证配置文件。您可以从开发工具包配置文件引用配置文件,也可以在实例化客户端时使用 profile 选项。

use Aws\DynamoDb\DynamoDbClient; // Instantiate a client with the credentials from the project1 profile $client = new DynamoDbClient([ 'profile' => 'project1', 'region' => 'us-west-2', 'version' => 'latest' ]);

如果没有向开发工具包明确提供凭证或配置文件,也没有在环境变量中定义凭证,但定义了凭证文件,则开发工具包会使用“默认”配置文件。您可以通过在 AWS_PROFILE 环境变量中指定替代配置文件名称来更改默认配置文件。

代入角色与配置文件

您可以配置Amazon使用 SDK for PHP,方法是为 IAM 角色定义配置文件。~/.aws/credentials

使用您将代入的角色的 role_arn 创建一个新的配置文件。还需要包含配置文件的 source_profile,以及有权代入 IAM 角色的凭证。

~/.aws/credentials 中的配置文件:

[default] aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY [project1] role_arn = arn:aws:iam::123456789012:role/testing source_profile = default role_session_name = OPTIONAL_SESSION_NAME

通过在实例化客户端时设置 AWS_PROFILE 环境变量或 profile 选项,则将代入 project1 中指定的角色,并使用 default 配置文件作为源凭证。

也可以为在 ~/.aws/config 中定义的配置文件代入角色。设置环境变量 AWS_SDK_LOAD_NONDEFAULT_CONFIG 将允许加载配置文件来代入 ~/.aws/config 中的角色。启用时,将加载来自 ~/.aws/config~/.aws/credentials 的配置文件。来自 ~/.aws/credentials 的配置文件最后加载,它们将优先于 ~/.aws/config 中同名的配置问。来自任一位置的配置文件都可用作 source_profile 或要代入的配置文件。

~/.aws/config 中的配置文件:

[profile project1] role_arn = arn:aws:iam::123456789012:role/testing source_profile = default role_session_name = OPTIONAL_SESSION_NAME

~/.aws/credentials 中的配置文件:

[project2] aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY

使用上述文件,将使用 [project2] 作为源凭证代入 [project1]