AWS CLI 中跨区域的加密 RDS 复制失败

Nir*_*ngh 3 encryption amazon-web-services amazon-rds aws-cli boto3

我有一个脚本可以跨区域复制未加密和加密的快照。脚本在未加密的快照副本上运行良好,但由于某种原因,加密副本失败并出现错误:-

An error occurred (InvalidParameterValue) when calling the CopyDBSnapshot operation: PreSignedUrl could not be authenticated.
Run Code Online (Sandbox Code Playgroud)

这是我用来复制加密快照的代码

aws rds copy-db-snapshot 
--source-db-snapshot-identifier $source_identifier \
--target-db-snapshot-identifier ${target_identifier} \
--kms-key-id $Enc_Key_ID\ 
--region $target_region 
--source-region $source_region \
--tags Key="owner",Value="RDS Copy Job"
Run Code Online (Sandbox Code Playgroud)

此处传递的所有变量(加密密钥除外)与跨区域的未加密副本一起正常工作。

我想知道出了什么问题。任何帮助和建议对我都有很大帮助。(更新)

aws rds copy-db-snapshot \
--source-db-snapshot-identifier arn:aws:rds:us-west-1:717934610271:snapshot:rds:rds-snapshot??-name-dev-2017-12-22??-08-08 \
--target-db-snapshot-identifier test-rds-snapshotname \
--kms-key-id XXXXXX-XXXXXX-XXXXXX-XXXXXX \
--region us-east-1\
--source-region us-west-1 \
--tags Key="owner",Value="RDS Copy Job" 
Run Code Online (Sandbox Code Playgroud)

以上是用于复制的完整命令。我正在使用 ARN 进行复制

Joh*_*ley 5

指定在目标区域有效的 KMS 密钥。

您可以复制使用 AWS KMS 加密密钥加密的快照。如果您复制加密快照,则快照副本也必须加密。如果您在同一 AWS 区域内复制加密快照,您可以使用与原始快照相同的 KMS 加密密钥来加密副本,或者您可以指定不同的 KMS 加密密钥。如果跨区域复制加密快照,则不能对副本使用与源快照相同的 KMS 加密密钥,因为 KMS 密钥是特定于区域的。 相反,您必须指定在目标 AWS 区域中有效的 KMS 密钥。

处理加密