У меня есть зашифрованный файл в ведре 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 и разрешить следующему процессу работать с этим расшифрованным файлом.
Любые указатели будут высоко оценены!
Response: { "errorMessage": "Unable to import module 'lambda_function': No module named 'aws_encryption_sdk'", "errorType": "Runtime.ImportModuleError" }
28.04.2019setup.py
? Я не понимаю, почему это не сработает. 28.04.2019import json import boto3 import aws_encryption_sdk import boto3 import os from shutil import make_archive import time def lambda_handler(event, context): # TODO implement kms_key = aws_encryption_sdk.KMSMasterKeyProvider(key_ids=['arn:aws:kms:us-west-1:XXX:key/XXXXXXXXX']) s3_client = boto3.client('s3') s3 = boto3.resource('s3')
28.04.2019#Below code copies the cipher_specimen1.txt file to s3 bucket navneettempe and renames it cipher_wages.txt copy_source = { 'Bucket': 'navneettempe', 'Key': 'cipher_specimen1.txt' } s3.meta.client.copy(copy_source, 'navneettempe','cipher_wages.txt') ct_file='cipher_wages.txt' pt_file='wages.txt'
28.04.2019#Below code decrypts the cipher_wages.txt using the same KMS key that was used to encrypt the file with aws_encryption_sdk.stream( mode='d', source=ct_file, key_provider=kms_key ) as decryptor: for block in decryptor: pt_file.write(block)
28.04.2019