本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置AmazonSDK for Ruby
了解如何配置AmazonSDK for Ruby。要使用 SDK,必须设置Amazon凭据或创建AmazonSTS 访问令牌,然后设置Amazon要使用的区域。
获取您的 Amazon 访问密钥
访问密钥包含访问密钥 ID 和秘密访问密钥,用于签署对Amazon发出的编程请求。如果没有访问密钥,您可以使用管理控制台
注意
要创建访问密钥,您必须拥有执行所需 IAM 操作的权限。有关更多信息,请参阅 。授予 IAM 用户管理密码策略和凭证的权限(在 IAM 用户指南中)。
要获取访问密钥 ID 和秘密访问密钥
-
打开 IAM 控制台
。 -
在导航菜单上,选择用户。
-
选择您的 IAM 用户名称 (而不是复选框)。
-
打开安全凭证选项卡,然后选择创建访问密钥。
-
要查看新的访问密钥,请选择显示。您的凭证与下面类似:
-
访问密钥 ID:
AKIAIOSFODNN7EXAMPLE
-
秘密访问密钥:
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
-
-
要下载密钥对,请选择 Download .csv file(下载 .csv 文件)。将这些密钥
存储在安全的位置。
重要
请对密钥保密以保护您的 Amazon 账户,切勿通过电子邮件发送密钥。请勿对企业外部共享密钥,即使有来自 Amazon 或 Amazon.com 的询问。合法代表 Amazon 的任何人永远都不会要求您提供秘密密钥。
相关主题
-
什么是 IAM?(在 IAM 用户指南中)。
-
Amazon安全凭证中的Amazon一般参考。
设置 Amazon 凭证
在您可以使用之前AmazonSDK for Ruby 来打电话给Amazon服务,您必须将Amazon开发工具包将用于验证访问权限的访问权限的访问凭证Amazon服务和资源。
这些区域有:AmazonSDK for Ruby 按以下顺序搜索凭证:
您可以在代码中覆盖这些设置。优先顺序为:
以下各节介绍设置凭证的各种方法,从最灵活的方法开始。有关 的更多信息Amazon请参阅凭证和推荐的凭证管理方法,请参阅Amazon安全凭证中的Amazon一般参考。
请注意,共享配置只加载一次,并且在创建客户端时静态提供凭证。共享凭证不会刷新。
设置共享凭证
在中设置共享凭据Amazon本地系统上的凭证配置文件。
在基于 Unix 的系统 (例如 Linux 或 OS X) 上,此文件位于以下位置。
~/.aws/credentials
在 Windows 上,此文件位于以下位置。
%HOMEPATH%\.aws\credentials
此文件必须具有以下格式,其中 default
是提供给这些凭证的默认配置文件的名称,your_access_key_id
是您的访问密钥的值,your_secret_access_key
是您的秘密访问密钥的值。
[default] aws_access_key_id = your_access_key_id aws_secret_access_key = your_secret_access_key
使用环境变量设置凭证
设置 AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
环境变量。
使用 export
命令在基于 Unix 的系统 (例如 Linux 或 OS X) 上设置这些变量。以下示例将您的访问密钥的值设置为 your_access_key_id
,并将您的秘密访问密钥的值设置为 your_secret_access_key
。
export AWS_ACCESS_KEY_ID=your_access_key_id export AWS_SECRET_ACCESS_KEY=your_secret_access_key
要在 Windows 上设置这些变量,请使用 set
命令,如以下示例所示。
set AWS_ACCESS_KEY_ID=your_access_key_id set AWS_SECRET_ACCESS_KEY=your_secret_access_key
使用设置凭证Aws.config
在您的代码中通过更新 Aws.config
哈希中的值来设置凭证。
以下示例将您的访问密钥的值设置为 your_access_key_id
,并将您的秘密访问密钥的值设置为 your_secret_access_key
。您随后创建的任何客户端或资源都将使用这些凭证。
Aws.config.update({ credentials: Aws::Credentials.new('your_access_key_id', 'your_secret_access_key') })
更改您的凭证位置
您还可以使用Aws.config
将您的凭证存储在非标准位置。
以下示例会更新您的配置,将您的凭证存储在 my-path 下。
shared_creds = Aws::SharedCredentials.new(path: 'my_path') Aws.config.update(credentials: shared_creds)
在客户端对象中设置凭证
在代码中设置凭证,方法是在您的代码中创建凭证Amazon客户端。
以下示例使用访问密钥创建 Amazon S3 客户端:your_access_key_id
和秘密访问密钥your_secret_access_key
.
s3 = Aws::S3::Client.new( access_key_id: 'your_access_key_id', secret_access_key: 'your_secret_access_key' )
使用 IAM 设置凭证
对于 Amazon Elastic Compute Cloud 实例,请创建一个Amazon Identity and Access Management角色,然后向 Amazon EC2 实例授予对该角色的访问权。有关更多信息,请参阅 。适用于 Amazon EC2 的 IAM 角色在适用于 Linux 实例的 Amazon EC2 用户指南中或适用于 Amazon EC2 的 IAM 角色在适用于 Windows 实例的 Amazon EC2 用户指南中。
创建 Amazon STS 访问令牌
使用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)
设置区域
你需要设置领域使用大多数时Amazon服务。您可以将Amazon设置区域的方式类似Amazon凭证。这些区域有:AmazonSDK for Ruby 按以下顺序搜索区域:
此节的其余部分介绍如何设置区域,从最灵活的方法开始。
使用环境变量设置区域
通过设置 AWS_REGION
环境变量来设置区域。
使用 export
命令在基于 Unix 的系统 (例如 Linux 或 OS X) 上设置此变量。以下示例将区域设置为 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客户端或资源。以下示例在中创建 Amazon S3 资源对象:us-west-1
区域。
s3 = Aws::S3::Resource.new(region: 'us-west-1')
设置非标准终端节点
如果您需要在您选择的区域中使用非标准终端节点,请向 Aws.config
中添加 endpoint
条目,或在创建服务客户端或资源对象时设置 endpoint:
。以下示例在中创建 Amazon S3 资源对象:other_endpoint
终端节点。
s3 = Aws::S3::Resource.new(endpoint: other_endpoint)