gpt4 book ai didi

amazon-web-services - 我可以搜索现有 IAM 策略以获取特定操作吗?

转载 作者:行者123 更新时间:2023-12-04 14:29:20 25 4
gpt4 key购买 nike

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

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

最佳答案

这是一篇旧帖子,但它可能对某人有所帮助...尽管其他人说了什么,但您可以这样做。它只需要一点脚本。

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

  1. 获取策略的 ARN 并存储在 policies_arn 数组中。

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

  2. 获取每个策略的 VersionId 并存储在 policies_ver 数组中。

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

  3. 使用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

  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
}
}

干杯!

关于amazon-web-services - 我可以搜索现有 IAM 策略以获取特定操作吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38270609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com