本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為紅寶石配置 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 Security Token Service(AWS STS)的 Web 身份令牌 | 假設角色認證提供者 使用 |
Aws::AssumeRoleWebIdentityCredentials
|
AWS IAM Identity Center。 在本指南中,請參閱使用 SDK 驗證AWS。 | IAM 身分中心憑證提供者 | Aws::SSOCredentials |
信任的實體提供者 (例如AWS_ROLE_ARN )。在本指南中,請參閱創建AWS STS訪問令牌。 |
假設角色認證提供者 使用 |
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 和工具參考指南中的服務特定端點設定選項。