亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從正在運行的 CLI Go 程序更新 AWS 憑證以訪問不同的賬戶

從正在運行的 CLI Go 程序更新 AWS 憑證以訪問不同的賬戶

Go
蠱毒傳說 2023-03-21 14:43:02
抱歉,如果這是一個非?;镜膯栴},但我是 AWS 的新手,在我的在線研究中沒有找到答案。我正在 Go 中創建一個 CLI 工具,它將從本地的 s3 存儲桶中提取所有內容,然后允許您輸入新的憑據,然后將這些內容推送到新環境中的存儲桶。我遇到了輸入新憑據的問題。這是代碼:type MyProvider struct{    creds        credentials.Value}func getNewCredentials() {    reader := bufio.NewReader(os.Stdin)    fmt.Print("Copy new AWS Access Key: ")    AK, _ := reader.ReadString('\n')    fmt.Print("Copy new AWS Secret Access Key: ")    SAK, _ := reader.ReadString('\n')    fmt.Print("Copy new AWS session token: ")    ST, _ := reader.ReadString('\n')    fmt.Print("New stage name(poc, dev, qa, prod): ")    lib.Stage, _ = reader.ReadString('\n')    provider := MyProvider{        creds: credentials.Value{AK, SAK, ST, ""},    }    creds := credentials.NewCredentials(&provider)}我正在使用自定義提供程序,并且我已經覆蓋了提供程序函數 Retrieve() 和 isExpired()(代碼片段中未顯示)。當我嘗試訪問新存儲桶時,它說該存儲桶不存在,這讓我相信憑據沒有正確更新。我的猜測是這與 Value 結構末尾的空白提供者名稱有關。我不確定該放什么。有關如何解決此問題的任何指導都將非常有幫助。該程序沒有拋出任何錯誤,而只是沒有實際更新憑據。
查看完整描述

1 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials建議您像這樣實例化:

sess, err := session.NewSession(&aws.Config{
    Region:      aws.String("us-west-2"),
    Credentials: credentials.NewStaticCredentials("AKID", "SECRET_KEY", "TOKEN"),
})

如果我嘗試這樣做,我會通過允許一個賬戶在另一個賬戶中扮演角色而不是傳遞憑據來讓這些賬戶共享信任關系。

https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_cross-account-with-roles.html

go 非常方便:

https://docs.aws.amazon.com/sdk-for-go/api/aws/credentials/stscreds/


查看完整回答
反對 回復 2023-03-21
  • 1 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號