Как сделать так, чтобы экземпляры имели определенные теги? - PullRequest
0 голосов
/ 19 января 2019

Я пытаюсь создать политику, которая обеспечивает соблюдение стандартов тегирования при запуске новых экземпляров

Я читал об этом в некоторых документах AWS, и кажется, что это действительно возможно сейчас. Однако единственный пример кода, который я обнаружил, похоже, устанавливает эти политики для томов. Я не уверен, смогу ли я сделать это без использования лямбды (сейчас у меня нет такой возможности). Я попытался создать политику с кодом ниже. «*» Просто указывает, что любое значение должно быть разрешено в обязательных полях (не уверен, что это правильный способ указать это).

JSON

Я попытался заменить «RunInstances» на «CreateInstance» и «LaunchInstance», но это тоже не работает. Я уже создал эту политику и привязал ее к группе. Затем я добавил себя в эту группу, чтобы посмотреть, сработает ли политика, когда я попытаюсь запустить экземпляр. Нет радости Я новичок в использовании JSON и был бы признателен за любую полезную информацию. Примечание: JSON легче читать на картинке.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowCreateTaggedInstances",
            "Effect": "Allow",
            "Action": "ec2:RunInstances",
            "Resource": "arn:aws:ec2:us-east-2:xxxxxxxxxxxx:instance:instance/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/Primary Owner": "*",
                    "aws:RequestTag/Project/Task": "*",
                    "aws:RequestTag/Environment (Dev/Test)": "*"
                },
                "ForAllValues:StringEquals": {
                    "aws:TagKeys": [
                        "Primary Owner",
                        "Project/Task",
                        "Environment (Dev/Test)"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:us-east-2:xxxxxxxxxxxx:instance:instance",
            "Condition": {
                "StringEquals": {
                    "ec2:CreateAction": "RunInstances"
                }
            }
        }
    ]
}

Ответы [ 2 ]

0 голосов
/ 20 января 2019

Да, возможно, условие, которое вы ищете, таково.

"Condition": {
    "ForAnyValue:StringEquals": {
        "aws:TagKeys": [
            "Environment (Dev/Test)",
            "Primary Owner",
            "Project/Task"
        ]
     },
     "ForAnyValue:StringNotEquals": {
         "aws:RequestTag/Primary Owner": "*",
         "aws:RequestTag/Project/Task": "*",
         "aws:RequestTag/Environment (Dev/Test)": "*"
     }
 }

И затем, конечно, вам нужно выбрать действие и ресурс, для которого нужно применить это условие (обязательная пометка).

0 голосов
/ 20 января 2019

AWS Config Правила позволяют применять это требование с помощью управляемого правила AWS, которое называется required-tags . Поскольку это управляемое правило, вам не нужно создавать функцию lamdba.

...