Ошибка разрешения при доступе к диспетчеру секретов AWS из экземпляра EC2

У меня есть программа Python, запущенная на экземпляре linux EC2, я пытаюсь получить значение из диспетчера секретов, но все время получаю ошибку разрешений

An error occurred (AccessDeniedException) when calling the GetSecretValue operation: User: arn:aws:sts::user_id_here:assumed-role/AmazonSSMRoleForInstancesQuickSetup/somestring is not authorized to perform: secretsmanager:GetSecretValue on resource: arn:aws:secretsmanager:eu-west-2:xxx_my_secret

В моих настройках IAM пользователь находится внутри группы с доступом администратора, а затем у самого пользователя есть права доступа SecretsManagerReadWrite

Какие разрешения мне нужно изменить?


person imlearningcode    schedule 02.01.2020    source источник
comment
Что вы имеете в виду под пользователем? Похоже, что сценарий использует роль IAM, назначенную экземпляру EC2, а не пользователю IAM. Если вы хотите использовать учетные данные пользователя IAM, вам следует запустить aws configure и сохранить учетные данные локально.   -  person John Rotenstein    schedule 03.01.2020
comment
У вас есть права на доступ к KMS-ключу, зашифровывающему секрет?   -  person FransDel    schedule 03.01.2020
comment
Под пользователем я подразумеваю пользователя, на которого в коде ошибки ссылается user_id_here   -  person imlearningcode    schedule 03.01.2020


Ответы (1)


Пользователь, имеющий доступ к EC2, играет роль, отличную от самой машины.

Роль и доступ машины к диспетчеру секретов определяются либо

  • Роль пользователя (при создании EC2 в Консоли AWS) или
  • ./aws/credentials и ./aws/configuration

В моем коде я использовал boto.utils.get_instance_identity () для получения региона. Затем получите access_key и secret_key из boto3.Session (). Get_credentials (). Get_frozen_credentials ()

Вы также можете использовать botocore.credentials.RefreshableCredentials, поскольку срок действия токена из get_frozen_credentials () истекает.

person Ron Marcelino    schedule 03.01.2020
comment
Я применил разрешения не к той роли, я нашел свой экземпляр EC2 в консоли AWS и оттуда добавил разрешения к его роли. - person imlearningcode; 03.01.2020