尝试在csv文件中列出所有S3存储桶及其相应的生命周期策略

时间:2020-01-29 14:32:20

标签: python amazon-web-services amazon-s3

尝试在csv文件中列出所有S3存储桶及其相应的生命周期策略。

能够按预期列出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 :(得分:0)

您可以像这样检索存储桶策略:

C:\WINDOWS\system32>cmd /c mklink /d y:your/symlink z:your/destination

对于生命周期,请尝试:

ds_client.get_bucket_policy(Bucket=bucket.name)

如果找到策略,以上内容将返回数据字典。