From 63cd6c12908629a892c31cf04469feacec9371dd Mon Sep 17 00:00:00 2001 From: Pepe Fagoaga Date: Mon, 18 Mar 2024 10:12:15 +0100 Subject: [PATCH] chore(mutelist): enforce for all providers (#3554) --- prowler/providers/aws/aws_provider.py | 3 +-- prowler/providers/azure/azure_provider.py | 3 +-- prowler/providers/common/mutelist.py | 25 ------------------- prowler/providers/common/provider.py | 18 +++++++++++++ prowler/providers/gcp/gcp_provider.py | 4 +-- .../kubernetes/kubernetes_provider.py | 3 +-- 6 files changed, 22 insertions(+), 34 deletions(-) delete mode 100644 prowler/providers/common/mutelist.py diff --git a/prowler/providers/aws/aws_provider.py b/prowler/providers/aws/aws_provider.py index 510a30f248..14c9260525 100644 --- a/prowler/providers/aws/aws_provider.py +++ b/prowler/providers/aws/aws_provider.py @@ -49,8 +49,7 @@ class AwsProvider(Provider): _audit_config: dict _ignore_unused_services: bool = False _enabled_regions: set = set() - # TODO: enforce the mutelist for the Provider class - _mutelist: dict = {} + _mutelist: dict _output_options: AWSOutputOptions # TODO: this is not optional, enforce for all providers audit_metadata: Audit_Metadata diff --git a/prowler/providers/azure/azure_provider.py b/prowler/providers/azure/azure_provider.py index 8f4a3f62ff..c42a2512ad 100644 --- a/prowler/providers/azure/azure_provider.py +++ b/prowler/providers/azure/azure_provider.py @@ -29,8 +29,7 @@ class AzureProvider(Provider): _region_config: AzureRegionConfig _locations: dict _output_options: AzureOutputOptions - # TODO: enforce the mutelist for the Provider class - # _mutelist: dict = {} + _mutelist: dict # TODO: this is not optional, enforce for all providers audit_metadata: Audit_Metadata diff --git a/prowler/providers/common/mutelist.py b/prowler/providers/common/mutelist.py deleted file mode 100644 index 54e054c21e..0000000000 --- a/prowler/providers/common/mutelist.py +++ /dev/null @@ -1,25 +0,0 @@ -import importlib -import sys - -from prowler.lib.logger import logger - - -def set_provider_mutelist(provider, audit_info, args): - """ - set_provider_mutelist configures the mutelist based on the selected provider. - """ - try: - # Check if the provider arguments has the mutelist_file - if hasattr(args, "mutelist_file"): - # Dynamically get the Provider mutelist handler - provider_mutelist_function = f"set_{provider}_mutelist" - mutelist_file = getattr( - importlib.import_module(__name__), provider_mutelist_function - )(audit_info, args.mutelist_file) - - return mutelist_file - except Exception as error: - logger.critical( - f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" - ) - sys.exit(1) diff --git a/prowler/providers/common/provider.py b/prowler/providers/common/provider.py index 6fbf34b917..e13e4ae9ac 100644 --- a/prowler/providers/common/provider.py +++ b/prowler/providers/common/provider.py @@ -99,3 +99,21 @@ class Provider(ABC): This is a fallback that returns None if the service has not implemented this function. """ + + @property + @abstractmethod + def mutelist(self): + """ + mutelist method returns the provider's mutelist. + + This method needs to be created in each provider. + """ + + @mutelist.setter + @abstractmethod + def mutelist(self, path: str): + """ + mutelist.setter sets the provider's mutelist. + + This method needs to be created in each provider. + """ diff --git a/prowler/providers/gcp/gcp_provider.py b/prowler/providers/gcp/gcp_provider.py index fefde52ccc..f5b5034d1d 100644 --- a/prowler/providers/gcp/gcp_provider.py +++ b/prowler/providers/gcp/gcp_provider.py @@ -26,10 +26,8 @@ class GcpProvider(Provider): _project_ids: list _identity: GCPIdentityInfo _audit_config: dict - _output_options: GCPOutputOptions - # TODO: enforce the mutelist for the Provider class - # _mutelist: dict = {} + _mutelist: dict # TODO: this is not optional, enforce for all providers audit_metadata: Audit_Metadata diff --git a/prowler/providers/kubernetes/kubernetes_provider.py b/prowler/providers/kubernetes/kubernetes_provider.py index c00ccaa502..2c972483c8 100644 --- a/prowler/providers/kubernetes/kubernetes_provider.py +++ b/prowler/providers/kubernetes/kubernetes_provider.py @@ -24,8 +24,7 @@ class KubernetesProvider(Provider): _audit_config: dict _identity: KubernetesIdentityInfo _output_options: KubernetesOutputOptions - # TODO: enforce the mutelist for the Provider class - # _mutelist: dict = {} + _mutelist: dict # TODO: this is not optional, enforce for all providers audit_metadata: Audit_Metadata