在Secrets Manager策略中使用Allow实现NotPrincipal
Secrets Manager是AWS中一种安全的存储和访问Secrets(如密码、API密钥等敏感信息)的服务。但是,在使用Secrets Manager时,使用NotPrincipal的AWS IAM资源策略可能会导致访问权限失败。
问题的解决方法是使用Allow和NotPrincipal的组合来实现同等的效果。以下是一个使用Allow和NotPrincipal的示例Secrets Manager策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxxxxxxx:root"
},
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:us-east-1:xxxxxxxxxxxx:secret:MySecret"
]
},
{
"Effect": "Allow",
"NotPrincipal": {
"AWS": "arn:aws:iam::xxxxxxxxxxxx:root"
},
"Action": [
"secretsmanager:GetSecretValue"
],
"Resource": [
"arn:aws:secretsmanager:us-east-1:xxxxxxxxxxxx:secret:MySecret"
]
}
]
}
该策略会允许根账户的AWS使用secretsmanager:GetSecretValue
操作来访问MySecret
。同时,也允许除根账户外的其他AWS使用secretsmanager:GetSecretValue
操作来访问MySecret
。
这是一种使用Allow和NotPrincipal的有效方式来解决AWS IAM资源策略中NotPrincipal资源策略存在的问题。