Какая роль / разрешение мне нужно, чтобы взять на себя роль дочерней учетной записи, использующей boto3 и python? - PullRequest
0 голосов
/ 06 июля 2019

Итак, как упоминалось в заголовке, мне нужно взять на себя роль одного из моих дочерних аккаунтов, использующих boto3 и python. Я делаю запрос от основной учетной записи и с пользователем IAM причина, поскольку я читаю, учетная запись root не может взять на себя роль, только пользователь. Таким образом, пользователь создан, имеет права администратора, и я также создал собственную политику, вот JSON:

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

Но я продолжаю получать:

botocore.exceptions.ClientError: Произошла ошибка (AccessDenied) при вызове операции AssumeRole: Доступ запрещен

Кстати, вот мой код:

sts = boto3.client('sts')
response = sts.assume_role(
    RoleArn='arn:aws:organizations::123456789:account/Master',
    RoleSessionName='currentSession'
)

И да, у меня есть учетные данные и настройки, установленные локально.

1 Ответ

0 голосов
/ 07 июля 2019

В «детской» учетной записи вам потребуется:

  • Роль IAM , которую вы хотите принять
  • A Доверительные отношения на роль, которая позволяет другой учетной записи использовать его
  • Политика, предоставляющая доступ к ресурсам, которые вы хотите использовать для роли

В «родительском» аккаунте вам понадобится:

  • Пользователь IAM, у которого есть разрешение sts:AssumeRole для как минимум роли IAM в дочерней учетной записи

Кстати, понятие «дочерний» или «основной» счет не обязательно. Это просто одна учетная запись, вызывающая AssumeRole для роли в другой учетной записи.

На основании полученного вами сообщения об ошибке пользователь IAM, которого вы используете для вызова AssumeRole, не имеет необходимых разрешений. Таким образом, либо пользователь IAM, который использует программа, не имеет указанную вами политику, либо роль IAM, которую он пытается принять в другой учетной записи, не имеет доверительных отношений , который разрешает запрос от «дочернего» аккаунта.

См .: Создание роли для делегирования разрешений пользователю IAM - Управление идентификацией и доступом AWS

...