#python-3.x #encryption #amazon-s3 #boto3 #aws-kms
#python-3.x #шифрование #amazon-s3 #boto3 #amazon-kms
Вопрос:
Недавно мы включили AWS KMS для всех наших пакетов Amazon S3, который по умолчанию применяет шифрование на стороне сервера ко всем файлам, которые мы загружаем в наши собственные пакеты S3 или в пакеты S3, принадлежащие кому-то другому.
Есть ли способ намеренно «игнорировать» шифрование KMS по умолчанию для загрузки незашифрованных файлов в корзину S3, принадлежащую сторонней организации? Сторонняя команда не может открыть ни один из файлов, которые мы им отправляем. Я понимаю, что одним из решений было бы поделиться ключом KMS с третьей стороной, но, из-за характера отношений, будет лучше, если мы доставим только незашифрованные файлы вместо совместного использования ключа.
Вот код Python, который я использовал для доставки файлов. Как я могу изменить параметр ExtraArgs, чтобы намеренно игнорировать шифрование KMS по умолчанию?
from boto3 import client
from boto3.s3.transfer import TransferConfig
client = client('s3', ...)
config = TransferConfig(multipart_threshold=1024 * 25, multipart_chunksize=1024 * 25,
max_concurrency=10, use_threads=True)
client.upload_file(filename='test.csv', bucket='my-bucket', key='test.csv',
Config=config, ExtraArgs={'ACL': 'bucket-owner-full-control'})
Комментарии:
1. Это не складывается… Я не могу найти параметр, который приведет к загрузке на другой счет ведро для КМС-шифрование данных по умолчанию… и если бы проблема была шифрования связанные с ним, «не удается открыть ни один из файлов» не будет проблемой. Когда S3 управляет шифрованием, у вас нет возможности загрузить зашифрованную версию файла. Если у вас нет разрешения на доступ к ключу дешифрования, доступ к самому файлу будет запрещен.
2. Какое точное сообщение об ошибке получает «сторонняя команда»?
3. Команда сказала мне, что они не смогли «прочитать» файл. Это может привести к невозможности загрузки / доступа к файлу. Они связались со службой поддержки своего предприятия AWS и выяснили, что файл был зашифрован ключом KMS, который, как я подтвердил, существовал в нашей учетной записи AWS.