当对象在服务器端加密时,我无法设置跨区域复制。我正在使用 awscli 进行设置。这就是我所做的。
跨区域复制角色 IAM 策略如下所示:
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:GetReplicationConfiguration",
"s3:ListBucket"
],
"Resource":[
"arn:aws:s3:::source-bucket"
]
},
{
"Effect":"Allow",
"Action":[
"s3:GetObjectVersion",
"s3:GetObjectVersionAcl",
"s3:GetObjectVersionTagging"
],
"Resource":[
"arn:aws:s3:::source-bucket/*"
]
},
{
"Effect":"Allow",
"Action":[
"s3:ReplicateObject",
"s3:ReplicateDelete",
"s3:ReplicateTags"
],
"Resource":"arn:aws:s3:::destination-bucket/*"
}
]
}
这是我的复制配置文件的样子:
{
"Role": "arn:aws:iam::1234567890:role/replication-role",
"Rules": [
{
"ID": "abcd",
"Prefix": "",
"Status": "Enabled",
"SourceSelectionCriteria": {
"SseKmsEncryptedObjects": {
"Status": "Enabled"
}
},
"Destination": {
"Bucket": "arn:aws:s3:::destinationbucket",
"EncryptionConfiguration": {
"ReplicaKmsKeyID": "arn:aws:kms:us-west-2:1234567890:key/849b779d-bdc3-4190-b285-6006657a578c"
}
}
}
]
}
这就是我的 cli 命令的样子:
aws s3api put-bucket-replication --bucket "sourcebucket" --replication-configuration file://./replicationconfigfile.json
当我在运行 cli 命令后转到 S3 存储桶时,我可以看到使用KMS-Encrypted Object
as创建的复制规则,replicate
但是当我单击edit
查看详细信息时,它没有选择任何 KMS 密钥。
- - - 更新 - - - -
如果我删除 cli 创建的规则并使用控制台设置它,它会选择向导中的所有 kms 键。所以问题是为什么我在使用 cli 时不选择源区域中的 kms 键?我在这里想念什么?