2016-07-08 27 views
0

在AWS IAM中有沒有一種方法可以通過腳本或在Web控制檯中找到哪些現有策略包含給定的操作?我可以搜索現有IAM策略以進行特定操作嗎?

例如,我想允許角色myRole訪問我所有EC2實例上的DescribeTags操作。我知道我可以用適當的規則創建自己的策略,但如果存在這樣的情況,則希望使用現有的亞馬遜策略。

回答

0

是的,你可以在Web控制檯中搜索可用的策略,請查看下面的截圖。

enter image description here

+0

有沒有辦法通過操作縮小列表的範圍?我可以通過手動查找200多個政策來尋找「DescribeTags」,但這將是單調乏味的。在我的例子中,'AmazonEC2ReadOnlyPolicy'運行得很好,但這基本上只是一個「幸運的猜測」。我所希望的是在所有可用策略中搜索「ec2:DescribeTags」或甚至是「ec2:Describe *」的方法。 – amacleod

+1

不,你不能這樣做,任何你可以嘗試政策模擬器多數民衆贊成但它不能通過上述控制檯中的關鍵詞搜索政策。 – error2007s

0

這是舊的文章,但它可以幫助別人......不管別人怎麼說,你可以做到這一點。它只需要一些腳本。

您可以使用AWS CLI執行以下操作。

  1. 獲取策略的ARN並存儲在policies_arn數組中。

    mapfile -t policies_arn < <(aws iam list-policies --query 'Policies[*].[Arn]' --output text)

  2. 查看該policies_ver陣列中的每個政策和商店VersionIds。

    mapfile -t policies_ver < <(aws iam list-policies --query 'Policies[*].[DefaultVersionId]' --output text)

  3. 使用以使每一個政策循環來和政策文件存儲在~/policies.txt

    for ((i=0; i<${#policies_arn[@]}; i++)); do echo ${policies_arn[i]} >> policies.txt && aws iam get-policy-version --policy-arn ${policies_arn[i]} --version-id ${policies_ver[i]} --output json >> ~/policies.txt; done

  4. 在文本編輯器了policies.txt並搜索行動。

注意:根據您的CLI配置,您可能需要也可能不需要--output text參數。但是,輸出必須是文本(而不是JSON)才能運行。

從那裏,你可以很容易地把它變成.sh shell腳本。

樣本輸出:

arn:aws:iam::123456789012:policy/DenyAllAccess 
{ 
    "PolicyVersion": { 
     "CreateDate": "2016-12-06T18:40:51Z", 
     "VersionId": "v1", 
     "Document": { 
      "Statement": [ 
       { 
        "Action": "*", 
        "Effect": "Deny", 
        "Resource": "*" 
       } 
      ], 
      "Version": "2012-10-17" 
     }, 
     "IsDefaultVersion": true 
    } 
} 

乾杯!

相關問題