AWS S3 服务器端加密可以帮助您保护您的对象存储数据。当您开启该功能时,S3 将会自动为您的对象使用 AES-256 加密算法进行加密,同时也会自动管理密钥。这样即使您的存储数据意外泄露,也无法被未授权的用户读取。
以下是使用 AWS SDK for Python(Boto3) 在 S3 上实现服务器端加密的代码示例:
import boto3
s3 = boto3.client('s3')
bucket_name = 'my-bucket-name'
key = 'my-object-key'
body = 'Hello, World!'
# 开启 S3 服务器端加密
s3.put_bucket_encryption(
Bucket=bucket_name,
ServerSideEncryptionConfiguration={
'Rules': [
{
'ApplyServerSideEncryptionByDefault': {
'SSEAlgorithm': 'AES256'
}
}
]
}
)
# 上传具有服务器端加密的对象
s3.put_object(
Bucket=bucket_name,
Key=key,
Body=body,
ServerSideEncryption='AES256'
)
以上示例中,我们通过调用 put_bucket_encryption
API 开启了 S3 服务器端加密。然后,通过调用 put_object
API 上传一个带有服务器端加密的对象。在 put_object
API 请求中,通过将 ServerSideEncryption
参数设置为 'AES256'
,确保该对象被服务器端加密。
注意:如果您希望使用自己的 KMS 密钥对数据进行加密,请参阅 AWS 文档以了解如何配置 KMS 加密。