From 81edafdf09a79b9004ac02b9b5e180f51a11895c Mon Sep 17 00:00:00 2001 From: Daniel Barranquero <74871504+danibarranqueroo@users.noreply.github.com> Date: Thu, 27 Feb 2025 13:20:56 +0100 Subject: [PATCH] fix(azure): handle account not supporting Blob (#7060) --- .../azure/services/storage/storage_service.py | 54 ++++++++++++------- 1 file changed, 35 insertions(+), 19 deletions(-) diff --git a/prowler/providers/azure/services/storage/storage_service.py b/prowler/providers/azure/services/storage/storage_service.py index cf30241c75..b0aac96ec0 100644 --- a/prowler/providers/azure/services/storage/storage_service.py +++ b/prowler/providers/azure/services/storage/storage_service.py @@ -81,26 +81,42 @@ class Storage(AzureService): for subscription, accounts in self.storage_accounts.items(): client = self.clients[subscription] for account in accounts: - properties = client.blob_services.get_service_properties( - account.resouce_group_name, account.name - ) - container_delete_retention_policy = getattr( - properties, "container_delete_retention_policy", None - ) - account.blob_properties = BlobProperties( - id=properties.id, - name=properties.name, - type=properties.type, - default_service_version=properties.default_service_version, - container_delete_retention_policy=DeleteRetentionPolicy( - enabled=getattr( - container_delete_retention_policy, - "enabled", - False, + try: + properties = client.blob_services.get_service_properties( + account.resouce_group_name, account.name + ) + container_delete_retention_policy = getattr( + properties, "container_delete_retention_policy", None + ) + account.blob_properties = BlobProperties( + id=properties.id, + name=properties.name, + type=properties.type, + default_service_version=properties.default_service_version, + container_delete_retention_policy=DeleteRetentionPolicy( + enabled=getattr( + container_delete_retention_policy, + "enabled", + False, + ), + days=getattr( + container_delete_retention_policy, "days", 0 + ), ), - days=getattr(container_delete_retention_policy, "days", 0), - ), - ) + ) + except Exception as error: + if ( + "Blob is not supported for the account." + in str(error).strip() + ): + logger.warning( + f"Subscription name: {subscription} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + continue + logger.error( + f"Subscription name: {subscription} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" + ) + except Exception as error: logger.error( f"Subscription name: {subscription} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"