簡體   English   中英

文件中的AWS Ruby SDK憑據

[英]Aws Ruby SDK credentials from file

我想將我的憑證存儲在~/.aws/credentials而不是環境變量中,但是我很掙扎。

加載我使用的憑據(從此處開始

credentials = Aws::SharedCredentials.new({region: 'myregion', profile_name: 'myprofile'}) 

我的~/.aws/credentials

[myprofile]
AWS_ACCESS_KEY = XXXXXXXXXXXXXXXXXXX
AWS_SECRET_KEY = YYYYYYYYYYYYYYYYYYYYYYYYYYY

我的~/.aws/config

[myprofile]
output = json
region = myregion

然后,我定義一個資源

aws = Aws::EC2::Resource.new(region: 'eu....', credentials: credentials)

但是如果我嘗試例如

aws.instances.first

我收到錯誤Error: #<Aws::Errors::MissingCredentialsError: unable to sign request without credentials set>

如果我對密鑰進行硬編碼,一切都會正常

根據源代碼, aws僅從ENV自動加載憑據。

您可以使用自定義屬性創建憑據。

credentials = Aws::Credentials.new(AWS_ACCESS_KEY, AWS_SECRET_KEY)
aws = Aws::EC2::Resource.new(region: 'eu-central-1', credentials: credentials)

在您的特定情況下,似乎無法將自定義憑據傳遞給SharedCredentials

如果僅執行credentials = Aws::SharedCredentials.new()它將加載default配置文件。 您應該可以通過傳遞:profile_name作為選項來加載myprofile

我不知道您是否也可以覆蓋該區域。 您可能想嘗試松開該選項,看看它是如何工作的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM