我正在嘗試在我的應用程序中使用 aws-sdk-go。它在 EC2 實例上運行?,F在在文檔的配置憑證中,https://docs.aws.amazon.com/sdk-for-go/api/,它說它將查找*Environment Credentials - Set of environment variables that are useful when sub processes are created for specific roles.* Shared Credentials file (~/.aws/credentials) - This file stores your credentials based on a profile name and is useful for local development.*EC2 Instance Role Credentials - Use EC2 Instance Role to assign credentials to application running on an EC2 instance. This removes the need to manage credential files in production.`最好的順序不是相反的順序嗎?但我的主要問題是我是否需要詢問實例是否有角色,然后使用它來設置憑據(如果它有角色)?這是我不確定我需要做什么以及如何做的地方。我確實嘗試了一個簡單的測試來創建一個空配置,基本上只設置區域并在具有角色的實例上運行它,它似乎“有效”但在這種情況下,我不確定是否需要顯式設置作用與否。awsSDK.Config{ Region: awsSDK.String(a.region), MaxRetries: awsSDK.Int(maxRetries), HTTPClient: http.DefaultClient,}我只想確認這樣做是否正確。我的想法是我需要做類似下面的事情 role = use sdk call to get role on machine set awsSDK.Config { Credentials: credentials form of role, ... } issue service command with returned client.任何更多的文檔/指針都會很棒!
2 回答

慕標琳琳
TA貢獻1830條經驗 獲得超9個贊
我從未使用過 go SDK,但如果未從任何其他來源找到憑據,我使用的 AWS SDK 會自動使用 EC2 實例角色。
如果您使用這樣的代碼,SDK 將按以下順序查找憑據:
在環境變量中。(不是 .NET SDK,如前所述。)
在中央憑證文件中(~/.aws/credentials 或 %USERPROFILE%.awscredentials)。
在現有默認的特定于 SDK 的配置文件中(如果存在)。如果您在進行這些更改之前一直在使用 SDK,就會出現這種情況。
對于 .NET SDK,在 SDK Store 中(如果存在)。
如果代碼在 EC2 實例上運行,則通過 Amazon EC2 的 IAM 角色。在這種情況下,代碼從實例元數據服務中獲取臨時安全憑證;憑據具有從與實例關聯的角色派生的權限。

偶然的你
TA貢獻1841條經驗 獲得超3個贊
在我的應用程序中,當我需要連接到 AWS 資源時,我傾向于使用具有特定預定義 IAM 角色的訪問密鑰和秘密密鑰。假設我有這兩個,我用來創建會話的代碼是:
awsCredentials?:=?credentials.NewStaticCredentials(awsAccessKeyID,?awsSecretAccessKey,?"") awsSession?=?session.Must(session.NewSession(&aws.Config{ ????????????Credentials:?awsCredentials, ????????????Region:??????aws.String(awsRegion), ????????}))
當我使用它時,這兩個鍵通常被指定為環境變量(如果我部署到 docker 容器)。
- 2 回答
- 0 關注
- 182 瀏覽
添加回答
舉報
0/150
提交
取消