Опция для политики пользователя IAM с разрешением AssociateAddress, но запрещает повторную ассоциацию эластичного IP - PullRequest
0 голосов
/ 10 мая 2019

Я попытался создать политику для пользователя IAM, которая позволяет пользователю назначать и связывать эластичный IP.

Но проблема в том, что пользователь также может повторно связать уже существующий эластичный IP другого экземпляра.Есть ли способ запретить такую ​​повторную ассоциацию при создании политики?

Ниже приведена политика, которую я применил

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Deny",
            "Action": "ec2:DisassociateAddress",
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "ec2:AssociateAddress",
                "ec2:DescribeAddresses",
                "ec2:AllocateAddress"
            ],
            "Resource": "*"
        }
    ]
}

1 Ответ

0 голосов
/ 10 мая 2019

Вы можете сделать это, однако вам придется выполнить некоторые манипуляции политикой IAM и использовать теги, чтобы разрешить или запретить доступ к существующим ресурсам. Возможно, это не то решение, на которое вы надеялись бы, но вы могли бы пометить существующие ресурсы с помощью тега, подобного Name: EIP-Protection, Value = Yes. Вы можете назначить тег для экземпляра EC2 или EIP.

Затем вы прикрепите документ политики IAM к пользователю / группе / роли, который будет условно запрещать или разрешать доступ к определенным ресурсам или ресурсам с этой комбинацией тег / значение. Проверьте документы AWS, эта ссылка может пролить свет на то, как выполнить ваш запрос. https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html

Или просто добавьте Политику к роли IAM пользователя, например,

{
    "Version": "2012-10-17",
    "Statement": [{
        "Sid": "AllowAllButEC2",
        "Effect": "Allow",
        "NotAction": [
            "ec2:DisassociateAddress",
            "ec2:TerminateInstance"
        ],
        "Resource": "*",
        "Condition": {"StringNotEquals": {"aws:RequestedRegion": [
            "us-east-1"
        ]}}
    }]
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...