我有一个在 Linux EC2 实例上运行的 Python 程序,我正在尝试从机密管理器获取值,但不断收到权限错误
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
我需要更改哪些权限?
访问 EC2 的用户与计算机本身具有不同的角色。
计算机对机密管理器的角色和访问权限由以下任一定义
- 用户角色(在 AWS 控制台中创建 EC2 时(,或
- ./aws/credentials 和 ./aws/configuration
在我的代码中,我使用 boto.utils.get_instance_identity(( 来获取区域。然后从boto3获取access_key和secret_key。会话((.get_credentials((.get_frozen_credentials((
您可能还需要使用 botocore.credentials.RefreshableCredentials,因为来自 get_frozen_credentials(( 的令牌会过期。