我需要为每个存储桶的属性选项卡上的设置记录数百个S3存储桶。这是为了验证没有一个是公开的,没有一个是未加密的。稍后,我还必须提供每个存储桶的ACL。
以下是我目前所得到的信息
from boto3.session import Session
import config
import pandas as pd
ACCESS_KEY=config.awsAccessKey
SECRET_KEY=config.awsSecretKey
session = Session(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
s3 = session.resource('s3')
counter = 0
csv_list = []
path = '//ant.amazon.com/dept/DCGSI/Extracts/s3_buckets_list.csv'
for bucket in s3.buckets.all():
for obj in bucket.objects.all():
if counter == 10:
break
bucketsTwoDeep = bucket.name + obj.key
counter += 1这给了我存储桶和第一级“文件夹”对象。我似乎找不到获取存储桶上的属性的方法。有什么办法吗?一旦我可以获得数据,我将不得不将其放入CSV或其他什么中,所以希望我能获得的任何东西都是可数据帧的。
发布于 2018-11-09 15:40:43
s3client中有一整堆get_bucket方法,可能就是您要找的。get_bucket_encryption()和get_bucket_acl()突然出现在脑海中。
例如:
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> from pprint import pprint
>>> s3client = boto3.client('s3')
>>> response = s3client.get_bucket_acl(Bucket = 'bucketname')
>>> pprint (response['Grants'])
[{'Grantee': {'DisplayName': 'username',
'ID': '3c9b78c1dbb3599d60dab12c5d9c9d7eef13ca95e2505d6e022c98345c70e5fc',
'Type': 'CanonicalUser'},
'Permission': 'FULL_CONTROL'}]https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/s3.html#client上的s3客户端命令的完整列表
https://stackoverflow.com/questions/53213911
复制相似问题