Попытка перечислить все корзины S3 с соответствующими политиками жизненного цикла в файле CSV - PullRequest
0 голосов
/ 29 января 2020

Попытка перечислить все корзины S3 с соответствующими политиками жизненного цикла в файле CSV.

Можно перечислить S3, как и ожидалось. Но не в состоянии перечислить соответствующие политики жизненного цикла.

Если в корзине есть политика жизненного цикла S3, в ней должна быть указана политика. Если у него нет политики, он должен сказать «Нет политики» в CSV.

Ожидается что-то подобное в csv:

Bucket 1    PolicyDetail
Bucket 2    NoPolicy
Bucket 3    PolicyDetail
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=b[1],aws_secret_access_key=b[2],aws_session_token=b[3])


                s3 = boto3.resource('s3')

                for bucket in s3.buckets.all():
                    writer.writerow([
                        Account_Name,
                        region,
                        bucket.name,
                        ds_client.get_bucket_lifecycle(Bucket='k')
                        #s3.GetLifecycleConfiguration()

main()

*** Код Обновлен согласно ответам, приведенным ниже ****

Пожалуйста, помогите на этом. Пытался достать его для одного ведра .. Но не для списка ..

1 Ответ

0 голосов
/ 29 января 2020

Вы можете получить политику сегмента следующим образом:

ds_client.get_bucket_policy(Bucket=bucket.name)

Для жизненного цикла попробуйте:

ds_client.get_bucket_lifecycle(Bucket=bucket.name)

Приведенное выше вернет словарь данных, если политика найдена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...