本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用Amazon凭证文件和凭证配置文件
有关共享位置和格式的参考信息Amazon config
和credentials
文件,请参阅配置和共享的位置Amazonconfig
和credentials
文件中的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 角色的凭证。有关这些配置设置的更多信息,请参阅假设角色的凭证中的Amazon开发工具包和工具参考指南.
~/.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]
。