本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 Rub Amazon SDK y 配置
了解如何为 Rub Amazon SDK y 配置。在使用 Amazon Web Services 服务进行开发时,您必须确定您的代码是如何使用 Amazon 进行身份验证的。您还必须设置 Amazon Web Services 区域 要使用的。
凭证提供程序链
所有SDKs人都有一系列地点(或来源)供他们检查,以便获得用于向某人提出请求的有效凭证 Amazon Web Services 服务。找到有效凭证后,搜索即告停止。这种系统性搜索被称为默认凭证提供程序链。
对于链中的每个步骤,都有不同的设置值的方法。直接在代码中设置值始终优先,然后设置为环境变量,然后在共享 Amazon config
文件中设置。有关更多信息,请参阅《工具参考指南》Amazon SDKs和《工具参考指南》中的设置优先级。
《Amazon SDKs和工具参考指南》包含有关所有 Amazon SDKs人使用的SDK配置设置的信息 Amazon CLI。要详细了解如何SDK通过共享 Amazon config
文件进行配置,请参阅共享配置和凭据文件。要了解有关如何配置SDK直通设置环境变量的更多信息,请参阅环境变量支持。
要进行身份验证 Amazon,f Amazon SDK or Ruby 按下表所列顺序检查凭证提供者。
凭证提供程序(按优先顺序排列) | Amazon SDKs和工具参考指南 | Amazon SDK for Ruby API参考 |
---|---|---|
Amazon 访问密钥(临时和长期证书) | Amazon 访问密钥 | |
来自 Amazon Security Token Service (Amazon STS) 的 Web 身份令牌 | 代入角色凭证提供程序 使用 |
Aws::AssumeRoleWebIdentityCredentials
|
Amazon IAM Identity Center。在本指南中,请参阅使用 Amazon 进行 SDK 身份验证。 | IAM身份中心凭证提供商 | Aws::SSOCredentials |
可信实体提供程序(如 AWS_ROLE_ARN ) 在本指南中,请参阅创建 Amazon STS 访问令牌。 |
代入角色凭证提供者 使用 |
Aws::AssumeRoleCredentials |
流程凭证提供程序 | 流程凭证提供程序 | Aws::ProcessCredentials |
亚马逊弹性容器服务 (AmazonECS) 证书 | 容器凭证提供程序 | Aws::ECSCredentials |
亚马逊弹性计算云 (AmazonEC2) 实例配置文件证书(IMDS凭证提供商) | IMDS凭证提供商 | Aws::InstanceProfileCredentials |
如果设置了 Amazon SDK f AWS_SDK_CONFIG_OPT_OUT
or Ruby 环境变量,则不会对共享 Amazon config
文件(通常为)进行凭据解析。 ~/.aws/config
如果您遵循推荐的新用户入门方法,则可以在入门主题的 使用 Amazon 进行 SDK 身份验证 中设置 Amazon IAM Identity Center 身份验证。其他身份验证方法适用于不同的情况。为避免安全风险,我们建议始终使用短期凭证。有关其他身份验证方法的步骤,请参阅和工具参考指南中的身份验证Amazon SDKs和访问。
创建 Amazon STS 访问令牌
假设角色涉及使用一组临时安全证书,您可以使用这些证书来访问通常可能无法访问的 Amazon 资源。这些临时凭证由访问密钥 ID、秘密访问密钥和安全令牌组成。您可以使用 Aws::AssumeRoleCredentials
方法创建 Amazon Security Token Service
(Amazon STS) 访问令牌。
以下示例使用访问令牌创建 Amazon S3 客户端对象,其中linked::account::arn
是要代入的角色的 Amazon 资源名称 (ARN),session-name
也是代入角色会话的标识符。
role_credentials = Aws::AssumeRoleCredentials.new( client: Aws::STS::Client.new, role_arn: "
linked::account::arn
", role_session_name: "session-name
" ) s3 = Aws::S3::Client.new(credentials: role_credentials)
有关设置role_arn
或或或role_session_name
改为使用共享 Amazon config
文件进行设置的更多信息,请参阅Amazon SDKs和工具参考指南中的代入角色凭据提供者。
设置区域
在使用大多数 Amazon Web Services 服务时,您需要设置区域。f Amazon SDK or Ruby 按以下顺序搜索区域:
有关该region
设置的更多信息,请参阅《Amazon SDKs和工具参考指南》Amazon Web Services 区域中的。此部分的其余内容将从最常见的方法开始介绍如何设置区域。
使用共享 config
文件设置区域
通过在共享 Amazon config
文件中设置region
变量来设置区域。有关共享config
文件的更多信息,请参阅和工具参考指南中的共享配置Amazon SDKs和凭据文件。
在 config
文件中设置此值的示例:
[default] region = us-west-2
如果设置了环境变量 AWS_SDK_CONFIG_OPT_OUT
,则不会检查共享 config
文件。
使用环境变量设置区域
通过设置 AWS_REGION
环境变量来设置区域。
使用 export
命令在基于 Unix 的系统(例如 Linux 或 macOS)上设置此变量。以下示例将区域设置为 us-west-2
。
export AWS_REGION=us-west-2
要在 Windows 上设置此变量,请使用 set
命令。以下示例将区域设置为 us-west-2
。
set AWS_REGION=us-west-2
使用 Aws.config
设置区域
通过将 region
值添加到 Aws.config
哈希中来设置区域。以下示例更新 Aws.config
哈希来使用 us-west-1
区域。
Aws.config.update({region: 'us-west-1'})
您随后创建的任何客户端或资源都将绑定到此区域。
在客户端或资源对象中设置区域
在创建 Amazon 客户机或资源时设置区域。以下示例在 us-west-1
区域中创建 Amazon S3 资源对象。为您的 Amazon 资源选择正确的区域。服务客户端对象是不可变的,因此您必须为向其发出请求的每个服务创建一个新的客户端,并使用不同的配置向同一服务发出请求。
s3 = Aws::S3::Resource.new(region: 'us-west-1')
设置非标准端点
该区域用于构建用于 Amazon 请求的SSL终端节点。如果您需要在所选区域使用非标准端点,请向 Aws.config
中添加一个 endpoint
条目。或者,在创建服务客户端或资源对象时设置 endpoint:
。以下示例在 other_endpoint
端点中创建 Amazon S3 资源对象。
s3 = Aws::S3::Resource.new(endpoint: other_endpoint)
要使用您选择的终端节点进行API请求并使该选择保持不变,请参阅Amazon SDKs和工具参考指南中的服务特定终端节点配置选项。