找不到凭据-在ubuntu上使用Python访问AWS secret manager

找不到凭据-在ubuntu上使用Python访问AWS secret manager,python,amazon-web-services,aws-sdk,Python,Amazon Web Services,Aws Sdk,我有一个分配了IAM角色的ec2。角色具有读取机密管理器值的显式策略。但是,当我尝试在ec2上使用 session = boto3.session.Session() client = session.client(service_name='secretsmanager',region_name='x') secret = client.get_secret_value(SecretId='x') 我收到错误“找不到凭据”。我做错了什么?我认为只要角色有允许从AWS读取的策略,我就不需要在e

我有一个分配了IAM角色的ec2。角色具有读取机密管理器值的显式策略。但是,当我尝试在ec2上使用

session = boto3.session.Session()
client = session.client(service_name='secretsmanager',region_name='x')
secret = client.get_secret_value(SecretId='x')
我收到错误“找不到凭据”。我做错了什么?我认为只要角色有允许从AWS读取的策略,我就不需要在ec2上存储AWS机密id等/


您仍然需要将其配置为使用SDK中的特定角色

有用链接:

下面是一个AWS Python示例,说明您正在执行的操作:


hm,我想我可以不用在EC2上存储任何密钥、机密等。如果不存储密钥,还必须配置环境变量以了解要使用哪个角色。3利用/.aws/credentials文件了解要承担哪个角色并正确执行API命令,请转到IAM部分