我正在尝试使用运行 python3(kivy)的独立应用程序来检索 AWS Secret(这是 boto3 配置)。
客户端使用 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
但一旦我意识到我正在做的愚蠢,我就可以配置它。