AWS IAM - 根据资源标签拒绝某些 EC2 操作?

Posted

技术标签:

【中文标题】AWS IAM - 根据资源标签拒绝某些 EC2 操作?【英文标题】:AWS IAM - Deny certain EC2 actions based on resource tags? 【发布时间】:2019-02-27 22:35:23 【问题描述】:

我正在尝试构建一个 IAM 策略,如果资源具有特定的资源标签(开发),则允许任何 EC2 操作,但如果标签是不同的值(生产),则拒绝。这是我目前所拥有的。


"Version": "2012-10-17",
"Statement": [
    
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": "ec2:Describe*",
        "Resource": "*"
    ,
    
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": "ec2:*",
        "Resource": "*",
        "Condition": 
            "ForAllValues:StringEquals": 
                "ec2:ResourceTag/Environment": "Development"
            
        
    ,
    
        "Sid": "VisualEditor2",
        "Effect": "Deny",
        "Action": "ec2:*",
        "Resource": "*",
        "Condition": 
            "ForAnyValue:StringEquals": 
                "ec2:ResourceTag/Environment": "Production"
            
        
    

]

我有一个资源标签为“环境”且值为“生产”的 AMI,但我仍然可以毫无问题地取消注册它。我做错了什么?

问候

【问题讨论】:

【参考方案1】:

[更新:2021-10]

似乎ec2:DeregisterImage 现在同时支持aws:ResourceTag/$TagKeyec2:ResourceTag/$TagKey

[原件:2019-02]

ec2:DeregisterImage 操作目前不支持ec2:ResourceTag/$TagKey

请参阅Actions Defined for EC2,它提供了 EC2 操作支持的条件列表。

【讨论】:

以上是关于AWS IAM - 根据资源标签拒绝某些 EC2 操作?的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2 启动/停止实例的 IAM 策略

如何创建 IAM 策略以根据子网名称标签控制对 Amazon EC2 资源的访问?

AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限

创建一个IAM用户以授予执行在AWS EC2中某些任务的权限

在 Terraform 上的 aws_iam_policy 资源上包含标签

AWS IAM:如何使用全局条件键创建条件