尝试在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()
***代码已根据以下给出的答案进行了更新****
请对此提供帮助。 试图将其存储在单个存储桶中。.但不在列表中。
答案 0 :(得分:0)
您可以像这样检索存储桶策略:
C:\WINDOWS\system32>cmd /c mklink /d y:your/symlink z:your/destination
对于生命周期,请尝试:
ds_client.get_bucket_policy(Bucket=bucket.name)
如果找到策略,以上内容将返回数据字典。