我在寫一個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始終返回無。
我在寫一個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始終返回無。
對於它的價值,你可以使用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
可用的關鍵屬性的列表,請參閱boto3
docs。
您還可以使用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
我證實這些結果。奇怪!我想知道'boto3'是否有這個固定的? –
針對'boto'引發的問題:https://github.com/boto/boto/issues/3361 –