如何管理 Secrets Manager 密钥访问的 IAM 权限?
2 分钟阅读
0
我想使用基于身份的 AWS Identity and Access Management (IAM) 策略来控制对 AWS Secrets Manager 密钥的访问权限。
解决方案
**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
在以下基于身份的策略或 AWS CLI 命令中,必要时将这些值替换为您的值:
- 将 YOUR-REGION 替换为您的 AWS 区域
- 将 YOUR-ACCOUNT-ID 替换为您的 AWS 账户 ID
- 将 YOUR-SECRET_NAME 替换为您的 Secrets Manager 密钥的名称
- 将 your-secrets-policy.json 替换为您的 Secrets Manager JSON 文件
- 将 YOUR-IAM-USER-NAME 替换为您的 IAM 用户名
- 将 YOUR_IAM_ROLE_NAME 替换为您的 IAM 角色名称
- 将 YOUR-TAG-VALUE 替换为您的标签值
使用 IAM 控制台
使用 JSON 编辑器创建 IAM 策略。以下是您可以创建的用于授予或限制对密钥的访问权限的 IAM 策略的示例。
授予创建密钥的访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret" ], "Resource": "arn:aws:secretsmanager:YOUR-REGION:YOUR-ACCOUNT-ID:secret:YOUR-SECRET-NAME*" }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": [ "*" ] } ] }
授予修改现有密钥的访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:RestoreSecret", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage", "secretsmanager:DeleteSecret", "secretsmanager:RotateSecret", "secretsmanager:CancelRotateSecret", "secretsmanager:UpdateSecret" ], "Resource": "arn:aws:secretsmanager:YOUR-REGION:YOUR-ACCOUNT-ID:secret:YOUR-SECRET-NAME*" }, { "Effect": "Allow", "Action": [ "secretsmanager:ListSecrets" ], "Resource": [ "*" ] } ]
对于使用 AWS Key Management Service (AWS KMS) 托管密钥加密的密钥,授予读取密钥的访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "arn:aws:secretsmanager:YOUR-REGION:YOUR-ACCOUNT-ID:secret:YOUR-SECRET-NAME*" }, { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:YOUR-REGION:YOUR-ACCOUNT-ID:key/key_id" } ] }
使用标签控制对密钥的访问权限:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "secretsmanager:DescribeSecret", "Resource": "*", "Condition": { "StringEquals": { "secretsmanager:ResourceTag/tag-key": "YOUR-TAG-VALUE" } } } ] }
显式拒绝 GetSecretValue 和 DescribeSecret 操作:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "arn:aws:secretsmanager:YOUR-REGION:YOUR-ACCOUNT-ID:secret:YOUR-SECRET-NAME*" } ] }
使用 AWS CLI
将上述任何 IAM 策略另存为 your-secrets-policy.json。
运行 create-policy 命令以创建策略:
aws iam create-policy —policy-name CreateSecret —policy document fileb://create_secret.json
运行 attach-user-policy 命令以将策略附加到 IAM 用户:
aws iam attach-user-policy —policy-arn arn:aws:iam::YOUR-ACCOUNT-ID:policy/CreateSecret —user-name YOUR-IAM-USER-NAME
-或-
运行 attach-role-policy 命令以将策略附加到 IAM 角色:
aws iam attach-role-policy —policy-arn arn:aws:iam::YOUR-ACCOUNT-ID:policy/CreateSecret —role-name YOUR-IAM-ROLE-NAME
相关信息

AWS 官方已更新 7 个月前
没有评论
相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 7 个月前
- AWS 官方已更新 2 年前
- AWS 官方已更新 4 个月前