Я пытаюсь установить полномочия на мне, роль, которая отправит новый точечный запрос экземпляра в случае необходимости. Это будет использоваться функцией Лямбды.
Код делает следующие вызовы API AWS:
И я создал для него следующую политику (после попытки большого количества других опций...):
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1437749945000",
"Effect": "Allow",
"Action": [
"ec2:Describe*",
"ec2:RequestSpotInstances",
"ec2:RunInstances",
"ec2:CreateTags",
"iam:List*"
],
"Resource": [
"*"
]
}
]
}
Если я добавляю iam:*
это работает, но очевидно я не хочу делать это..
Кто-либо может помочь мне предполагающий, в каком разрешении это действительно нуждается? Кто-либо знает о карте между вызовами API AWS и всех необходимых полномочиях?
Обычно между функциями API ec2 и разрешениями существует взаимно однозначное соответствие. Так что большая часть того, что у вас есть в вашей политике, в порядке.
Вам нужно добавить разрешение iam: PassRole
. Это связано с тем, что ваш спотовый запрос, вероятно, предоставляет роль IAM для ваших новых экземпляров EC2 для запуска.
Требуется разрешение iam: PassRole
, поскольку ваша лямбда-роль потенциально создает экземпляр с более высокими разрешениями, чем сам имеет. Это может привести к опасным сценариям безопасности. Таким образом, это дополнительное разрешение необходимо, и обычно оно ограничивается конечным списком ролей, которые можно назначить с помощью свойства Resource
.