首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建一个AWS IAM策略,该策略将运行实例限制为某些安全组

创建一个AWS IAM策略,该策略将运行实例限制为某些安全组
EN

Stack Overflow用户
提问于 2018-05-21 22:45:54
回答 1查看 905关注 0票数 0

我试图编写一个IAM策略,该策略只允许AWS用户在安全组是两种类型之一的情况下启动实例。由于没有安全组条件键,所以我选择使用条件语句,这样,除非安全组位于这两个类别中的任何一个,否则不能启动/运行EC2实例。在下面的策略中,我引用这些已批准的安全组的方式是通过它们的标记。

我遇到的问题是,当我有一个安全组,它可以满足第一个条件时,就可以启动一个实例。但是,当我使用执行等于"UCSFInbound“(第二个条件)的安全组时,实例不会启动(尽管它应该启动)。

我确实有一个单独的策略,它允许更广泛地访问EC2资源,但是,据我所知,AWS在“允许”操作之前首先注册“拒绝”操作。如果这就是我有问题的原因,那么这两个案例(安全小组)都不应该起作用。

IAM策略

代码语言:javascript
复制
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": [
                "ec2:StartInstances",
                "ec2:RunInstances"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:subnet/*",
                "arn:aws:ec2:*:*:key-pair/*",
                "arn:aws:ec2:*:*:instance/*",
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*:*:launch-template/*",
                "arn:aws:ec2:*:*:volume/*",
                "arn:aws:ec2:*:*:security-group/*",
                "arn:aws:ec2:*:*:placement-group/*",
                "arn:aws:ec2:*:*:network-interface/*",
                "arn:aws:ec2:*::image/*"
            ],
            "Condition": {
                "StringNotLike": {
                    "ec2:ResourceTag/aws:cloudformation:stack-id": "NetworkResourcesStack"
                },
                "StringNotEquals": {
                    "ec2:ResourceTag/Name": "UCSFInbound"
                }
            }
        }
    ]
} 
EN

回答 1

Stack Overflow用户

发布于 2018-05-21 22:53:01

通常,您应该避免使用Deny策略,除非它凌驾于其他策略之上。

例如,您可以像这样控制对亚马逊S3的访问:

  1. Allow所有工作人员访问所有S3桶
  2. 如果您不是人力资源工作人员,则Deny访问人力资源桶

这使用一般策略允许大多数访问,但随后使用拒绝覆盖特殊情况。

因此,您应该将arn:aws:ec2:region:account:security-group/security-group-id放入允许他们使用EC2的初始Allow策略中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50457506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档