AWS Switching to an IAM role (AWS CLI)

一,引言

  今天額外分享一篇 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」 的授權實體。接下啦,就正式開始我們今天的內容。

二,正文

1,添加賬戶A 「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」 的相關資訊

2,添加賬戶B 「iam-role-iam-ec2」 的角色許可權策略

首先我們需要添加對 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「 創建成功後,可以點擊查看詳細資訊

3,修改 A 帳號角色的受信實體

先複製 B 帳號 」iam-role-ec2「 的 Role ARN

回到 A 帳號下點擊 」 「 編輯 」iam-role-iam-readonly「 的 Trust relationships

將剛剛複製好的 B 帳號上 」iam-role-ec2「 角色的 arn 替換到下圖圈中的位置

 

4,登陸 B 帳號上的EC2 虛機,通過切換角色,使用AWS CLI 獲取 IAM RoleId

創建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 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

作者:Allen 版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。
Tags: