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

如何限制AWS EC2实例角色仅在带指定标签的EBS卷上使用KMS密钥?

问题解答

你的IAM策略配置无法实现预期需求,原因是:当实例角色调用KMS操作时,策略中的aws:ResourceTag/name条件指向的是KMS密钥本身的标签,而非你要限制的EBS卷标签,这和你的需求完全不符。

要实现仅允许带有my-volume标签的EBS卷使用该KMS密钥,需要调整IAM策略的条件部分,结合EBS卷的加密上下文和标签验证,正确配置如下:

{
    "Effect": "Allow",
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey",
        "kms:CreateGrant",
        "kms:ListGrants",
        "kms:RevokeGrant"
    ],
    "Resource": "arn:aws:kms:us-east-1:ACCOUNT_ID:key/KMS_KEY_ID",
    "Condition": {
        "StringEquals": {
            "kms:EncryptionContext:aws:ebs:volume-id": "${aws:ResourceArn}"
        },
        "StringEquals": {
            "aws:ResourceTag/name": "my-volume"
        }
    }
}

配置说明:

  • kms:EncryptionContext:aws:ebs:volume-id:确保KMS操作的加密上下文包含EBS卷的ARN,关联到目标EBS资源。
  • aws:ResourceTag/name: "my-volume":验证该EBS卷是否带有指定标签,满足条件才允许KMS操作。

另外需要注意:

  1. 确保实例角色本身拥有对目标EBS卷的相关操作权限(如ebs:AttachVolume等),否则无法触发KMS操作的上下文传递。
  2. KMS密钥策略仍需保留允许该实例角色调用KMS操作的基础权限(即你最初写的密钥策略去掉aws:ResourceTag条件部分),否则IAM策略的允许会被密钥策略的拒绝覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:01:09