[英]Bucket names not being appended to a list
我正在尝试将 BlockPublicAcls 和 BlockPublicPolicy 设置为 False 的存储桶的所有存储桶名称附加到public_buckets<\/strong>列表。 为此,我使用了一个计数器,这意味着存储桶在等于 2 时是公共的。
filtered_buckets = list(filter(lambda item: not list_in_list(exceptions, item['Name']), buckets))
public_buckets = []
def check_bucket_access_block():
for bucket in filtered_buckets:
try:
response = s3client.get_public_access_block(Bucket=bucket['Name'])
for key, value in response['PublicAccessBlockConfiguration'].items():
logger.info('Bucket: {}, {}: {}'.format(bucket['Name'], key, value))
count = 0
if key == response['PublicAccessBlockConfiguration']['BlockPublicAcls'] and value == False:
count += 1
if key == response['PublicAccessBlockConfiguration']['BlockPublicPolicy'] and value == False:
count += 1
if count == 2 and bucket['Name'] not in public_buckets:
public_buckets.append(bucket['Name'])
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == 'NoSuchPublicAccessBlockConfiguration':
print("Bucket: {} has no Public Access Block Configuration".format(bucket['Name']))
else:
print("unexpected error: %s" % (e.response))
您在这一行中的逻辑没有达到您的预期:
if key == response['PublicAccessBlockConfiguration']['BlockPublicAcls'] and value == False:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.