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

Posted

技术标签:

【中文标题】AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限【英文标题】:AWS IAM policy to deny permissions to any EC2 instances inside of autoscaling group or ECS cluster 【发布时间】:2020-03-27 14:46:36 【问题描述】:

我有一个 EC2 启动类型的 ECS 集群和一个自动缩放组来自动调整集群中 EC2 节点的数量。

编写一个 IAM 策略来拒绝对集群和 ASG 的所有访问非常简单。我还想将任何非读取 ec2 IAM 权限限制为作为该集群的一部分启动的 EC2 实例本身。那可能吗?我不能使用实例 ID,因为实例的数量会动态变化。

这是一个示例 IAM 政策。如您所见,Resource 被定义为一个实例 id,这不适用于我的情况。


    "Version": "2012-10-17",
    "Statement": [
        
            "Sid": "",
            "Effect": "Deny",
            "Action": [
                "ec2:RebootInstances",
                "ec2:TerminateInstances",
                "ec2:StopInstances"
            ],
            "Resource": "arn:aws:ec2:us-east-1:123456789000:instance/i-123456789"
        
    ]

【问题讨论】:

您想要实现的目标,如果您希望将 ec2 上的访问限制为 asg 的一部分,那么您可以通过安全组在 ASG 的启动配置中执行此操作,然后所有实例将自动继承相同的安全性有限制的分组。 “拒绝访问”是什么意思?您是指 ssh/RDP 访问,还是访问在实例上运行的 Web 应用程序? “对 EC2 实例的非读取访问”是什么意思? 我说的是 ec2 命名空间中的 IAM 权限。任何不是“只读”权限的东西。确切的列表并不重要。我的问题是关于如何将 IAM 策略定位到属于 ECS 集群的 EC2 实例 【参考方案1】:

我相信 ASG 启动的实例将带有您可以识别它们的标签。您应该能够根据所述标签应用策略。

【讨论】:

以上是关于AWS IAM 策略拒绝对自动扩展组或 ECS 集群内的任何 EC2 实例的权限的主要内容,如果未能解决你的问题,请参考以下文章

拒绝除一个之外的所有存储桶的 AWS IAM 策略

拒绝对 S3 的 ECS 任务访问

Amazon ECS - 在 Docker 入口点上使用 IAM 角色时权限被拒绝

IAM 权限策略是不是可以用于允许访问跨账户资源?

尽管获得了完全许可,但 aws iam 用户访问被拒绝

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