使用 boto3 实现 AWS S3 SSE-KMS / SSE-C 加密上传

#!usr/bin/env python
# -*- coding: utf-8 -*- 
"""
@file: aws_s3_encrypt.py
"""
import boto3
import base64
import hashlib
import ssl

aws_access_key_id = "test"
aws_secret_access_key = "test"
endpoint_url = "https://192.168.1.1:1234"
isUse = True
verify = False

try:
    ssl._create_default_https_context = ssl._create_unverified_context
except AttributeError:
    pass
except Exception as exc:
    print(exc)

s3 = boto3.client(
    service_name='s3',
    aws_access_key_id=aws_access_key_id,
    aws_secret_access_key=aws_secret_access_key,
    endpoint_url=endpoint_url,
    verify=verify,
    use_ssl=True
)

### SSE-KMS ##
s3.put_object(
    Bucket="sse-kms",
    Body='test.txt',
    Key='test.txt',
    ServerSideEncryption='aws:kms',
    SSEKMSKeyId='123456789-1234-1234-1234-123456789'
)


### SSE-C ##
key='EE0UwqYyMgWfEIjSHhmVHBoJgobVUJbR'
base64ed_key = base64.b64encode(key)
hl = hashlib.md5()
hl.update(key)
md5_of_key = hl.digest()

s3.put_object(
        Bucket="sse-c",
        Body='test.txt',
        Key='test.txt',
        ServerSideEncryption='AES256',
        SSECustomerAlgorithm='AES256',
        SSECustomerKey=base64ed_key,
        SSECustomerKeyMD5=base64.b64encode(md5_of_key),
    )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值