簡體   English   中英

帶有 SSE 加密的 boto3 generate_presigned_url

[英]boto3 generate_presigned_url with SSE encryption

我正在尋找使用 boto3 和 sse 加密生成預簽名 url 的示例。

到目前為止,這是我的代碼

s3_client = boto3.client('s3',
                                  region_name='ap-south-1',
                                  endpoint_url='http://s3.ap-south-1.amazonaws.com',
                                  config=boto3.session.Config(signature_version='s3v4'),
                                  )
        try:
            response = s3_client.generate_presigned_url('put_object',
                                                        Params={'Bucket': bucket_name,
                                                                'Key': object_name},
                                                        ExpiresIn=expiration)
        except ClientError as e:
            logging.error("In client error exception code")
            logging.error(e)
            return None

我正在努力尋找使用 SSE 加密的正確參數。 我可以使用 PUT 調用來上傳文件。 我還想知道從客戶端使用的標頭以遵守 sse 加密。

import boto3

access_key = "..."
secret_key = "..."
bucket = "..."
s3 = boto3.client('s3',
              aws_access_key_id=access_key,
              aws_secret_access_key=secret_key)
return(s3.generate_presigned_url(
    ClientMethod='get_object',
    Params={
        'Bucket': bucket,
        'Key': filename,
        'SSECustomerAlgorithm': 'AES256',
    }
))

還要添加 header:-

'x-amz-server-side-encryption': 'AES256' 

在前端代碼中調用預簽名 url

您可以將條件添加到必須滿足的預簽名 URL 才能使上傳有效。 這可能包括x-amz-server-side-encryption

請參閱: 創建 POST 策略 - Amazon S3

或者,您可以添加一個存儲桶策略來拒絕任何加密的請求。

請參閱: 如何防止將未加密的對象上傳到 Amazon S3 | AWS 安全博客

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM