2

我正在尝试创建一个 AWS IAM 策略,它只允许获取带有特定键/值标记的 AWS 秘密值。

AWS 文档指出secretsmanager:GetSecretValueIAM 操作可以与secretsmanager:ResourceTag/<tagname>上下文一起使用。

但我正在努力让它发挥作用,我尝试了以下方法:

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid"      : "xxxx",
    "Effect"   : "Allow",
    "Resource" : "arn:aws:secretsmanager:*:*:secret:rds-db-credentials/*",
    "Action"   : "secretsmanager:GetSecretValue",
    "Condition": {
      "StringEquals": {
        "secretsmanager:ResourceTag/my_key": "my_value"
      }
    }
  }
}

但它不起作用,我收到以下错误

用户:arn:aws:iam::00000000000:user/me 无权执行:secretsmanager:GetSecretValue 在资源上:arn:aws:secretsmanager:eu-west-1:00000000000:secret:rds-db-credentials/cluster- XXXXX/id-xxx

我仔细检查了我的秘密是否有my_key带有my_value值的标签。

请注意,当我删除Condition策略中的 时,用户有权执行secretsmanager:GetSecretValue.

我也没有成功尝试"Resource": "*"条件一起使用。

我在这里错过了什么吗?


编辑:GetSecretValue通过 AWS CLI 或 AWS 控制台执行时,条件实际上是有效的。但!通过RDS 查询编辑器检索密钥时条件阻塞!删除条件使其立即生效,因此除了secretsmanager:GetSecretValue丢失之外没有其他操作。在这种特定情况下,什么可能使条件失败?

4

0 回答 0