Требуемый я - полномочия для ec2.requestSpotInstances?

Я пытаюсь установить полномочия на мне, роль, которая отправит новый точечный запрос экземпляра в случае необходимости. Это будет использоваться функцией Лямбды.

Код делает следующие вызовы API AWS:

  • ec2.describeSpotInstanceRequests
  • ec2.requestSpotInstances
  • ec2.createTags

И я создал для него следующую политику (после попытки большого количества других опций...):

{
"Version": "2012-10-17",
"Statement": [
    {
        "Sid": "Stmt1437749945000",
        "Effect": "Allow",
        "Action": [
            "ec2:Describe*",
            "ec2:RequestSpotInstances",
            "ec2:RunInstances",
            "ec2:CreateTags",
            "iam:List*"
        ],
        "Resource": [
            "*"
        ]
    }
]

}

Если я добавляю iam:* это работает, но очевидно я не хочу делать это..

Кто-либо может помочь мне предполагающий, в каком разрешении это действительно нуждается? Кто-либо знает о карте между вызовами API AWS и всех необходимых полномочиях?

2
задан 25 July 2015 в 04:05
1 ответ

Обычно между функциями API ec2 и разрешениями существует взаимно однозначное соответствие. Так что большая часть того, что у вас есть в вашей политике, в порядке.

Вам нужно добавить разрешение iam: PassRole . Это связано с тем, что ваш спотовый запрос, вероятно, предоставляет роль IAM для ваших новых экземпляров EC2 для запуска.

Требуется разрешение iam: PassRole , поскольку ваша лямбда-роль потенциально создает экземпляр с более высокими разрешениями, чем сам имеет. Это может привести к опасным сценариям безопасности. Таким образом, это дополнительное разрешение необходимо, и обычно оно ограничивается конечным списком ролей, которые можно назначить с помощью свойства Resource .

3
ответ дан 3 December 2019 в 10:42

Теги

Похожие вопросы