AWS SCP vpc, регион, тип экземпляра, политика тегов не работает - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь создать SCP для выполнения следующих условий:

  • Ограничить запуск экземпляра EC2 в определенном регионе
  • Разрешить определенный тип экземпляра.
  • Разрешить использование определенного тега при запуске экземпляров
  • Другие службы не должны быть разрешены (vpc, iam должен быть только для описания целей)

После "Sid": "RestrictVPC"удалено, создание экземпляра работает, я не уверен, какое другое конкретное правило необходимо добавить?

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "RestrictInstanceToRegion",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "aws:RequestedRegion": [
                        "eu-central-1"
                    ]
                }
            }
        },
        {
            "Sid": "RequireMicroInstanceType",
            "Effect": "Deny",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ec2:InstanceType": "t2.micro"
                }
            }
        },
        {
            "Sid": "RequireSpecificTags",
            "Effect": "Deny",
            "Action": [
                "ec2:RunInstances"
            ],
            "Resource": "arn:aws:ec2:*:*:instance/*",
            "Condition": {
                "StringNotLike": {
                    "aws:RequestTag/Owner": "testing"
                }
            }
        },
                {
            "Sid": "AllowCloudWatch",
            "Effect": "Allow",
            "Action": [
                "cloudwatch:*"
            ],
            "Resource": [
                "*"
            ]
        },
    {
            "Sid": "RestrictIAM",
            "Effect": "Allow",
            "Action": [
                "iam:ListInstanceProfiles"
            ],
            "Resource": [
                "*"
            ]
        },
        {
                        "Sid": "RestrictVPC",
            "Effect": "Allow",
            "Action": [
                "ec2:RunInstances",
                "ec2:StopInstances",
                "ec2:StartInstances",
                "ec2:TerminateInstances",
                "ec2:Describe*"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "sts:DecodeAuthorizationMessage"
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}

Но запуск экземпляра завершается неудачно с ошибкой« Ошибка запуска при запуске »

Decoded stsсообщение:

{
    "DecodedMessage": "{\"allowed\":false,\"explicitDeny\":true,\"matchedStatements\":{\"items\":[{\"statementId\":\"\",\"effect\":\"DENY\",\"principals\":{\"items\":[{\"value\":\"722175093951\"}]},\"principalGroups\":{\"items\":[]},\"actions\":{\"items\":[{\"value\":\"cloudwatch:*\"},{\"value\":\"iam:ListInstanceProfiles\"},{\"value\":\"ec2:GetConsole*\"},{\"value\":\"ec2:RunInstances\"},{\"value\":\"ec2:StopInstances\"},{\"value\":\"ec2:StartInstances\"},{\"value\":\"ec2:TerminateInstances\"},{\"value\":\"ec2:Describe*\"},{\"value\":\"sts:DecodeAuthorizationMessage\"}]},\"resources\":{\"items\":[{\"value\":\"*\"}]},\"conditions\":{\"items\":[]}}]},\"failures\":{\"items\":[]},\"context\":{\"principal\":{\"id\":\"722175093951\",\"arn\":\"arn:aws:iam::722175093951:root\"},\"action\":\"ec2:CreateTags\",\"resource\":\"arn:aws:ec2:eu-central-1:722175093951:instance/*\",\"conditions\":{\"items\":[{\"key\":\"ec2:InstanceMarketType\",\"values\":{\"items\":[{\"value\":\"on-demand\"}]}},{\"key\":\"aws:Resource\",\"values\":{\"items\":[{\"value\":\"instance/*\"}]}},{\"key\":\"aws:Account\",\"values\":{\"items\":[{\"value\":\"722175093951\"}]}},{\"key\":\"ec2:AvailabilityZone\",\"values\":{\"items\":[{\"value\":\"eu-central-1b\"}]}},{\"key\":\"ec2:ebsOptimized\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:IsLaunchTemplateResource\",\"values\":{\"items\":[{\"value\":\"false\"}]}},{\"key\":\"ec2:InstanceType\",\"values\":{\"items\":[{\"value\":\"t2.micro\"}]}},{\"key\":\"ec2:RootDeviceType\",\"values\":{\"items\":[{\"value\":\"ebs\"}]}},{\"key\":\"aws:Region\",\"values\":{\"items\":[{\"value\":\"eu-central-1\"}]}},{\"key\":\"aws:Service\",\"values\":{\"items\":[{\"value\":\"ec2\"}]}},{\"key\":\"ec2:InstanceID\",\"values\":{\"items\":[{\"value\":\"*\"}]}},{\"key\":\"aws:Type\",\"values\":{\"items\":[{\"value\":\"instance\"}]}},{\"key\":\"ec2:Tenancy\",\"values\":{\"items\":[{\"value\":\"default\"}]}},{\"key\":\"ec2:Region\",\"values\":{\"items\":[{\"value\":\"eu-central-1\"}]}},{\"key\":\"aws:ARN\",\"values\":{\"items\":[{\"value\":\"arn:aws:ec2:eu-central-1:722175093951:instance/*\"}]}}]}}}"
}
...