我正在使用预先签名的 URL 实现到 S3 的上传,但我对此感到怀疑。
根据S3:PutObject 文档,为了指定 SSE KMS 加密,我需要指定两者:
x-amz-server-side-encryption: aws:kmsx-amz-server-side-encryption-aws-kms-key-id: SSEKMSKeyId特别是后一个被记录为:
此标头指定 AWS Key Management Service 的 ID
在我当前的用例中,由于我正在处理跨账户存储桶访问,因此值x-amz-server-side-encryption-aws-kms-key-id 必须是完整的 ARN。
我一直将任何内部标识符视为秘密,但这篇文档提出了以下问题:
作为额外(也许)有用的信息,我在调试模式下为此操作运行了等效的 AWSCLI 命令,这是完整输出的片段:
2021-07-01 21:38:05,165 - ThreadPoolExecutor-0_0 - botocore.utils - DEBUG - Checking for DNS compatible bucket for: https://s3.%REGION%.amazonaws.com/%BUCKET_NAME%/sample_file.bin.2
2021-07-01 21:38:05,165 - ThreadPoolExecutor-0_0 - botocore.utils - DEBUG - Not changing URI, bucket is not DNS compatible: %BUCKET_NAME%
2021-07-01 21:38:05,166 - ThreadPoolExecutor-0_0 - botocore.auth - …Run Code Online (Sandbox Code Playgroud)