我可以搜索现有IAM策略以进行特定操作吗?

在AWS IAM中,有没有一种方法可以通过脚本或在Web控制台中找到哪些现有策略包含给定的操作?

例如,我想允许角色myRole访问所有EC2实例上的DescribeTags操作。 我知道我可以用适当的规则创建自己的策略,但如果存在这样的情况,则希望使用现有的亚马逊策略。


是的,您可以在Web控制台中搜索可用的策略,请查看下面的截图。

在这里输入图像描述


这是一个旧帖子,但它可能有助于某人......尽管别人说过,但你可以做到这一点。 它只需要一些脚本。

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

  • 获取策略的ARN并将其存储在policies_arn数组中。

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

  • 获取每个策略的VersionIds并将其存储在policies_ver数组中。

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

  • 使用for循环遍历每个策略并将策略文档存储在~/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

  • 在文本编辑器中打开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
        }
    }
    

    干杯!

    链接地址: http://www.djcxy.com/p/20107.html

    上一篇: Can I search existing IAM policies for a specific action?

    下一篇: AWS IAM Policy elasticbeanstalk:DescribeEnvironmentHealth