要在AWS KMS管理的密钥上启用服务器端加密,需要使用AWS Signature Version 4进行请求。可以通过在代码中指定AWS Signature Version 4来解决此问题。以下是一个Python的例子:
import boto3
from botocore.client import Config
# 指定使用AWS Signature Version 4
session = boto3.Session(region_name='us-west-2')
s3 = session.client('s3', config=Config(signature_version='s3v4'))
# 使用AWS KMS管理的密钥进行服务器端加密
s3.put_object(
Body=b'Hello World!',
Bucket='my-bucket',
Key='my-key',
ServerSideEncryption='aws:kms',
SSEKMSKeyId='my-kms-key-id'
)
上述示例代码中,我们使用了botocore.client.Config
来明确指定了使用AWS Signature Version 4进行请求。并在put_object
方法中指定了使用AWS KMS管理的密钥进行服务器端加密。