第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

從調用 aws cli 的程序訪問 AWS 服務

從調用 aws cli 的程序訪問 AWS 服務

Go
慕村9548890 2023-01-03 14:13:32
運行附加了 IAM 角色的 EC2 實例,允許將文件復制到 S3 存儲桶或從中讀取文件。當?shù)卿浀?EC2 實例(通過 ssh)時,我可以使用aws s3 ...命令執(zhí)行所有這些任務。沒有憑據(jù),因為它正在使用角色。Env 根本沒有與 aws 相關的任何內容。但是,如果我運行一個程序(用 GO 編寫),它只執(zhí)行以下操作:exec.Command("bash", "-c", "aws s3 ls ....")我得到Partial credentials found in env, missing: AWS_SECRET_ACCESS_KEY這里有點困惑,難道它不應該只是工作嗎,因為我以我登錄時所用的同一用戶身份運行這個過程,而且實際上正如我在開頭提到的那樣工作?為什么它甚至要尋找憑據(jù)?
查看完整描述

1 回答

?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

好的,假設您有一個允許 ec2 實例訪問 s3 存儲桶的角色(我們稱之為 EC2S3AccessRole),您需要遵循此文檔:https ://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ instancedata-data-retrieval.html


例如,在我的情況下(golang),我會做這樣的事情:


一種。獲取令牌:


cmd := exec.Command("bash", "-c", `curl -X PUT http://169.254.169.254/latest/api/token -H "X-aws-ec2-metadata-token-ttl-seconds: 600"`)

b. 使用來自 (a) 的令牌獲取憑據(jù)


type IAMSecurityCreds struct {

Code            string    `json:"Code"`

LastUpdated     time.Time `json:"LastUpdated"`

Type            string    `json:"Type"`

AccessKeyID     string    `json:"AccessKeyId"`

SecretAccessKey string    `json:"SecretAccessKey"`

Token           string    `json:"Token"`

Expiration      time.Time `json:"Expiration"`

}

...


cmd := exec.Command("bash", "-c", `curl -H "X-aws-ec2-metadata-token: `+token+`" -v http://169.254.169.254/latest/meta-data/iam/security-credentials/EC2S3AccessRole`)

...

json.Unmarshal into IAMSecurityCreds

C。一旦你擁有所有三個(令牌、密鑰、秘密),你就可以運行這樣的東西:


cmd := exec.Command("bash", "-c", `AWS_DEFAULT_REGION=us-east-1 AWS_ACCESS_KEY_ID=` + creds.AccessKeyID + ` AWS_SECRET_ACCESS_KEY=` + creds.SecretAccessKey + ` AWS_SESSION_TOKEN="` + creds.Token + `" aws s3 ........`)

而已 :)


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

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號