抱歉,如果這是一個非?;镜膯栴},但我是 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個贊
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/
- 1 回答
- 0 關注
- 107 瀏覽
添加回答
舉報
0/150
提交
取消