当我们将数据从加密的 AWS S3 存储桶发送到加密的 Google Cloud Storage 存储桶时,该数据是否在传输过程中加密?

When we send data from an encrypted AWS S3 bucket to an encrypted Google Cloud Storage bucket, is that data encrypted in transit?

我正在 google 云函数中使用 gsutil 和 boto3 将文件从我的 AWS S3 存储桶复制到 GCS 存储桶。请参阅下面的代码。在我的云函数中,我传递了我的 AWS ACCESS_KEY 和 SECRET_KEY.

AWS S3 存储桶中的数据使用默认的 Amazon S3 主密钥 (SSE-S3) 加密,GCS 存储桶中的文件也使用默认的 'Google-managed key' 选项加密。

所以,我不担心存储中的数据加密,因为它已经处理好了,但我不确定数据在传输过程中是否加密。有谁知道,在这种特定情况下,如果数据在传输过程中已经加密? 我是否需要在写入 S3 之前使用第三方工具(例如“加密”)加密文件以手动加密我的数据,然后在写入之前使用此自定义生成的密钥解密文件GCS 桶?

import boto3
from boto3.session import Session 
from botocore.client import Config 
from botocore.handlers import set_list_objects_encoding_type_url 
import os
from io import BytesIO
from google.cloud import storage

'''
    copy all new files from AWS S3 to GCS
    Also delete files after copying
'''
def main(request):

    ACCESS_KEY = os.environ['ACCESS_KEY']
    SECRET_KEY = os.environ['SECRET_KEY']
    S3_BUCKET_NAME = os.environ['S3_BUCKET']
    GCS_BUCKET_NAME = os.environ['GCS_BUCKET']
    session = Session(aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)

.....
.....
for s3_file in original_s3_file_list:
        file_name = s3_file.key
        s3_obj = s3.Object(S3_BUCKET_NAME,file_name)

        #copy S3 file to GCS
        data=s3_obj.get()['Body'].read()
        gcs_blob = gcs_bucket.blob(file_name)
        gcs_blob.upload_from_string(data)

您的数据已加密传输,因为传输使用 HTTPS(AWS <-> 客户端 <-> GCP)。

boto3 客户端的默认传输是 https。这可以使用 use_ssl 参数 link 进行配置。默认值为 True.

Google 云存储的默认传输也是 https。要将其更改为使用 http,需要修改 API_BASE_URL link.