从 EC2 实例访问 AWS 密钥管理器时出现权限错误



我有一个在 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(( 的令牌会过期。

最新更新