def main():
with open('S3.csv', 'w') as csvfile:
writer = csv.writer(csvfile)
writer.writerow([
'Account Name',
'Region',
'Bucket Name',
'Policy'
])
with open('role.json') as ec2_file:
ec2_data = json.load(ec2_file)
region_list = ['eu-west-1']
for region in region_list:
for index in range(len(ec2_data['Items'])):
Account_Number = ec2_data['Items'][index]['Aws_Account_Number']
Account_Name = ec2_data['Items'][index]['Acc_Name']
ARN = ec2_data['Items'][index]['ARN']
b = get_assume_arn_to_keys(Account_Number,Account_Name,ARN)
ds_client = boto3.client('s3',region_name=region,aws_access_key_id=``,aws_secret_access_key=``,aws_session_token=``)
s3 = boto3.resource('s3')
for bucket in s3.buckets.all():
writer.writerow([
Account_Name,
region,
bucket.name,
ds_client.get_bucket_lifecycle(Bucket=bucket.name)
main()
Я хотел бы перечислить корзины s3 и их политики жизненного цикла в .csv. Я могу перечислить все ведра.
Но, список политик жизненного цикла дает мне проблему. Я не могу перечислить все ведра. Вероятно, это просто дает мне политику первого ведра.
Я могу получить политики жизненного цикла, если в строке указать имя корзины. Политики одиночного сегмента 'k' перечислены во всех сегментах.
ds_client.get_bucket_lifecycle(Bucket='k')
Но, если я хотел получить для всех сегментов, я попробовал это
ds_client.get_bucket_lifecycle(Bucket=bucket.name)
Редактировать ::: Новая попытка перечислить ведение журнала, регион и управление версиями.
import boto3
s3_client = boto3.client('s3')
bucket_list = ds_client.list_buckets()
for bucket in bucket_list['Buckets']:
try:
lifecycle = ds_client.get_bucket_lifecycle(Bucket=bucket['Name'])
rules = lifecycle['Rules']
except:
rules = 'No Policy'
versioning = ds_client.get_bucket_versioning(Bucket=bucket['Name'])
logging = ds_client.get_bucket_logging(Bucket=bucket['Name'])
print(bucket['Name'], rules, versioning, logging)
Но не мог получить это. Добрый совет. Спасибо