首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IAM限制实例类型

IAM限制实例类型
EN

Stack Overflow用户
提问于 2016-01-20 22:55:10
回答 1查看 382关注 0票数 3

我正在尝试对人们可以启动的实例类型设置一些限制。我有以下政策

代码语言:javascript
复制
{
"Version": "2012-10-17",
"Statement": [
    {
        "Effect": "Allow",
        "Action": "ec2:RunInstances",
        "Resource": [
            "arn:aws:ec2:us-east-1:123:key-pair/CI",
            "arn:aws:ec2:us-east-1:123:instance/*",
            "arn:aws:ec2:us-east-1:123:image/ami-*",
            "arn:aws:ec2:us-east-1:123:subnet/*",
            "arn:aws:ec2:us-east-1:123:network-interface/*",
            "arn:aws:ec2:us-east-1:123:volume/*",
            "arn:aws:ec2:us-east-1:123:security-group/sg-a363xxxx"
        ]
    },
    {
        "Effect": "Deny",
        "Action": "ec2:RunInstances",
        "Resource": [
            "*"
        ],
        "Condition": {
            "StringNotEquals": {
                "ec2:InstanceType": "m4.4xlarge"
            }
        }
    }
]

声明的第一部分工作正常,但我正在尝试添加拒绝部分。

代码语言:javascript
复制
{
"DryRun": true, 
"ImageId": "ami-5f709f34", 
"KeyName": "FE-CI",
"SecurityGroupIds": [
    "sg-a363bada"
], 
"UserData": "", 
"InstanceType": "m4.4xlarge", 
"SubnetId": "subnet-xxxxx", 
"EbsOptimized":false}

当添加条件语句时,所有内容都会被拒绝。以下是解码后的授权消息。

代码语言:javascript
复制
{
        "DecodedMessage": "   {\"allowed\":false,\"explicitDeny\":true,\"matchedStatements\":{\"items\":[{\"statementId\":\"\",\"effect\":\"DENY\",\"principals\":{\"items\":[]},\"principalGroups\":{\"items\":[{\"value\":\"xxx\"}]},\"actions\":{\"items\":[{\"value\":\"ec2:RunInstances\"}]},\"resources\":{\"items\":[{\"value\":\"*\"}]},\"conditions\":{\"items\":[{\"key\":\"ec2:InstanceType\",\"values\":{\"items\":[{\"value\":\"m4.4xlarge\"}]}}]}}]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"xxx\",\"name\":\"jellin-test\",\"arn\":\"arn:aws:iam::xxx:user/jellin-test\"},\"action\":\"ec2:RunInstances\",\"resource\":\"arn:aws:ec2:us-east-1:xxx:key-pair/FE-CI\",\"conditions\":{\"items\":[{\"key\":\"ec2:Region\",\"values\":{\"items\":[{\"value\":\"us-east-1\"}]}}]}}}"
}

我在这里没有看到任何明显的错误。我的理解是,第一条语句应该通过,第二条语句只有在InstanceType不是m4.4xlarge时才会拒绝

EN

回答 1

Stack Overflow用户

发布于 2019-09-18 12:54:58

需要将StringNotEquals密钥更改为StringNotEqualsIfExistshere可以很好地解释为什么会发生这种情况。

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

https://stackoverflow.com/questions/34903317

复制
相关文章

相似问题

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