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

使用AWS CLI配置SSE加密S3跨区域复制时源KMS密钥未显示问题

问题分析与解决方案

你遇到的这个情况其实是AWS S3控制台UI的显示特性,而非CLI配置本身的功能问题——不过我们可以通过调整CLI配置文件让控制台正确显示选中的源KMS密钥,同时确保复制逻辑完全符合预期。

核心原因

当你通过控制台创建跨区域复制规则并选择复制KMS加密对象时,控制台会自动帮你把所有源区域的AWS KMS密钥ARN添加到规则的KmsMasterKeyIDs列表中。但通过CLI配置时,如果你只开启了SseKmsEncryptedObjects.Status = Enabled却没有显式指定KmsMasterKeyIDs,S3依然会正常复制所有由源区域KMS密钥加密的对象,只是控制台因为找不到配置里的密钥列表,就会显示“未选中任何KMS密钥”——这只是UI的显示问题,完全不影响实际复制功能。

修复步骤

如果你希望控制台编辑规则时能看到选中的源KMS密钥,或者需要限制只复制特定KMS密钥加密的对象,只需在复制配置文件中添加KmsMasterKeyIDs字段即可:

修改后的复制配置文件示例:

{
  "Role": "arn:aws:iam::1234567890:role/replication-role",
  "Rules": [
    {
      "ID": "abcd",
      "Prefix": "",
      "Status": "Enabled",
      "SourceSelectionCriteria": {
        "SseKmsEncryptedObjects": {
          "Status": "Enabled",
          "KmsMasterKeyIDs": [
            "arn:aws:kms:源区域ID:1234567890:key/你的源KMS密钥ID1",
            "arn:aws:kms:源区域ID:1234567890:key/你的源KMS密钥ID2"
            // 按需添加所有需要复制的源KMS密钥ARN
          ]
        }
      },
      "Destination": {
        "Bucket": "arn:aws:s3:::destinationbucket",
        "EncryptionConfiguration": {
          "ReplicaKmsKeyID": "arn:aws:kms:us-west-2:1234567890:key/849b779d-bdc3-4190-b285-6006657a578c"
        }
      }
    }
  ]
}

关键注意事项

  • 无密钥列表的默认行为:如果不添加KmsMasterKeyIDs,S3会默认复制所有源区域KMS密钥加密的对象,只是控制台UI不会显示选中的密钥,实际复制功能完全正常。
  • 权限补充要求:确保你的复制IAM角色拥有访问这些源KMS密钥的权限——需要在源KMS密钥的密钥策略中添加kms:Decrypt和kms:DescribeKey权限,或者在IAM角色策略里针对源KMS密钥ARN添加对应的权限。
  • 通配符限制:KmsMasterKeyIDs不支持通配符,必须明确列出每个需要复制的源KMS密钥ARN。

重新执行你的CLI命令:

aws s3api put-bucket-replication --bucket "sourcebucket" --replication-configuration file://./replicationconfigfile.json

之后再去控制台编辑规则,就能看到你指定的源KMS密钥被选中了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:04:44