从EC2实例访问AWS Secrets Manager时出现权限错误

时间:2020-01-02 15:34:32

标签: amazon-web-services aws-secrets-manager

我有一个在Linux EC2实例上运行的Python程序,我试图从Secrets Manager获取值,但是我一直收到权限错误

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

我需要更改哪些权限?

1 个答案:

答案 0 :(得分:1)

访问EC2的用户与计算机本身的角色不同。

机器对角色管理器的角色和访问权限由以下两者之一定义

  • 用户角色(在AWS Console中创建EC2时),或
  • ./ aws / credentials和./aws/configuration

在我的代码中,我使用boto.utils.get_instance_identity()来获取区域。然后从boto3.Session()。get_credentials()。get_frozen_credentials()

获取access_key和secret_key

由于get_frozen_credentials()中的令牌已过期,因此您可能还需要使用botocore.credentials.RefreshableCredentials。