【问题标题】:AWS IAM policy permissions clash issueAWS IAM 策略权限冲突问题
【发布时间】:2021-01-30 05:21:58
【问题描述】:

我已尝试创建一个策略来阻止 AMI 的注销,除非这些 AMI 具有适当的“删除此”标签。当我运行 IAM 策略模拟器时,该策略似乎不起作用,并且允许取消注册 AMI,因为用户已经与比我的新策略更宽松的策略相关联。

是否可以让我的自定义政策优先于其他政策?或者我是否必须创建明确具有取消注册 AMI 权限的新策略?

【问题讨论】:

    标签: amazon-web-services amazon-iam amazon-ami


    【解决方案1】:

    当所述 AMI具有“删除”标签或该标签的值为 not“是”。无论调用身份可能具有任何可能的 Allow 权限,这都有效。

    这是因为带有“拒绝”操作的权限语句始终优先于任何允许权限。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Deny",
          "Action": "ec2:DeregisterImage",
          "Resource": "arn:aws:ec2:*::image/*",
          "Condition": {
            "StringNotEquals": {
              "aws:ResourceTag/delete": "yes"
            }
          }
        }
      ]
    }
    

    阅读此页面了解 IAM 用于评估权限的详细算法:https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html

    【讨论】:

    • 这似乎没有任何效果,至少在我使用策略模拟器进行测试时没有。但是,它似乎确实按照我对 real AMI 的预期工作。此外,这不会对 AWS Backup 创建的自动过期 AMI 产生影响,对吗?
    • 我希望能够轻松删除 AMI除非它们被标记,所以我将条件切换为“StringEquals”并且标记命名为“Preserve”,因此:拒绝如果 AMI 标记为“Preserve=yes”,则取消注册。
    • 不幸的是,策略模拟器与现实世界不匹配,尤其是在使用条件时,例如“如果您将条件键的值留空,则在模拟期间将忽略该键”来自the docs中的警告调出@
    猜你喜欢
    • 2019-04-18
    • 2017-06-09
    • 2020-01-23
    • 1970-01-01
    • 2021-01-03
    • 1970-01-01
    • 2019-02-19
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多