AWS IAM SSM - ограничение документов, которые могут запускать экземпляры
Есть ли способ ограничить политику IAM для экземпляра EC2, если он может запустить только короткий список документов - я попытался ограничить доступ к ssm:GetDocument, например так:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:GetDocument"
],
"Resource": [
"arn:aws:ssm:ap-southeast-2:*:document/MyCommand"
]
}
]}
Но я могу выполнить любую команду на экземпляре, включая документ AWS-RunPowershellScript.
Эта ссылка показывает, как пользователи могут быть ограничены в отношении ssm: sendCommand: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delegate-commands.html
1 ответ
Я не нашел способ ограничить SendCommand на основе документа. Если у пользователя нет доступа, вы получаете сообщение об ошибке:
Пользователь: arn:aws:iam::123456789012: пользователь / имя пользователя не авторизован для выполнения: ssm:SendCommand на ресурсе: arn:aws:ec2:us-east-1:123456789012:instance/i-01234567890abcdef
Это указывает на то, что ресурс в SendCommand может быть ограничен на основе идентификаторов экземпляров. Было бы неплохо, если бы одним из Условий был Document ARN, но до сих пор я не нашел способа сделать это (это не условие в мастере создания политик).
Обновление: я разместил этот вопрос на форумах AWS, надеюсь, я получу ответ: https://forums.aws.amazon.com/thread.jspa?threadID=249039
Обновление 2: я получил ответ, и решение состоит в том, что для этого вы должны использовать Ресурс, чтобы указать, на каких экземплярах вы разрешаете запускать команды, и на каком документе пользователю разрешено запускать. Например, вот чем я закончил:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ssm:SendCommand"
],
"Resource": [
"arn:aws:ec2:*:123456789012:instance/*",
"arn:aws:ssm:*:123456789012:document/RestartServices"
]
}
]
}