2015-10-05 2 views
2

Я пишу скрипты python, чтобы узнать, зашифрован ли объект S3. Я попытался использовать следующий код, но key.encrypted всегда возвращает None, хотя я вижу, что объект на S3 зашифрован.Как проверить, зашифрованы ли объекты S3 с помощью boto?

keys = bucket.list() 
for k in keys: 
    print k.name, k.size, k.last_modified, k.encrypted , "\n" 

k.encrypted всегда возвращает None.

+0

Я подтверждаю эти результаты. Странный! Интересно, исправлено ли это у boto3? –

+1

Повышенная проблема с 'boto': https://github.com/boto/boto/issues/3361 –

ответ

3

Для чего вы можете это сделать, используя boto3 (который может использоваться бок о бок с boto).

s3 = boto3.resource('s3') 
bucket = s3.Bucket('my-bucket-name') 
for obj in bucket.objects.all(): 
    key = s3.Object(bucket.name, obj.key) 
    print key.server_side_encryption 

Смотрите boto3docs для получения списка доступных ключевых атрибутов.

0

Вы также можете проверить состояние шифрования для определенных объектов, используя вызов head_object. Вот пример в Python/Бото:

#!/usr/bin/env python 
import boto3 

s3_client = boto3.client('s3') 
head = s3_client.head_object(
    Bucket="<S3 bucket name>", 
    Key="<S3 object key>" 
) 
if 'ServerSideEncryption' in head: 
    print head['ServerSideEncryption'] 

См: http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.head_object

Смежные вопросы