From 7361c10cb95097d68fc039ae24ec21de964f8b6e Mon Sep 17 00:00:00 2001 From: Sergio Garcia <38561120+sergargar@users.noreply.github.com> Date: Fri, 22 Dec 2023 10:57:55 +0100 Subject: [PATCH] fix(s3): handle NoSuchBucketPolicy error (#3217) --- .../providers/aws/services/s3/s3_service.py | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/prowler/providers/aws/services/s3/s3_service.py b/prowler/providers/aws/services/s3/s3_service.py index 1bcb9275..aa05cc62 100644 --- a/prowler/providers/aws/services/s3/s3_service.py +++ b/prowler/providers/aws/services/s3/s3_service.py @@ -270,7 +270,9 @@ class S3(AWSService): regional_client.get_bucket_policy(Bucket=bucket.name)["Policy"] ) except ClientError as error: - if error.response["Error"]["Code"] == "NoSuchBucket": + if error.response["Error"]["Code"] == "NoSuchBucketPolicy": + bucket.policy = {} + elif error.response["Error"]["Code"] == "NoSuchBucket": logger.warning( f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) @@ -279,17 +281,14 @@ class S3(AWSService): f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) except Exception as error: - if "NoSuchBucketPolicy" in str(error): - bucket.policy = {} + if regional_client: + logger.error( + f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) else: - if regional_client: - logger.error( - f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) - else: - logger.error( - f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) + logger.error( + f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) def __get_bucket_ownership_controls__(self, bucket): logger.info("S3 - Get buckets ownership controls...")