Amazon-Web-Services

如何以使用者身份在本地切換到 EC2 實例角色?

  • June 11, 2021

我將 ec2 實例角色應用於我的伺服器,但我想先在本地切換到這些角色以測試權限

我嘗試切換到一個,但出現錯誤:

aws sts assume-role --role-arn arn:aws:iam::1234567890:role/myrole --role-session abc

An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:iam::1234567890:user/meeee is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::1234567890:role/myrole

我是帳戶管理員。我是否需要修改信任策略或其他內容以允許使用者擔任 ec2 實例角色?

要允許您的帳戶擔任服務角色,您需要編輯該角色並將您的帳戶添加到Principal. 為此:

IAM-> Roles->Your Service Role中轉到Trust relationship選項卡並點擊Edit trust relationship. 您的信任關係將是這樣的:

{
 "Version": "2012-10-17",
 "Statement": [
   {
     "Sid": "",
     "Effect": "Allow",
     "Principal": {
       "Service": "ec2.amazonaws.com"
     },
     "Action": "sts:AssumeRole"
   }
 ]
}

您需要添加類似這樣的 AWS 賬戶:

{
 "Version": "2012-10-17",
 "Statement": [
   {
     "Sid": "",
     "Effect": "Allow",
     "Principal": {
       "Service": "ec2.amazonaws.com",
       "AWS": "arn:aws:iam::<your AWS account number>:root"
     },
     "Action": "sts:AssumeRole"
   }
 ]
}

然後,您將能夠通過sts.

獲得所需結果的另一種方法是使用Policy Simulator

在角色Permissions選項卡中,點擊策略左側的箭頭,它將顯示一個按鈕Simulate policy

在此處輸入圖像描述

筆記

無法將 IAM 組用作Principal.

請注意,組並不是真正的身份,因為它不能在基於資源或信任的策略中被辨識為委託人。這只是一次將策略附加到多個使用者的一種方式。

參考

引用自:https://serverfault.com/questions/1012115