【发布时间】:2019-01-06 13:38:24
【问题描述】:
我在 AWS 中有一个要求。非管理员用户需要在 AWS Secrets Manager 中写入某些机密。 AWS 管理员不应访问这些机密。
这里 AWS 管理员是对用户附加“AdministratorAccess”策略的人,非管理员是管理员创建的用户,并且仅授予对某些服务的有限访问权限。
我想将我的应用程序的“用户名和密码”存储在机密管理器中。 AWS Lambda 也将使用相同的凭证。
我可以写以下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789011:user/app-admin-user"},
"Resource": "*"
},
{
"Effect": "Deny",
"Action": "secretsmanager:*",
"Principal": {"AWS": "arn:aws:iam::123456789011:user/aws-admin-user"},
"Resource": "*"
}
]
}
但此政策仅拒绝单个用户。我想在单一策略中拒绝账户中的所有 AWS 管理员。
我试着用app-admin-user 写NotPrincipal 而不是Principal,如下所示:
{
"Effect": "Deny",
"Action": "secretsmanager:*",
"NotPrincipal": {"AWS": "arn:aws:iam::123456789011:user/app-admin-user"},
"Resource": "*"
}
但这会让AccessDeniedException 说User does not have permission to specify explicit deny 因为用户app-admin-user 不是AWS 管理员。
我附上这个政策文件和我正在创建的秘密。
除了使用 AWS Secrets Manager 来解决此问题之外,如果有其他可用的解决方案,请提出建议。
【问题讨论】:
标签: amazon-web-services aws-secrets-manager