使用 KMS 加密文件并推送到 S3
Encrypt a file using KMS and push to S3
我有一个用 Python 编写的 AWS lambda 函数,它需要使用字符串变量中的数据创建一个文件,KMS 加密文件并将文件推送到 S3。
s3_resource = boto3.resource("s3")
s3_resource.Bucket(bucket_name).put_object(Key=s3_path, Body=data)
我正在使用上面的方法在 S3 中创建文件,但是有没有办法在推送到 S3 时使用我必须加密文件的 KMS 密钥?
要在添加对象时使用 KMS 加密,请使用 server side encryption 选项:
ServerSideEncryption ="aws:kms"
- 启用 KMS 加密
SSEKMSKeyId=keyId
- 指定要用于加密的 KMS 密钥。如果您不指定此项,AWS 将仅使用您的默认帐户密钥。
例如:
s3_resource.Bucket(bucket_name).put_object(
Key=s3_path,
Body=data,
ServerSideEncryption ="aws:kms"
)
您可能还需要 enable v4 signing 在您的 boto 配置文件中。
我有一个用 Python 编写的 AWS lambda 函数,它需要使用字符串变量中的数据创建一个文件,KMS 加密文件并将文件推送到 S3。
s3_resource = boto3.resource("s3")
s3_resource.Bucket(bucket_name).put_object(Key=s3_path, Body=data)
我正在使用上面的方法在 S3 中创建文件,但是有没有办法在推送到 S3 时使用我必须加密文件的 KMS 密钥?
要在添加对象时使用 KMS 加密,请使用 server side encryption 选项:
ServerSideEncryption ="aws:kms"
- 启用 KMS 加密SSEKMSKeyId=keyId
- 指定要用于加密的 KMS 密钥。如果您不指定此项,AWS 将仅使用您的默认帐户密钥。
例如:
s3_resource.Bucket(bucket_name).put_object(
Key=s3_path,
Body=data,
ServerSideEncryption ="aws:kms"
)
您可能还需要 enable v4 signing 在您的 boto 配置文件中。