Ограничение ресурса ролевой политики AWS IAM - PullRequest
0 голосов
/ 23 мая 2018

Я относительно новичок в AWS и пытаюсь выяснить, как работают политики ролей.Я прочитал документацию AWS, которая является очень полной, но применяемая мной политика по-прежнему не выполняет то, что я ожидаю ... позвольте мне объяснить

Я пытаюсь предоставить доступ к ролитак что, когда предполагается, что он может что-то делать с lambda

, я создал роль под названием "deployer".
Затем я прикрепил к этой роли следующую политику:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": "lambda:*"
            "Resource": "arn:aws:iam::<account_id>:role/deployer"
        }
    ]
}

Я ожидаю, что в Политике сказано ... Указанному ресурсу (роли развертывателя) разрешено выполнять любые действия со службой Lambda

Однако, когда я переключаюсь на эту рольв интерфейсе я получаю следующую ошибку в панели управления Lambda:

У вас нет прав на выполнение: lambda: GetAccountSettings.

Единственное решение, которое у меня естьнайдено - подстановить атрибут Resource в Политике ... однако это как бы сводит на нет цель попытки ограничить доступ только к этой роли

Пример Политики, которая делает то, что я хочу

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": "lambda:*"
            "Resource": "*"
        }
    ]
}

Может кто-нибудь объяснитьдля меня, что на самом деле здесь происходит?Я ясно не понял, для чего используется атрибут Resource ... Для меня эта вторая политика говорит, что любой ресурс может делать что угодно с Lambda ...

Спасибо

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Изменить

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": "lambda:*"
            "Resource": "arn:aws:iam::<account_id>:role/deployer"
        }
    ]
}

на

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "1",
            "Effect": "Allow",
            "Action": "lambda:*"
            "Resource": "arn:aws:lambda:<region>:<account_number>:function:my-awesome-lambda-function"
        }
    ]
}
0 голосов
/ 23 мая 2018

Вы пытаетесь определить роль для применения политики в атрибуте ресурса - это не то, для чего предназначен атрибут ресурса.Атрибут ресурса относится к лямбда-функциям, которые вы хотите, чтобы пользователь мог вызывать.

Чтобы назначить эту политику для роли, просто создайте политику, как указано выше (определяя ресурсы Lambda соответствующим образом, что может быть подстановочным знаком)если вы действительно хотите применить это ко всем своим функциям Lambda), тогда назначьте политику для роли в консоли IAM.

См. здесь для получения дополнительной информации об определении ресурсов.

...