Я пытаюсь получить 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
, но я могу это настроить, как только осознаю глупость, которую я делаю.