在AWS S3中解密对象而无需将其下载到本地系统

时间:2019-04-26 23:54:24

标签: python amazon-web-services encryption amazon-s3 aws-kms

我在s3存储桶中有一个加密文件。我想以编程方式对其进行解密,而无需将其下载到本地计算机上。是否可以解密加密的文件而不将其下载到我的本地计算机上?

我用来加密文件的内容: boto3库,用于加密的KMS密钥 aws sdk,python脚本

我绝对可以下载此文件,然后在本地计算机中将其解密,如下所示:

with aws_encryption_sdk.stream(
    mode='d',
    source=src_file,
    key_provider=kms_key
    ) as decryptor:
        for block in decryptor:
            tgt_file.write(block)

但是,如果我将文件下载到本地系统,则可以这样做。我不想下载文件。我想在s3存储桶中对其解密,并使下一个进程能够对该解密文件进行处理。

任何指针将不胜感激!

1 个答案:

答案 0 :(得分:1)

否,这不可能直接实现。但是,您可以创建一个AWS Lambda,以便在文件上传时可以运行Lambda进行解密。有关更多详细信息,请参见Using AWS Lambda with Amazon S3

在伪代码中,您将执行以下操作:

def lambda_handler(event, context): 
    read file from key in the event from S3
    decrypt file as your code shows
    save decrypted file back to S3 likely in a different bucket or directory path
    notify next process that the decrypted file is available.