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

跨账号无法解密/下载S3存储桶中经KMS加密的对象

跨账号S3+KMS权限问题:上传加密对象/解密下载失败排查方案

嘿,我来帮你梳理下这个问题——你已经完成了基础的跨账号权限配置,但SSE-KMS的跨账号场景有几个容易踩坑的细节,导致单独操作正常,但组合起来就出问题。咱们一步步来排查:

1. 存储桶策略缺了关键权限

你能上传普通文件,说明s3:PutObject是没问题的,但带SSE-KMS的上传需要额外的KMS操作权限:

  • 上传加密对象时,S3会自动调用KMS生成数据密钥,所以你的存储桶策略必须给账号B的IAM用户加上kms:GenerateDataKey权限
  • 下载解密的时候,则需要kms:Decrypt权限

检查你的存储桶策略,确保包含类似这样的配置(注意资源要同时覆盖S3对象和KMS密钥):

{
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::22222:user/你的账号B用户ARN"
  },
  "Action": [
    "s3:PutObject",
    "s3:GetObject",
    "kms:GenerateDataKey",
    "kms:Decrypt"
  ],
  "Resource": [
    "arn:aws:s3:::bucket-in-a/*",
    "arn:aws:kms:us-east-1:11111:key/KEYID"
  ]
}

2. KMS密钥策略的操作不全

你已经允许账号B使用CMK,但要确认KMS策略里有没有包含所有必要的操作:

  • 单独执行aws kms encrypt只需要kms:Encrypt,但SSE-KMS上传需要的是kms:GenerateDataKey(因为是用数据密钥加密对象,不是直接用CMK加密)
  • 下载解密则需要kms:Decrypt

给你的KMS密钥策略加上这些操作:

{
  "Sid": "AllowAccountBUserToAccessKMS",
  "Effect": "Allow",
  "Principal": {
    "AWS": "arn:aws:iam::22222:user/你的账号B用户ARN"
  },
  "Action": [
    "kms:GenerateDataKey",
    "kms:Decrypt",
    "kms:Encrypt"
  ],
  "Resource": "*"
}

3. 账号B的IAM用户权限要同步

除了存储桶和KMS的策略,别忘了检查账号B里那个IAM用户的自身权限:

  • 确保用户的IAM policy里明确允许s3:PutObject、s3:GetObject,以及对应的KMS操作kms:GenerateDataKey、kms:Decrypt
  • 特别要注意有没有拒绝语句,IAM的拒绝规则会覆盖所有允许的权限,哪怕存储桶策略给了权限也没用

4. 用测试命令定位具体错误

你可以用下面的命令测试带SSE-KMS的上传,看看具体的错误提示(AWS的错误信息会明确告诉你缺哪个权限):

aws s3 cp localfile s3://bucket-in-a --server-side-encryption aws:kms --sse-kms-key-id arn:aws:kms:us-east-1:11111:key/KEYID

下载测试的话:

aws s3 cp s3://bucket-in-a/加密后的文件名 ./本地文件名 --server-side-encryption aws:kms

根据错误提示(比如AccessDenied: User: ... is not authorized to perform: kms:GenerateDataKey on resource: ...),针对性调整对应的策略就行。

最后总结一下核心要点

跨账号SSE-KMS的权限逻辑比单独操作复杂,关键要做到三点:

  • 存储桶策略同时授权S3操作和对应的KMS操作,资源要覆盖S3对象和KMS密钥
  • KMS策略必须允许GenerateDataKey(上传)和Decrypt(下载)这两个容易被忽略的操作
  • 账号B的IAM用户自身权限不能有冲突的拒绝规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:48:15