作者:Allen
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。
今天額外分享一篇 AWS 的技術內容,需要在 EC2 切換到跨帳號 IAM 角色(AWS CLI)。假設我們使用兩個 AWS 賬戶,A帳號,B帳號。我們希望允許 A 帳號用於 “iam-role-iam-readonly” 的 AWS IAM Role 的只讀許可權。而 EC2 實例卻位於 B 賬戶中。該實例包含 “iam-role-ec2” 實例配置文件角色,我們希望 「iam-role-ec2」 允許跨賬戶 A 中的 IAM Role 的只讀許可權。所有需要設置 「iam-role-ec2」 的切換角色許可權,以及設置 「iam-role-iam-readonly」 的授權實體。接下啦,就正式開始我們今天的內容。
選擇 「Access managemrnt =》Roles」,點擊 「Create」 創建角色
選擇授信實體,我們切換到到 「Another AWS account」(Belonging to you or 3rd party)
輸入可以使用此帳號的ID,也就是我的值的 B 帳號的ID,點擊 「Next:Permissions」
許可權選擇 「IAMReadOnlyAccess」,並且選中所需要的許可權,點擊 「Next:Tags」
Add tags 是可選擇的,我們不需要添加任何操作,直接點擊 「Next:Review」
Review頁面,我們輸入相關參數
Role name:「iam-role-iam-readonly」
點擊 「Create role」
創建成功後,我們可以查看到當前 「iam-role-iam-readonly」 的相關資訊
首先我們需要添加對 A 帳號上的 「iam-role-iam-readonly」 的角色切線許可權
選擇 「Acces management=》Policy”,並點擊 「Create policy」 創建新的策略
切換到JSON,添加對應的切換 A 帳號的 「iam-role-iam-readonly」 的許可權
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowIPToAssumeCrossAccountRole", "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::xxxxxxxxxxxx:role/iam-role-iam-readonly" } ] }
點擊 「Next:Tags」
輸入Rolicy Name :「iam-pol-sts-iam-readonly」,點擊「Create Policy」
創建成功後,我們在策略中找到創建好的Policy 「iam-pol-sts-iam-readonly」
接下來,我們需要創建 B 帳號上 EC2 使用的角色 「iam-role-ec2」,並且給當前 「iam-role-ec2」 添加剛剛創建好的切換角色的許可權
選擇相關參數
Select type of trusted entity:「AWS service」
Choose a use case:「EC2」
點擊 「Next:Permissions」
選擇附加 「iam-pol-sts-iam-readonly」,點擊 「Next:Tags」
繼續跳過 Add tags 頁面
在 Review 頁面,輸入
Role name:「iam-role-ec2「 後,點擊 」Create role「
」iam-role-ec2「 創建成功後,可以點擊查看詳細資訊
先複製 B 帳號 」iam-role-ec2「 的 Role ARN
回到 A 帳號下點擊 」 「 編輯 」iam-role-iam-readonly「 的 Trust relationships
將剛剛複製好的 B 帳號上 」iam-role-ec2「 角色的 arn 替換到下圖圈中的位置
創建EC2 虛擬機,並且賦予 “iam-role-ec2” 角色
接下來 SSH 遠程登錄到這台 EC2 上嘗試執行AWS CLI 命令
aws iam get-role --role-name iam-role-iam-readonly
此時會提示,當前缺少安全Token,也就是我們並沒有給當前帳號配置 ak,sk
接下來,我們在當前 “~\.aws\config” 的文件中配置新的角色配置,並且該校色必須具有 role_arn 中指定的校色的 sts:AssumeRole 許可權
打開 aws 配置文件
vim ~/.aws/config
添加新的角色配置
[profile iam-role-iam-readonly] role_arn = arn:aws:iam::xxxxxxxxxxxx:role/iam-role-iam-readonly credential_source = Ec2InstanceMetadata
保存並退出,再次執行aws cli 命令。這次我們在命名中加上 –profile 這個參數
aws iam get-role --role-name iam-role-iam-readonly --profile iam-role-iam-readonly
Bingo!!!,成功, 成功的運行EC2示例配置文件切換到另外的帳號中的角色。
如果我們要回復 B 帳號的中 EC2 原來的實例配置文件許可權,可以不用在 aws cli 命令的結尾加 –profile 這個參數了。
*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。🐱🏍🐱🏍🐱🏍🐱🏍
今天我們額外的講解了以下AWS 的相關知識,算是aws知識的一個開篇講解。很高興為大家同時帶來Azure,AWS 兩個雲平台的相關知識。本文所分享的內容也存在著很多我自己的一些理解,有理解不到位的,還包含,並且指出不足之處!!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。
參考資料://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html
作者:Allen
版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。