AWS STS – 獲取臨時憑證的自動化執行

關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(禁止轉載,轉載請先經過作者同意)
網站:www.iloveaws.cn

Hello大家好,歡迎來到《AWS解決方案架構師認證 Professional(SAP)中文視頻培訓課程》,我們今天的課程還是AWS STS服務的內容,AWS STS – 獲取臨時憑證的自動化執行。

我們開始今天的課程內容。

在這裏插入圖片描述

我們上節課講了一個用戶案例,通過將允許訪問S3的權限策略附加到IAM角色,開發人員通過sts:Assumerole的方式獲得該角色的臨時訪問憑證,然後使用此臨時訪問憑證訪問AWS S3,我們也說了這種方式是AWS推薦的最佳實踐,而不是爲用戶直接分配永久性的憑證。

看了課程的同學可能會有一個疑問,這種訪問AWS資源的方式,當獲取角色臨時憑證後,需要手動將access key、secret key以及會話token複製到aws 的 credentials文件。而默認情況下臨時憑證的有效期是一個小時,也就是說如果開發人員需要定期訪問aws資源,就需要在憑證過期後再次運行sts assume-role命令,然後在將獲取的新的臨時憑證複製到aws 的 credentials文件中,這顯然是一個低效的方式,而作爲解決方案架構師來講,如果您提供了這種方案給開發人員,開發人員恐怕不會遵循這個辦法。

那怎麼解決這個問題呢?AWS提供了一個自動化上述過程的一個方法,我們接下來來看一下如何實現。

在這裏插入圖片描述

是這樣的,如果您調試是位於Amazon EC2實例上,而這臺EC2附加了IAM角色,則AWS CLI將自動爲您檢索憑證,您不需要配置任何憑據。

指定AWS CLI承擔角色的配置方法

而我們現在這個用戶案例,需要在本地CLI調用AssumeRole,在使用返回的臨時憑證訪問AWS資源,所以您需要進行配置,指定AWS CLI承擔的角色,然後AWS CLI就會自動爲您進行相應的AssumeRole調用,那怎麼指定AWS CLI承擔的角色呢?

需要在aws cli的credentials文件中增加一個profile ,包括兩個配置項:

role_arn,需要配置爲您需要擔任角色的ARN,所以我們這裏需要配置成我們在上節課新建的角色stroll的ARN
source_profile,這裏配置執行assume-role的IAM用戶憑證所在的profile
我們現在來配置下:

在這裏插入圖片描述

切換到終端,這裏是我們上節課執行的sts assume-role命令,–role-arn參數後面指定了想要承擔角色stroll的arn,我們複製一下,然後編輯AWS credentials文件 。

可以看到我們新建了一個名爲automate的profile,裏面有包括我們前面PPT講的兩個配置項, 將複製的角色arn粘貼到role_arn這裏。

source_profile,這裏需要配置執行assume-role的IAM用戶憑證所在的profile,對應我們這個案例就是開發人員的IAM用戶zhangsan;zhangsan用戶憑證所在的profile就是這裏的default,我們在上節課將其access_id 、secret_key都配置在了default,大家還記得吧,所以我們直接配置爲default 。

所以,通過這兩個配置項,AWS會自動使用default字段的zhangsan的安全憑證,返回role_arn配置項配置的角色stroll的憑證,所以我們就可以通過aws cli命令,通過指定automate的profile 執行命令。

保存退出。

現在我們就將aws cli承擔的角色的arn,以及執行assume-role的zhangsan用戶憑證所在的profiile都配置完了,我們現在執行下命令:
aws s3 ls --profile automate

這裏要注意–profile主要指定我們新創建的automate,看下命令執行結果:

可以看到成功列出了s3存儲桶。

通過配置aws cli承擔角色這種方式,我們就不必在臨時憑證過期時在手動執行assume-role命令獲取臨時憑證,在手動配置到AWS credentials文件,而這一切都將由aws自動幫您搞定。

好的,以上就是我們今天的課程內容,我們介紹了配置AWS CLI承擔IAM角色的步驟,希望同學們有收穫。

在這裏插入圖片描述

希望此係列教程能爲您通過 AWS解決方案架構師認證 Professional 認證考試帶來幫助,如您有任何疑問

關注公衆號:AWS愛好者(iloveaws)
文 | 沉默惡魔(禁止轉載,轉載請先經過作者同意)
網站:www.iloveaws.cn
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章