Политика IAM для ограничения доступа к EC2 на основе тега - PullRequest
0 голосов
/ 19 сентября 2019

Я пытался ограничить доступ к экземпляру EC2 с помощью следующей политики IAM:

{

    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:StartInstances",
                "ec2:StopInstances",
                "ec2:TerminateInstances",
                "ec2:RebootInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Purpose": "devops-training"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:DescribeInstances",
                "ec2:DescribeInstanceStatus",
                "ec2:DescribeImages",
                "ec2:DescribeKeyPairs",
                "ec2:DescribeVpcs",
                "ec2:DescribeSubnets",
                "ec2:CreateSecurityGroup",
                "ec2:DescribeSecurityGroups",
                "ec2:CreateTags",
                "ec2:DescribeTags"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestedRegion": "ap-southeast-2"
                }
            }
        }
    ]
}

Но я не могу остановить или запустить экземпляры.Я не могу найти ошибку в вышеуказанной политике.Я могу запустить новый экземпляр.Я добавил тег Purpose со значением «devops-training».Но все равно я не могу остановить / запустить инстансы.

1 Ответ

3 голосов
/ 19 сентября 2019

Вместо этого вы должны использовать ResourceTag / key-name.RequestTag используется, если действие может прикрепить теги как часть запроса, например, ec2: RunInstances, ec2: CreateTags ...

"Condition": {
    "StringEquals": {
        "ec2:ResourceTag/Purpose": "devops-training"
    }
}

Request - Управляет тем, какие теги могут быть переданы в запросе.,Для этого используйте ключ условия aws: RequestTag / key-name, чтобы указать, какие пары ключ-значение тега можно передавать в запросе тегирования или отмены тегирования ресурса AWS.

Resource - контроль доступа к сервису AWS.ресурсы на основе тегов на этих ресурсах.Для этого используйте ключ условия ResourceTag / key-name, чтобы определить, следует ли разрешить доступ к ресурсу на основе тегов, прикрепленных к ресурсу.

https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html#access_tags_control-resources

...