You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为AWS Secrets Manager创建最小权限IAM策略:仅允许组/角色访问自有密钥

AWS Secrets Manager 最小权限策略:仅访问自身创建的密钥

要实现组/角色仅能访问自己创建和拥有的密钥,核心是通过标签关联身份与密钥,结合IAM条件语句限制权限范围。以下是具体配置步骤和策略示例:

1. 强制创建密钥时添加身份关联标签

首先需要确保用户/角色创建密钥时,必须为密钥打上标识自身身份的标签(比如Owner),避免出现无归属的密钥。

IAM用户适用策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:CreateSecret",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "secretsmanager:ResourceTag/Owner": "${aws:username}"
                }
            }
        }
    ]
}

${aws:username}是IAM内置变量,自动取当前操作的IAM用户名,确保密钥的Owner标签与创建者一一对应。

IAM角色适用策略

如果是给角色配置,可替换为角色名变量:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:CreateSecret",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "secretsmanager:ResourceTag/Owner": "${aws:roleName}"
                }
            }
        }
    ]
}

2. 限制仅访问带有自身标签的密钥

创建策略,允许用户/角色仅对带有对应Owner标签的密钥执行操作:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue",
                "secretsmanager:DescribeSecret",
                "secretsmanager:UpdateSecret",
                "secretsmanager:DeleteSecret"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "secretsmanager:ResourceTag/Owner": "${aws:username}"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "secretsmanager:ListSecrets",
            "Resource": "*",
            "Condition": {
                "ForAllValues:StringEquals": {
                    "secretsmanager:ResourceTag/Owner": "${aws:username}"
                }
            }
        }
    ]
}
  • 针对角色时,同样将${aws:username}替换为${aws:roleName}即可。
  • ListSecrets操作通过ForAllValues:StringEquals确保仅返回自身密钥列表。

关键注意事项

  • 确保用户/角色没有其他允许访问所有Secrets的策略(比如管理员权限),否则会覆盖此最小权限配置。
  • 已存在的密钥需手动补打Owner标签,否则创建者无法访问旧密钥。
  • 若需全局唯一身份标识,可替换${aws:username}为${aws:userid}(IAM用户/角色的唯一ID),避免用户名/角色名重复导致权限混乱。

推荐资源

  • AWS官方IAM条件键文档:详细列出Secrets Manager专属条件键与IAM内置变量,是构建最小权限策略的核心参考。
  • AWS Secrets Manager最佳实践指南:涵盖权限控制、标签管理等安全配置建议,帮助设计更严谨的密钥访问模型。
  • IAM Access Analyzer工具:可自动检测策略中的过度权限,验证你的最小权限配置是否生效。

内容的提问来源于stack exchange,提问作者samaws

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:41:34