amazon-web-services - 将 AWS Secrets Manager 中的资源访问权限限制为组
问题描述
我的 AWS Secrets Manager 中有一些需要使用以下命令从 EC2 实例访问的密钥:
aws secretsmanager get-secret-value --secret-id Test/Dev-key
我创建了一个仅用于此目的的 IAM 用户,并创建了一个 IAM 组来应用我创建的 SecretManagerPolicy。我希望这个用户只能访问Test/
他们名字中的密钥。所以这是我制定的政策:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": "arn:aws:secretsmanager:*:*:secret:Test/*"
}
]
}
我的用户无法访问任何密钥或列出它们。如果我用秘密的完整 arn 替换 Resource 字段,我可以列出所有这些。
我还尝试使用标签添加条件,但我仍然可以列出没有标签的秘密。
要么我可以访问所有秘密,要么没有。
解决方案
它对我有用。
为了重现您的情况,我执行了以下操作:
- 创建了一个 Secret 前缀为
Test/
- 使用此策略创建一个 IAM 用户(没有其他权限):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "secretsmanager:*",
"Resource": "arn:aws:secretsmanager:*:*:secret:Test/*"
}
]
}
- 使用来自该 IAM 用户的凭证运行这些命令:
aws secretsmanager get-secret-value --secret-id Test/bob --profile stack
{
"ARN": "arn:aws:secretsmanager:ap-southeast-2:123456789012:secret:Test/bob-zWgaQW",
"Name": "Test/bob",
"VersionId": "...",
"SecretString": "{\"foo\":\"bar\"}",
"VersionStages": [
"AWSCURRENT"
],
"CreatedDate": "2021-08-06T21:07:20.083000+10:00"
}
aws secretsmanager list-secrets --profile stack
{
"SecretList": [
{
"ARN": "arn:aws:secretsmanager:ap-southeast-2:123456789012:secret:Test/bob-zWgaQW",
"Name": "Test/bob",
"LastChangedDate": "2021-08-06T21:07:20.089000+10:00",
"LastAccessedDate": "2021-08-06T10:00:00+10:00",
"Tags": [],
"SecretVersionsToStages": {
"...": [
"AWSCURRENT"
]
},
"CreatedDate": "2021-08-06T21:07:20.042000+10:00"
}
]
}
然后我添加了一个不在Test/
前缀中的秘密,然后我无法如上所示list-secrets
。然后我删除了那个额外的秘密,但仍然无法列出秘密(可能是因为秘密需要 7 天才能删除)。
推荐阅读
- java - 无法使用 JPA 创建映射实体
- html - html 表单标记中的操作属性未在 django 中发送数据
- angular - Angular formio 自定义组件
- google-cloud-platform - Google 负载均衡器总延迟准确度
- javascript - background-cover is broken in Android Chrome, in this web page (only?)
- javascript - Correct way to check for a key inside JSON object
- javascript - 如何将本地 URL 传递给 jquery 对话框以显示 pdf 文件
- javascript - 没有数组时如何使用forEach [JavaScript]
- docker - 无法在 Windows 10 上拉取 docker 映像
- javascript - 如何用 ServiceWorker 生命周期替换 appcache 生命周期事件