IAM Passrole не работает (принимая на себя роль IAM) - PullRequest
0 голосов
/ 24 марта 2020

У меня есть 2 роли IAM в одной и той же aws учетной записи

IAM_ROLE_1: у которой есть разрешение на запуск ec2 с правами чтения s3

IAM_ROLE_2: у которой есть только доступ к lamda с предполагаемым доверием от IAM_ROLE_1

Я могу предположить IAM_ROLE_2 из экземпляра, к которому прикреплен IAM_ROLE_1.

Теперь я хочу прочитать местоположение s3 (к которому IAM_ROLE_1 имеет доступ) после принятия IAM_ROLE_2. Насколько я понимаю, я могу сделать это с помощью «iam: passrole»

Это правильное понимание?

Когда я добавляю IAM_ROLE_1 ниже и предполагаю IAM_ROLE_2 и обращаюсь к корзине s3, он все еще выбрасывает доступ ошибка отклонена.

{
        "Sid": "allowpassrole",
        "Effect": "Allow",
        "Action": "iam:PassRole",
        "Resource": [
            "arn:aws:iam::00000001:role/IAM_ROLE_2"
        ]
    }

1 Ответ

0 голосов
/ 24 марта 2020

Набор учетных данных в любое время связан только с одним пользователем IAM или ролью IAM. Таким образом, чтобы сделать вызов с использованием разрешений, связанных с ролью 1 IAM, вам потребуется использовать учетные данные, связанные с этой ролью (не роль 2 IAM).

Чтобы использовать роль 1 IAM, просто создайте клиентский объект Amazon S3. без указания учетных данных. Затем он будет использовать роль IAM 1, связанную с экземпляром.

iam:PassRole используется, чтобы разрешить службе выполнять роль от вашего имени. Например, при запуске экземпляра Amazon EC2 с ролью, для которой установлено значение IAM Role 1, вам потребуется разрешение на PassRole с IAM Role 1. Без этого разрешения вы не сможете запустить экземпляр EC2 с этой ролью.

PassRole - это , а не , используемый для передачи разрешений между ролями.

...