如果不满足条件,AWS 策略将拒绝操作

问题描述 投票:0回答:1

我正在尝试为基本角色创建新的 AWS IAM 策略。 如果资源缺少标签,我想拒绝删除资源

ResourceDelete = True

到目前为止我所拥有的:

{
          "Sid" : "AllowList",
          "Effect" : "Allow",
          "Action" : [
            "acm:*",
            "autoscaling:*",
            "cloudtrail:*",
            "cloudwatch:*",
            "DMS:*",
            "ec2:*",
            "eks:*",
            "elasticache:*",
            "elasticloadbalancing:*",
            "IAM:*",
            "kms:*",
            "lambda:*",
            "rds:*",
            "redshift:*",
            "route53:*",
            "s3:*",
            "sns:*",
            "sqs:*"
          ],
          "Resource" : "*"
        },
        {
          "Sid" : "DenyDelete",
          "Effect" : "Deny",
          "Action" : [
            "acm:Delete*",
            "acm:Request*",
            "autoscaling:Delete*",
            "cloudtrail:Delete*",
            "cloudwatch:Delete*",
            "DMS:Delete*",
            "ec2:Delete*",
            "ec2:Terminate*",
            "eks:DeleteCluster",
            "elasticache:Delete*",
            "elasticloadbalancing:Delete*",
            "kms:Delete*",
            "lambda:Delete*",
            "rds:Delete*",
            "redshift:Delete*",
            "route53:Delete*",
            "s3:DeleteBucket*",
            "sns:Delete*",
            "sqs:Delete*"
          ],
          "Resource" : "*",
          "Condition" : {
            "StringEquals" : { "aws:ResourceTag/ResourceDelete" : "True" }
          }

我认为我对病情的理解有误。 根据上面的策略,我可以删除任何资源,即使它具有标签

ResourceDelete" : "True"
或不带有标签。

amazon-web-services amazon-iam policy
1个回答
0
投票

您当前的政策是

If ResourceDelete = true, then Deny the Delete
。您可能想使用
StringNotEquals
来解决这个问题。

但是,我认为不可能做你想做的事

如果您查看特定服务的操作和条件页面,您可以查看特定操作是否接受标签。

例如,AWS Lambda 页面AWS Lambda 的操作、资源和条件键 - 服务授权参考表示,

DeleteFunction
操作接受标签作为条件。

同样,对于 Route 53 Amazon Route 53 的操作、资源和条件键 - 服务授权参考 不会显示删除命令的任何条件标签。

因此,不幸的是,你的宏伟计划是不可能的。

© www.soinside.com 2019 - 2024. All rights reserved.