Политика управления службами не выполняется - PullRequest
0 голосов
/ 10 апреля 2020

Надеясь, что кто-то может помочь мне правильно настроить мой SCP в рамках AWS Организации. Я пригласил две организации в Организацию, создал две OU - ProdOU и DevOU.

Я назначил одну учетную запись для каждой OU. Я попытался прикрепить политику DENY, чтобы предотвратить запуск экземпляров EC2, отличных от t2.micro.

Пожалуйста, смотрите вывод CLI ниже. Я подключил SCP к DevOU, но все еще могу запускать экземпляры t2.nano. Политика, похоже, не срабатывает по какой-то причине.

Любая помощь будет принята с благодарностью. Возможно, я где-то пропустил этап настройки.

Спасибо

$ aws organizations list-roots
{
    "Roots": [
        {
            "Id": "r-nmg6",
            "Arn": "arn:aws:organizations::xxxxxxxxx:root/o-xxxxxxxx/r-nmg6",
            "Name": "Root",
            "PolicyTypes": [
                {
                    "Type": "TAG_POLICY",
                    "Status": "ENABLED"
                },
                {
                    "Type": "SERVICE_CONTROL_POLICY",
                    "Status": "ENABLED"
                }
            ]
        }
    ]
}

$ aws organizations list-organizational-units-for-parent --parent-id r-nmg6
{
    "OrganizationalUnits": [
        {
            "Id": "ou-nmg6-xxxx",
            "Arn": "arn:aws:organizations::xxxxxx:ou/o-xxxxx/ou-nmg6-xxxxxx4",
            "Name": "ProdOU"
        },
        {
            "Id": "ou-nmg6-yyyy",
            "Arn": "arn:aws:organizations::xxxxxx:ou/o-xxxxx/ou-nmg6-xxxxxx7",
            "Name": "DevOU"
        }
    ]
}

$ aws organizations list-accounts-for-parent --parent-id ou-nmg6-xxxxxx7
{
    "Accounts": [
        {
            "Id": "ou-nmg6-xxxxxx7",
            "Arn": "arn:aws:organizations::xxxxxxxxx:account/o-xxxxxxx/xxxxxxx",
            "Email": "xxxxxx@gmail.com",
            "Name": "xx.aws",
            "Status": "ACTIVE",
            "JoinedMethod": "INVITED",
            "JoinedTimestamp": "2020-04-09T14:20:27.088000+01:00"
        }
    ]
}


$ aws organizations list-policies-for-target --filter SERVICE_CONTROL_POLICY --target-id ou-nmg6-xxxxxx7
{
    "Policies": [
        {
            "Id": "p-xxxxxxxxxxx",
            "Arn": "arn:aws:organizations::xxxxxxxxxxxxx:policy/o-xxxxxxxxxxxx/service_control_policy/p-xxxxxxxxxx",
            "Name": "DenyNonT2Micro",
            "Description": "Only t2.micro",
            "Type": "SERVICE_CONTROL_POLICY",
            "AwsManaged": false
        },
        {
            "Id": "p-FullAWSAccess",
            "Arn": "arn:aws:organizations::aws:policy/service_control_policy/p-FullAWSAccess",
            "Name": "FullAWSAccess",
            "Description": "Allows access to every operation",
            "Type": "SERVICE_CONTROL_POLICY",
            "AwsManaged": true
        }
    ]
}

$ aws organizations describe-policy --policy-id p-xxxxxxxxxx
{
    "Policy": {
        "PolicySummary": {
            "Id": "p-xxxxxxx",
            "Arn": "arn:aws:organizations::xxxxxxxxx:policy/o-xxxx/service_control_policy/xxxxxxxxx",
            "Name": "DenyNonT2Micro",
            "Description": "Only t2.micro",
            "Type": "SERVICE_CONTROL_POLICY",
            "AwsManaged": false
        },
        "Content": "{\n  \"Version\": \"2012-10-17\",
                \n  \"Statement\": [\n    {\n      \"Sid\": \"RequireMicroInstanceType\",
                \n      \"Effect\": \"Deny\",
                \n      \"Action\": \"ec2:RunInstances\",
                \n      \"Resource\": \"arn:aws:ec2:*:*:instance/*\",
                \n      \"Condition\": 
                {\n        \"StringNotEquals\":{
                \t\n          \"ec2:InstanceType\":\"t2.micro\"\n        
            }\n      }\n    }\n  ]\n} "
    }
}
...