Как получить правильные учетные данные для доступа к AWS SecretsManger на клиенте boto3 с помощью AWS Cognito - Indentity Pool - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь получить AWS Secret (который является конфигурацией boto3) с помощью автономного приложения, работающего под python3 (kivy).

Клиент использует boto3 и работает нормально с жестко заданными учетными данными.

Я пытаюсь получить кредиты, используя get_credentials_for_identity в boto3.

Я создал пул идентификации федерации и назначил ему политику доступа к диспетчеру секретов:

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "secretsmanager:GetSecretValue",
        "Resource": "<arn-of-the-secret-the-app-needs-to-access>"
    }
}

Я также сделал то же самое, используя обычную роль Cognito.(Зная, что это не проблема, но я уверен, что мы все делаем глупости, пытаясь что-то решить).

client = boto3.client('cognito-identity', region_name='eu-west-1')
response = client.get_credentials_for_identity(
    #identity taken from fedenration/identity pools;app with cognito access
    IdentityId='eu-west-1:6###...',
)
creds_dic = response['Credentials']
awsaccesskey = creds_dic['AccessKeyId']
awsseckey = creds_dic['SecretKey']
print(response)
print(awsseckey)
print(awsaccesskey)

дает мне неправильные AccessKeyId и SecretKey те, которые он предоставляет, ядаже не могу найти.Я думаю, что спрашиваю ключ доступа / секрет для IAM, который содержит этот identity, но мне нужен ключ доступа / секрет для роли IAM, которая обращается к secrets manager, чтобы я мог передать их в boto3 ивосстановить кредиты / секрет.

Мне также нужно то же самое для user pool, но я могу это настроить, как только осознаю глупость, которую я делаю.

1 Ответ

0 голосов
/ 28 апреля 2019

Cognito генерирует новые учетные данные, которые предоставляет AWS STS. Вы не сможете сопоставить эти учетные данные с имеющимися у вас учетными данными, созданными IAM. Чтобы получить доступ к API-интерфейсам AWS Secrets Manager, убедитесь, что у Authenticated Role вашего пула идентификации Cognito есть соответствующие разрешения.

...