為紅寶石配置 AWS SDK - AWS SDK for Ruby

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

為紅寶石配置 AWS SDK

了解如何為 Ruby 配置AWS開發套件。在開發AWS時,您必須建立程式碼的驗證方式。AWS 服務您還必須設置AWS 區域要使用的。

憑證提供者鏈結

所有 SDK 都有一系列位置(或來源),他們檢查這些地方(或來源),以獲取有效的憑據以用於向. AWS 服務 找到有效的認證後,就會停止搜尋。此系統搜尋稱為預設認證提供者鏈結。

對於鏈中的每個步驟,都有不同的方法來設定值。直接在代碼中設置值始終優先,然後設置為環境變量,然後在共享AWSconfig文件中設置。如需詳細資訊,請參閱 AWSSDK 和工具參考指南的設定優先順序

AWSSDK 和工具參考指南包含所有 AWS SDK 和. AWS CLI 要了解有關如何通過共AWSconfig享文件配置 SDK 的更多信息,請參閱共享配置和憑據文件。若要深入瞭解如何透過設定環境變數來設定 SDK,請參閱環境變數支援

若要使用驗證AWS,AWSSDK for Ruby 會依照下表中列出的順序檢查認證提供者。

憑證提供者 (依優先 AWSSDK 和工具參考指南 AWS SDK for Ruby API 參考
靜態認證 AWS存取金鑰

Aws::Credentials

Aws::SharedCredentials

來自AWS Security Token Service(AWS STS)的 Web 身份令牌 假設角色認證提供者

使用role_arnrole_session_name、和 web_identity_token_file

Aws::AssumeRoleWebIdentityCredentials
AWS IAM Identity Center。 在本指南中,請參閱使用 SDK 驗證AWS IAM 身分中心憑證提供者 Aws::SSOCredentials
信任的實體提供者 (例如AWS_ROLE_ARN)。在本指南中,請參閱創建AWS STS訪問令牌 假設角色認證提供者

使用role_arnrole_session_name

Aws::AssumeRoleCredentials
程序認證提供者 程序認證提供者 Aws::ProcessCredentials
亞馬遜 Elastic Container Service (Amazon ECS) 登入資料 容器認證提供者 Aws::ECSCredentials
亞馬遜 Elastic Compute Cloud (Amazon EC2) 執行個體設定檔登入資料 (IMDS 登入資料提供者) IMDS 認證提供者 Aws::InstanceProfileCredentials

如果設定了 Ruby 環境變數 AWS SDK,AWS_SDK_CONFIG_OPT_OUT則不會剖析共用AWSconfig檔案 (通常位 ~/.aws/config於) 以取得認證。

如果您遵循建議的方法讓新使用者開始使用,您可以在 [開始使用] 主題期間使用 SDK 驗證AWS設定AWS IAM Identity Center驗證。其他驗證方法在不同的情況下很有用。為了避免安全風險,我們建議您始終使用短期憑證。如需其他驗證方法程序,請參閱 AWSSDK 和工具參考指南中的驗證和取。

創建AWS STS訪問令牌

假設角色涉及使用一組臨時安全認證,您可以用來存取通常無法存取的AWS資源。這些臨時登入資料由存取金鑰 ID、私密存取金鑰和安全字符組成。您可以使用該Aws::AssumeRoleCredentials方法來創建一個 AWS Security Token Service (AWS 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有關使用共享AWSconfig文件設置這些信息,請參閱 AWSSDK 和工具參考指南中的假設角色憑證提供者

設定區域

您需要在使用大多數時設置一個區域AWS 服務。AWSSDK for Ruby 會依照下列順序搜尋區域:

如需region設定的詳細資訊,請參閱《AWSSDK 和工具參考指南》AWS 區域中的〈〉。本節的其餘部分說明如何設定區域,從最常用的方法開始。

使用共用config檔案設定區域

透過在共用AWSconfig檔案中設定region變數來設定區域。有關共享文config件的更多信息,請參閱 AWSSDK 和工具參考指南中的共享配置和憑據文件

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

通過向Aws.config散列添加region值來設置區域。下列範例會更新Aws.config雜湊以使用 us-west-1 Region。

Aws.config.update({region: 'us-west-1'})

您稍後建立的任何用戶端或資源都會繫結至此區域。

在客戶端或資源對象中設置區域

建立AWS用戶端或資源時設定 [區域]。下列範例會在該us-west-1區域中建立 Amazon S3 資源物件。為您的AWS資源選擇正確的區域。服務客戶端對象是不可變的,因此您必須為向其發出請求的每個服務創建一個新的客戶端,並使用不同的配置向同一服務發出請求。

s3 = Aws::S3::Resource.new(region: 'us-west-1')

設定非標準端點

該區域用於構建用於AWS請求的 SSL 端點。如果您需要在所選區域中使用非標準端點,請將endpoint項目新增至Aws.config。或者,在建立服務用戶端或資源物件endpoint:時設定。下列範例會在other_endpoint端點中建立 Amazon S3 資源物件。

s3 = Aws::S3::Resource.new(endpoint: other_endpoint)

若要使用您選擇的端點來處理 API 要求,並保留該選項,請參閱 AWSSDK 和工具參考指南中的服務特定端點設定選項。