我正在尝试创建一个 AWS IAM 策略,它只允许获取带有特定键/值标记的 AWS 秘密值。
AWS 文档指出secretsmanager:GetSecretValue
IAM 操作可以与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
丢失之外没有其他操作。在这种特定情况下,什么可能使条件失败?