From 32253ca4f76149cde136fdcab9a1ee1598667189 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pedro=20Mart=C3=ADn?= Date: Thu, 16 Jan 2025 00:09:35 +0100 Subject: [PATCH] feat(gcp): add resource metadata to report (#6500) Co-authored-by: MrCloudSec --- prowler/lib/check/models.py | 29 ++++- prowler/providers/gcp/lib/service/service.py | 1 + .../apikeys_api_restrictions_configured.py | 10 +- .../apikeys_key_exists/apikeys_key_exists.py | 10 +- .../apikeys_key_rotated_in_90_days.py | 10 +- .../artifacts_container_analysis_enabled.py | 13 ++- .../bigquery_dataset_cmk_encryption.py | 8 +- .../bigquery_dataset_public_access.py | 8 +- .../bigquery_table_cmk_encryption.py | 6 +- .../cloudresourcemanager_service.py | 4 +- .../cloudsql_instance_automated_backups.py | 8 +- ...oudsql_instance_mysql_local_infile_flag.py | 8 +- ..._instance_mysql_skip_show_database_flag.py | 8 +- ...l_instance_postgres_enable_pgaudit_flag.py | 8 +- ..._instance_postgres_log_connections_flag.py | 8 +- ...stance_postgres_log_disconnections_flag.py | 8 +- ...tance_postgres_log_error_verbosity_flag.py | 8 +- ...ostgres_log_min_duration_statement_flag.py | 8 +- ...e_postgres_log_min_error_statement_flag.py | 8 +- ...instance_postgres_log_min_messages_flag.py | 8 +- ...ql_instance_postgres_log_statement_flag.py | 8 +- ...cloudsql_instance_private_ip_assignment.py | 8 +- .../cloudsql_instance_public_access.py | 8 +- .../cloudsql_instance_public_ip.py | 8 +- ..._contained_database_authentication_flag.py | 8 +- ...server_cross_db_ownership_chaining_flag.py | 8 +- ...sqlserver_external_scripts_enabled_flag.py | 8 +- ...l_instance_sqlserver_remote_access_flag.py | 8 +- .../cloudsql_instance_sqlserver_trace_flag.py | 8 +- ...nstance_sqlserver_user_connections_flag.py | 8 +- ...ql_instance_sqlserver_user_options_flag.py | 8 +- .../cloudsql_instance_ssl_connections.py | 8 +- ...torage_bucket_log_retention_policy_lock.py | 8 +- .../cloudstorage_bucket_public_access.py | 8 +- ...rage_bucket_uniform_bucket_level_access.py | 8 +- ...ll_rdp_access_from_the_internet_allowed.py | 10 +- ...ll_ssh_access_from_the_internet_allowed.py | 10 +- ...ce_block_project_wide_ssh_keys_disabled.py | 8 +- ...instance_confidential_computing_enabled.py | 8 +- ...instance_default_service_account_in_use.py | 8 +- ...ice_account_in_use_with_full_api_access.py | 8 +- ...e_instance_encryption_with_csek_enabled.py | 8 +- ...mpute_instance_ip_forwarding_is_enabled.py | 8 +- .../compute_instance_public_ip.py | 8 +- .../compute_instance_serial_ports_in_use.py | 8 +- .../compute_instance_shielded_vm_enabled.py | 8 +- .../compute_loadbalancer_logging_enabled.py | 10 +- .../compute_network_default_in_use.py | 19 +-- .../compute_network_dns_logging_enabled.py | 10 +- .../compute_network_not_legacy.py | 10 +- .../compute_project_os_login_enabled.py | 10 +- .../compute_public_address_shodan.py | 7 +- .../gcp/services/compute/compute_service.py | 4 +- .../compute_subnet_flow_logs_enabled.py | 8 +- .../dataproc_encrypted_with_cmks_disabled.py | 10 +- .../dns_dnssec_disabled.py | 10 +- ...ns_rsasha1_in_use_to_key_sign_in_dnssec.py | 10 +- ...s_rsasha1_in_use_to_zone_sign_in_dnssec.py | 10 +- .../gcr_container_scanning_enabled.py | 13 ++- .../gke_cluster_no_default_service_account.py | 8 +- .../iam_account_access_approval_enabled.py | 10 +- .../iam_audit_logs_enabled.py | 10 +- .../iam_cloud_asset_inventory_enabled.py | 13 ++- .../iam_no_service_roles_at_project_level.py | 24 ++-- ...anization_essential_contacts_configured.py | 11 +- ...m_role_kms_enforce_separation_of_duties.py | 10 +- ...am_role_sa_enforce_separation_of_duties.py | 10 +- .../iam_sa_no_administrative_privileges.py | 11 +- .../iam_sa_no_user_managed_keys.py | 11 +- .../iam_sa_user_managed_key_rotate_90_days.py | 12 +- .../kms_key_not_publicly_accessible.py | 6 +- .../kms_key_rotation_enabled.py | 6 +- ...for_audit_configuration_changes_enabled.py | 21 ++-- ...t_for_bucket_permission_changes_enabled.py | 21 ++-- ...d_alert_for_custom_role_changes_enabled.py | 21 ++-- ...t_for_project_ownership_changes_enabled.py | 21 ++-- ..._instance_configuration_changes_enabled.py | 21 ++-- ...t_for_vpc_firewall_rule_changes_enabled.py | 21 ++-- ...d_alert_for_vpc_network_changes_enabled.py | 21 ++-- ...t_for_vpc_network_route_changes_enabled.py | 21 ++-- .../logging_sink_created.py | 21 ++-- tests/providers/gcp/gcp_fixtures.py | 11 +- ...pikeys_api_restrictions_configured_test.py | 8 +- .../apikeys_key_exists_test.py | 23 +++- .../apikeys_key_rotated_in_90_days_test.py | 6 +- ...tifacts_container_analysis_enabled_test.py | 53 ++++++--- .../bigquery_dataset_cmk_encryption_test.py | 6 +- .../bigquery_dataset_public_access_test.py | 6 +- .../bigquery_table_cmk_encryption_test.py | 6 +- .../cloudresourcemanager_service_test.py | 8 +- ...loudsql_instance_automated_backups_test.py | 6 +- ...l_instance_mysql_local_infile_flag_test.py | 10 +- ...ance_mysql_skip_show_database_flag_test.py | 10 +- ...tance_postgres_enable_pgaudit_flag_test.py | 10 +- ...ance_postgres_log_connections_flag_test.py | 10 +- ...e_postgres_log_disconnections_flag_test.py | 10 +- ..._postgres_log_error_verbosity_flag_test.py | 10 +- ...es_log_min_duration_statement_flag_test.py | 10 +- ...tgres_log_min_error_statement_flag_test.py | 10 +- ...nce_postgres_log_min_messages_flag_test.py | 10 +- ...stance_postgres_log_statement_flag_test.py | 10 +- .../cloudsql_instance_public_access_test.py | 6 +- .../cloudsql_instance_public_ip_test.py | 6 +- ...ained_database_authentication_flag_test.py | 10 +- ...r_cross_db_ownership_chaining_flag_test.py | 10 +- ...rver_external_scripts_enabled_flag_test.py | 10 +- ...tance_sqlserver_remote_access_flag_test.py | 10 +- ...dsql_instance_sqlserver_trace_flag_test.py | 10 +- ...ce_sqlserver_user_connections_flag_test.py | 10 +- ...stance_sqlserver_user_options_flag_test.py | 10 +- .../cloudsql_instance_ssl_connections_test.py | 8 +- ...e_bucket_log_retention_policy_lock_test.py | 110 +++++++++++------- .../cloudstorage_bucket_public_access_test.py | 45 ++++--- ...bucket_uniform_bucket_level_access_test.py | 45 ++++--- ...p_access_from_the_internet_allowed_test.py | 24 ++-- ...h_access_from_the_internet_allowed_test.py | 24 ++-- ...ock_project_wide_ssh_keys_disabled_test.py | 8 +- ...nce_confidential_computing_enabled_test.py | 6 +- ...nce_default_service_account_in_use_test.py | 8 +- ...ccount_in_use_with_full_api_access_test.py | 8 +- ...tance_encryption_with_csek_enabled_test.py | 8 +- ..._instance_ip_forwarding_is_enabled_test.py | 8 +- .../compute_instance_public_ip_test.py | 6 +- ...mpute_loadbalancer_logging_enabled_test.py | 6 +- .../compute_network_default_in_use_test.py | 105 ++++++++++++----- ...ompute_network_dns_logging_enabled_test.py | 10 +- .../compute_network_not_legacy_test.py | 6 +- .../compute_project_os_login_enabled_test.py | 6 +- .../compute_public_address_shodan_test.py | 4 +- .../compute_serial_ports_in_use_test.py | 12 +- .../services/compute/compute_service_test.py | 6 +- .../compute_shielded_vm_enabled_test.py | 8 +- .../compute_subnet_flow_logs_enabled_test.py | 6 +- ...aproc_encrypted_with_cmks_disabled_test.py | 6 +- .../dns_dnssec_disabled_test.py | 6 +- ...asha1_in_use_to_key_sign_in_dnssec_test.py | 6 +- ...sha1_in_use_to_zone_sign_in_dnssec_test.py | 6 +- .../gcr_container_scanning_enabled_test.py | 53 ++++++--- ...cluster_no_default_service_account_test.py | 10 +- ...am_account_access_approval_enabled_test.py | 62 +++++++--- .../iam_audit_logs_enabled_test.py | 6 +- .../iam_cloud_asset_inventory_enabled_test.py | 53 ++++++--- ..._no_service_roles_at_project_level_test.py | 27 ++++- ...tion_essential_contacts_configured_test.py | 6 +- ...e_kms_enforce_separation_of_duties_test.py | 34 +++++- ...le_sa_enforce_separation_of_duties_test.py | 34 +++++- ...am_sa_no_administrative_privileges_test.py | 34 +++--- .../iam_sa_no_user_managed_keys_test.py | 10 +- ...sa_user_managed_key_rotate_90_days_test.py | 8 +- ...ms_key_not_publicly_accessible_gcp_test.py | 8 +- .../kms_key_rotation_enabled_test.py | 22 ++-- ...udit_configuration_changes_enabled_test.py | 12 +- ..._bucket_permission_changes_enabled_test.py | 12 +- ...rt_for_custom_role_changes_enabled_test.py | 12 +- ..._project_ownership_changes_enabled_test.py | 12 +- ...ance_configuration_changes_enabled_test.py | 12 +- ..._vpc_firewall_rule_changes_enabled_test.py | 12 +- ...rt_for_vpc_network_changes_enabled_test.py | 12 +- ..._vpc_network_route_changes_enabled_test.py | 12 +- .../logging_sink_created_test.py | 12 +- 160 files changed, 1249 insertions(+), 895 deletions(-) diff --git a/prowler/lib/check/models.py b/prowler/lib/check/models.py index 0b4792f199..52767e59d1 100644 --- a/prowler/lib/check/models.py +++ b/prowler/lib/check/models.py @@ -513,12 +513,29 @@ class Check_Report_GCP(Check_Report): project_id: str location: str - def __init__(self, metadata): - super().__init__(metadata) - self.resource_name = "" - self.resource_id = "" - self.project_id = "" - self.location = "" + def __init__( + self, + metadata, + resource_metadata, + location=None, + resource_name=None, + resource_id=None, + project_id=None, + ): + super().__init__(metadata, resource_metadata) + self.resource_id = ( + resource_id + or getattr(resource_metadata, "id", None) + or getattr(resource_metadata, "name", None) + or "" + ) + self.resource_name = resource_name or getattr(resource_metadata, "name", "") + self.project_id = project_id or getattr(resource_metadata, "project_id", "") + self.location = ( + location + or getattr(resource_metadata, "location", "") + or getattr(resource_metadata, "region", "") + ) @dataclass diff --git a/prowler/providers/gcp/lib/service/service.py b/prowler/providers/gcp/lib/service/service.py index 9763230153..d163e4781a 100644 --- a/prowler/providers/gcp/lib/service/service.py +++ b/prowler/providers/gcp/lib/service/service.py @@ -30,6 +30,7 @@ class GCPService: ) # Only project ids that have their API enabled will be scanned self.project_ids = self.__is_api_active__(provider.project_ids) + self.projects = provider.projects self.default_project_id = provider.default_project_id self.audit_config = provider.audit_config self.fixer_config = provider.fixer_config diff --git a/prowler/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured.py b/prowler/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured.py index e2f8442992..5ce0b00814 100644 --- a/prowler/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured.py +++ b/prowler/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured.py @@ -6,12 +6,12 @@ class apikeys_api_restrictions_configured(Check): def execute(self) -> Check_Report_GCP: findings = [] for key in apikeys_client.keys: - report = Check_Report_GCP(self.metadata()) - report.project_id = key.project_id - report.resource_id = key.id - report.resource_name = key.name + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=key, + location=apikeys_client.region, + ) report.status = "PASS" - report.location = apikeys_client.region report.status_extended = f"API key {key.name} has restrictions configured." if key.restrictions == {} or any( [ diff --git a/prowler/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists.py b/prowler/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists.py index 2e9069caa6..3f18cf6813 100644 --- a/prowler/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists.py +++ b/prowler/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists.py @@ -6,10 +6,12 @@ class apikeys_key_exists(Check): def execute(self) -> Check_Report_GCP: findings = [] for project in apikeys_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.location = apikeys_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=apikeys_client.projects[project], + project_id=project, + location=apikeys_client.region, + ) report.status = "PASS" report.status_extended = f"Project {project} does not have active API Keys." for key in apikeys_client.keys: diff --git a/prowler/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days.py b/prowler/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days.py index 77a8d8701c..6c97dd2854 100644 --- a/prowler/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days.py +++ b/prowler/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days.py @@ -8,11 +8,11 @@ class apikeys_key_rotated_in_90_days(Check): def execute(self) -> Check_Report_GCP: findings = [] for key in apikeys_client.keys: - report = Check_Report_GCP(self.metadata()) - report.project_id = key.project_id - report.resource_id = key.id - report.resource_name = key.name - report.location = apikeys_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=key, + location=apikeys_client.region, + ) report.status = "PASS" report.status_extended = f"API key {key.name} created in less than 90 days." if ( diff --git a/prowler/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled.py b/prowler/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled.py index 5c601819c9..8ef35e3717 100644 --- a/prowler/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled.py +++ b/prowler/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled.py @@ -8,11 +8,14 @@ class artifacts_container_analysis_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project_id in serviceusage_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project_id - report.resource_id = "containeranalysis.googleapis.com" - report.resource_name = "AR Container Analysis" - report.location = serviceusage_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=serviceusage_client.projects[project_id], + resource_id="containeranalysis.googleapis.com", + resource_name="AR Container Analysis", + project_id=project_id, + location=serviceusage_client.region, + ) report.status = "FAIL" report.status_extended = ( f"AR Container Analysis is not enabled in project {project_id}." diff --git a/prowler/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption.py b/prowler/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption.py index 79e8d36a49..c6a0cb6bae 100644 --- a/prowler/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption.py +++ b/prowler/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption.py @@ -6,11 +6,9 @@ class bigquery_dataset_cmk_encryption(Check): def execute(self) -> Check_Report_GCP: findings = [] for dataset in bigquery_client.datasets: - report = Check_Report_GCP(self.metadata()) - report.project_id = dataset.project_id - report.resource_id = dataset.id - report.resource_name = dataset.name - report.location = dataset.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=dataset + ) report.status = "PASS" report.status_extended = f"Dataset {dataset.name} is encrypted with Customer-Managed Keys (CMKs)." if not dataset.cmk_encryption: diff --git a/prowler/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access.py b/prowler/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access.py index f6b2d6764b..f7f6d2b39b 100644 --- a/prowler/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access.py +++ b/prowler/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access.py @@ -6,11 +6,9 @@ class bigquery_dataset_public_access(Check): def execute(self) -> Check_Report_GCP: findings = [] for dataset in bigquery_client.datasets: - report = Check_Report_GCP(self.metadata()) - report.project_id = dataset.project_id - report.resource_id = dataset.id - report.resource_name = dataset.name - report.location = dataset.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=dataset + ) report.status = "PASS" report.status_extended = ( f"Dataset {dataset.name} is not publicly accessible." diff --git a/prowler/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption.py b/prowler/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption.py index ce11537104..86643e76de 100644 --- a/prowler/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption.py +++ b/prowler/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption.py @@ -6,11 +6,7 @@ class bigquery_table_cmk_encryption(Check): def execute(self) -> Check_Report_GCP: findings = [] for table in bigquery_client.tables: - report = Check_Report_GCP(self.metadata()) - report.project_id = table.project_id - report.resource_id = table.id - report.resource_name = table.name - report.location = table.region + report = Check_Report_GCP(metadata=self.metadata(), resource_metadata=table) report.status = "PASS" report.status_extended = ( f"Table {table.name} is encrypted with Customer-Managed Keys (CMKs)." diff --git a/prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py b/prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py index 472806df04..2ca72dee3e 100644 --- a/prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py +++ b/prowler/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service.py @@ -10,7 +10,7 @@ class CloudResourceManager(GCPService): super().__init__(__class__.__name__, provider) self.bindings = [] - self.projects = [] + self.cloud_resource_manager_projects = [] self.organizations = [] self._get_iam_policy() self._get_organizations() @@ -24,7 +24,7 @@ class CloudResourceManager(GCPService): audit_logging = False if policy.get("auditConfigs"): audit_logging = True - self.projects.append( + self.cloud_resource_manager_projects.append( Project(id=project_id, audit_logging=audit_logging) ) for binding in policy["bindings"]: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups.py index 3fd0c6cd9e..d524e15077 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups.py @@ -6,11 +6,9 @@ class cloudsql_instance_automated_backups(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in cloudsql_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"Database Instance {instance.name} has automated backups configured." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag.py index 1419b9afac..069f844c82 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_mysql_local_infile_flag(Check): findings = [] for instance in cloudsql_client.instances: if "MYSQL" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"MySQL Instance {instance.name} does not have 'local_infile' flag set to 'off'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag.py index baae0329f9..5a641385dc 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_mysql_skip_show_database_flag(Check): findings = [] for instance in cloudsql_client.instances: if "MYSQL" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"MySQL Instance {instance.name} does not have 'skip_show_database' flag set to 'on'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag.py index eb77c8f259..25f5e25095 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_postgres_enable_pgaudit_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"PostgreSQL Instance {instance.name} does not have 'cloudsql.enable_pgaudit' flag set to 'on'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag.py index b601f63a01..e75b0bc278 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_postgres_log_connections_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"PostgreSQL Instance {instance.name} does not have 'log_connections' flag set to 'on'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag.py index 21e3b0ba80..2c2fc43333 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_postgres_log_disconnections_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"PostgreSQL Instance {instance.name} does not have 'log_disconnections' flag set to 'on'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag.py index 1fdbf6fa00..44505557e3 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_postgres_log_error_verbosity_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"PostgreSQL Instance {instance.name} has 'log_error_verbosity' flag set to 'default'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag.py index b72c3cc71f..f1e966d491 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_postgres_log_min_duration_statement_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"PostgreSQL Instance {instance.name} has 'log_min_duration_statement' flag set to '-1'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag.py index b002a0ad3f..b45f003c0a 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag.py @@ -8,11 +8,9 @@ class cloudsql_instance_postgres_log_min_error_statement_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"PostgreSQL Instance {instance.name} has 'log_min_error_statement' flag set minimum to '{desired_log_min_error_statement}'." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag.py index 9c6c501f4d..5f08c45240 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag.py @@ -17,11 +17,9 @@ class cloudsql_instance_postgres_log_min_messages_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"PostgreSQL Instance {instance.name} does not have 'log_min_messages' flag set." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag.py index 37e76fecd9..0aa86ec9e6 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag.py @@ -8,11 +8,9 @@ class cloudsql_instance_postgres_log_statement_flag(Check): findings = [] for instance in cloudsql_client.instances: if "POSTGRES" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"PostgreSQL Instance {instance.name} does not have 'log_statement' flag set to '{desired_log_statement}'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_private_ip_assignment/cloudsql_instance_private_ip_assignment.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_private_ip_assignment/cloudsql_instance_private_ip_assignment.py index 3f64d137b1..3ca4fcc476 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_private_ip_assignment/cloudsql_instance_private_ip_assignment.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_private_ip_assignment/cloudsql_instance_private_ip_assignment.py @@ -6,11 +6,9 @@ class cloudsql_instance_private_ip_assignment(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in cloudsql_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"Database Instance {instance.name} does not have private IP assignments." for address in instance.ip_addresses: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access.py index f484adb1df..c25f751666 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access.py @@ -6,11 +6,9 @@ class cloudsql_instance_public_access(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in cloudsql_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"Database Instance {instance.name} does not whitelist all Public IP Addresses." for network in instance.authorized_networks: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip.py index 4b17edb3ff..a7d8b123c1 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip.py @@ -6,11 +6,9 @@ class cloudsql_instance_public_ip(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in cloudsql_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"Database Instance {instance.name} does not have a public IP." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag.py index eae90d2b0e..016e78e7be 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_contained_database_authentication_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"SQL Server Instance {instance.name} has 'contained database authentication' flag set to 'off'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag.py index 96e85e294a..10369a318c 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"SQL Server Instance {instance.name} has 'cross db ownership chaining' flag set to 'off'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag.py index 573634344d..ca1b59acfe 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_external_scripts_enabled_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"SQL Server Instance {instance.name} has 'external scripts enabled' flag set to 'off'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag.py index 7f51d18f61..0396084b95 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_remote_access_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"SQL Server Instance {instance.name} has 'remote access' flag set to 'on'." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag.py index 39e34d17ff..73721346b5 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_trace_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"SQL Server Instance {instance.name} has '3625 (trace flag)' flag set to 'off'." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag.py index 96bc3bce7e..04c259dbbf 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_user_connections_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"SQL Server Instance {instance.name} has 'user connections' flag set to '0'." diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag.py index eb6f905279..8261d9b014 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag.py @@ -7,11 +7,9 @@ class cloudsql_instance_sqlserver_user_options_flag(Check): findings = [] for instance in cloudsql_client.instances: if "SQLSERVER" in instance.version: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"SQL Server Instance {instance.name} does not have 'user options' flag set." for flag in instance.flags: diff --git a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections.py b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections.py index 0f7ee53104..26cdb9ec47 100644 --- a/prowler/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections.py +++ b/prowler/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections.py @@ -6,11 +6,9 @@ class cloudsql_instance_ssl_connections(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in cloudsql_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.name - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"Database Instance {instance.name} requires SSL connections." diff --git a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock.py b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock.py index da42ceb8ea..a60b827e45 100644 --- a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock.py +++ b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock.py @@ -15,11 +15,9 @@ class cloudstorage_bucket_log_retention_policy_lock(Check): log_buckets.append(sink.destination.split("/")[-1]) for bucket in cloudstorage_client.buckets: if bucket.name in log_buckets: - report = Check_Report_GCP(self.metadata()) - report.project_id = bucket.project_id - report.resource_id = bucket.id - report.resource_name = bucket.name - report.location = bucket.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=bucket + ) report.status = "FAIL" report.status_extended = ( f"Log Sink Bucket {bucket.name} has no Retention Policy." diff --git a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access.py b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access.py index 0413ac9ac2..b97359f871 100644 --- a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access.py +++ b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access.py @@ -8,11 +8,9 @@ class cloudstorage_bucket_public_access(Check): def execute(self) -> Check_Report_GCP: findings = [] for bucket in cloudstorage_client.buckets: - report = Check_Report_GCP(self.metadata()) - report.project_id = bucket.project_id - report.resource_id = bucket.id - report.resource_name = bucket.name - report.location = bucket.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=bucket + ) report.status = "PASS" report.status_extended = f"Bucket {bucket.name} is not publicly accessible." if bucket.public: diff --git a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access.py b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access.py index cf4d96cbe8..ada41297be 100644 --- a/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access.py +++ b/prowler/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access.py @@ -8,11 +8,9 @@ class cloudstorage_bucket_uniform_bucket_level_access(Check): def execute(self) -> Check_Report_GCP: findings = [] for bucket in cloudstorage_client.buckets: - report = Check_Report_GCP(self.metadata()) - report.project_id = bucket.project_id - report.resource_id = bucket.id - report.resource_name = bucket.name - report.location = bucket.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=bucket + ) report.status = "PASS" report.status_extended = ( f"Bucket {bucket.name} has uniform Bucket Level Access enabled." diff --git a/prowler/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed.py b/prowler/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed.py index 1a8091ad79..a51c1949cd 100644 --- a/prowler/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed.py +++ b/prowler/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed.py @@ -6,11 +6,11 @@ class compute_firewall_rdp_access_from_the_internet_allowed(Check): def execute(self) -> Check_Report_GCP: findings = [] for firewall in compute_client.firewalls: - report = Check_Report_GCP(self.metadata()) - report.project_id = firewall.project_id - report.resource_id = firewall.id - report.resource_name = firewall.name - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=firewall, + location=compute_client.region, + ) report.status = "PASS" report.status_extended = f"Firewall {firewall.name} does not expose port 3389 (RDP) to the internet." opened_port = False diff --git a/prowler/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed.py b/prowler/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed.py index 1020d600e1..d2e0efa6c1 100644 --- a/prowler/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed.py +++ b/prowler/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed.py @@ -6,11 +6,11 @@ class compute_firewall_ssh_access_from_the_internet_allowed(Check): def execute(self) -> Check_Report_GCP: findings = [] for firewall in compute_client.firewalls: - report = Check_Report_GCP(self.metadata()) - report.project_id = firewall.project_id - report.resource_id = firewall.id - report.resource_name = firewall.name - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=firewall, + location=compute_client.region, + ) report.status = "PASS" report.status_extended = f"Firewall {firewall.name} does not expose port 22 (SSH) to the internet." opened_port = False diff --git a/prowler/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled.py b/prowler/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled.py index 50942a1648..17ef798e97 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled.py +++ b/prowler/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled.py @@ -6,11 +6,9 @@ class compute_instance_block_project_wide_ssh_keys_disabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"The VM Instance {instance.name} is making use of common/shared project-wide SSH key(s)." if instance.metadata.get("items"): diff --git a/prowler/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled.py b/prowler/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled.py index d65ea26c25..66211d5944 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled.py @@ -6,11 +6,9 @@ class compute_instance_confidential_computing_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"VM Instance {instance.name} has Confidential Computing enabled." diff --git a/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use.py b/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use.py index 60895befe3..78be391a4d 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use.py +++ b/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use.py @@ -6,11 +6,9 @@ class compute_instance_default_service_account_in_use(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"The default service account is not configured to be used with VM Instance {instance.name}." if ( diff --git a/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access.py b/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access.py index 785877bc96..d98e5b82c5 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access.py +++ b/prowler/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access.py @@ -6,11 +6,9 @@ class compute_instance_default_service_account_in_use_with_full_api_access(Check def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"The VM Instance {instance.name} is not configured to use the default service account with full access to all cloud APIs." for service_account in instance.service_accounts: diff --git a/prowler/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled.py b/prowler/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled.py index e94c560bc9..7230af43d0 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled.py @@ -6,11 +6,9 @@ class compute_instance_encryption_with_csek_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "FAIL" report.status_extended = f"The VM Instance {instance.name} has the following unencrypted disks: '{', '.join([i[0] for i in instance.disks_encryption if not i[1]])}'." if all([i[1] for i in instance.disks_encryption]): diff --git a/prowler/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled.py b/prowler/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled.py index 371d912d56..b060bf68d7 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled.py @@ -6,11 +6,9 @@ class compute_instance_ip_forwarding_is_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"The IP Forwarding of VM Instance {instance.name} is not enabled." diff --git a/prowler/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip.py b/prowler/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip.py index f67059e618..6e263f2777 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip.py +++ b/prowler/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip.py @@ -6,11 +6,9 @@ class compute_instance_public_ip(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = ( f"VM Instance {instance.name} does not have a public IP." diff --git a/prowler/providers/gcp/services/compute/compute_instance_serial_ports_in_use/compute_instance_serial_ports_in_use.py b/prowler/providers/gcp/services/compute/compute_instance_serial_ports_in_use/compute_instance_serial_ports_in_use.py index 399ef32b94..45919614ee 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_serial_ports_in_use/compute_instance_serial_ports_in_use.py +++ b/prowler/providers/gcp/services/compute/compute_instance_serial_ports_in_use/compute_instance_serial_ports_in_use.py @@ -6,11 +6,9 @@ class compute_instance_serial_ports_in_use(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"VM Instance {instance.name} has Enable Connecting to Serial Ports off." if instance.metadata.get("items"): diff --git a/prowler/providers/gcp/services/compute/compute_instance_shielded_vm_enabled/compute_instance_shielded_vm_enabled.py b/prowler/providers/gcp/services/compute/compute_instance_shielded_vm_enabled/compute_instance_shielded_vm_enabled.py index 80b210006c..99df3ad72f 100644 --- a/prowler/providers/gcp/services/compute/compute_instance_shielded_vm_enabled/compute_instance_shielded_vm_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_instance_shielded_vm_enabled/compute_instance_shielded_vm_enabled.py @@ -6,11 +6,9 @@ class compute_instance_shielded_vm_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for instance in compute_client.instances: - report = Check_Report_GCP(self.metadata()) - report.project_id = instance.project_id - report.resource_id = instance.id - report.resource_name = instance.name - report.location = instance.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=instance + ) report.status = "PASS" report.status_extended = f"VM Instance {instance.name} has vTPM or Integrity Monitoring set to on." if ( diff --git a/prowler/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled.py b/prowler/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled.py index 81165d7edd..a27fc04874 100644 --- a/prowler/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled.py @@ -6,11 +6,11 @@ class compute_loadbalancer_logging_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for lb in compute_client.load_balancers: - report = Check_Report_GCP(self.metadata()) - report.project_id = lb.project_id - report.resource_id = lb.id - report.resource_name = lb.name - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=lb, + location=compute_client.region, + ) report.status = "PASS" report.status_extended = f"LoadBalancer {lb.name} has logging enabled." if not lb.logging: diff --git a/prowler/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use.py b/prowler/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use.py index e8199d3b1a..899db3bca2 100644 --- a/prowler/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use.py +++ b/prowler/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use.py @@ -5,26 +5,29 @@ from prowler.providers.gcp.services.compute.compute_client import compute_client class compute_network_default_in_use(Check): def execute(self) -> Check_Report_GCP: findings = [] - projects_with_default_network = set() + projects_with_default_network = {} # Identify projects with the default network for network in compute_client.networks: if network.name == "default": - projects_with_default_network.add(network.project_id) + projects_with_default_network[network.project_id] = network # Generate reports for all projects for project in compute_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = "default" - report.resource_name = "default" - report.location = compute_client.region - + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=compute_client.projects[project], + project_id=project, + resource_id="default", + resource_name="default", + location=compute_client.region, + ) if project in projects_with_default_network: report.status = "FAIL" report.status_extended = ( f"Default network is in use in project {project}." ) + report.resource_metadata = projects_with_default_network[project] else: report.status = "PASS" report.status_extended = ( diff --git a/prowler/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled.py b/prowler/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled.py index b44b9e9fe7..ef580ba1ba 100644 --- a/prowler/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled.py @@ -7,11 +7,11 @@ class compute_network_dns_logging_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for network in compute_client.networks: - report = Check_Report_GCP(self.metadata()) - report.project_id = network.project_id - report.resource_id = network.id - report.resource_name = network.name - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=network, + location=compute_client.region, + ) report.status = "FAIL" report.status_extended = ( f"Network {network.name} does not have DNS logging enabled." diff --git a/prowler/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy.py b/prowler/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy.py index ac3cbf7fcd..1673066bd3 100644 --- a/prowler/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy.py +++ b/prowler/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy.py @@ -6,11 +6,11 @@ class compute_network_not_legacy(Check): def execute(self) -> Check_Report_GCP: findings = [] for network in compute_client.networks: - report = Check_Report_GCP(self.metadata()) - report.project_id = network.project_id - report.resource_id = network.id - report.resource_name = network.name - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=network, + location=compute_client.region, + ) report.status = "PASS" report.status_extended = f"Network {network.name} is not legacy." if network.subnet_mode == "legacy": diff --git a/prowler/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled.py b/prowler/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled.py index 0239a11295..6dc7feb8d2 100644 --- a/prowler/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled.py @@ -6,10 +6,12 @@ class compute_project_os_login_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project in compute_client.projects: - report = Check_Report_GCP(self.metadata()) - report.project_id = project.id - report.resource_id = project.id - report.location = compute_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=project, + project_id=project.id, + location=compute_client.region, + ) report.status = "PASS" report.status_extended = f"Project {project.id} has OS Login enabled." if not project.enable_oslogin: diff --git a/prowler/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan.py b/prowler/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan.py index 06aa133b43..4330b70be3 100644 --- a/prowler/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan.py +++ b/prowler/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan.py @@ -13,10 +13,9 @@ class compute_public_address_shodan(Check): api = shodan.Shodan(shodan_api_key) for address in compute_client.addresses: if address.type == "EXTERNAL": - report = Check_Report_GCP(self.metadata()) - report.project_id = address.project_id - report.resource_id = address.id - report.location = address.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=address + ) try: shodan_info = api.host(address.ip) report.status = "FAIL" diff --git a/prowler/providers/gcp/services/compute/compute_service.py b/prowler/providers/gcp/services/compute/compute_service.py index 765192877f..01fdc2acd7 100644 --- a/prowler/providers/gcp/services/compute/compute_service.py +++ b/prowler/providers/gcp/services/compute/compute_service.py @@ -15,7 +15,7 @@ class Compute(GCPService): self.subnets = [] self.addresses = [] self.firewalls = [] - self.projects = [] + self.compute_projects = [] self.load_balancers = [] self._get_url_maps() self._describe_backend_service() @@ -72,7 +72,7 @@ class Compute(GCPService): for item in response["commonInstanceMetadata"].get("items", []): if item["key"] == "enable-oslogin" and item["value"] == "TRUE": enable_oslogin = True - self.projects.append( + self.compute_projects.append( Project(id=project_id, enable_oslogin=enable_oslogin) ) except Exception as error: diff --git a/prowler/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled.py b/prowler/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled.py index 0f885a20bd..ee0a38fde9 100644 --- a/prowler/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled.py +++ b/prowler/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled.py @@ -6,11 +6,9 @@ class compute_subnet_flow_logs_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for subnet in compute_client.subnets: - report = Check_Report_GCP(self.metadata()) - report.project_id = subnet.project_id - report.resource_id = subnet.id - report.resource_name = subnet.name - report.location = subnet.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=subnet + ) report.status = "PASS" report.status_extended = f"Subnet {subnet.name} in network {subnet.network} has flow logs enabled." if not subnet.flow_logs: diff --git a/prowler/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled.py b/prowler/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled.py index e1c5b8fc05..ca2a27491d 100644 --- a/prowler/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled.py +++ b/prowler/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled.py @@ -6,11 +6,11 @@ class dataproc_encrypted_with_cmks_disabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for cluster in dataproc_client.clusters: - report = Check_Report_GCP(self.metadata()) - report.project_id = cluster.project_id - report.resource_id = cluster.id - report.resource_name = cluster.name - report.location = dataproc_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=cluster, + location=dataproc_client.region, + ) report.status = "PASS" report.status_extended = f"Dataproc cluster {cluster.name} is encrypted with customer managed encryption keys." if cluster.encryption_config.get("gcePdKmsKeyName") is None: diff --git a/prowler/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled.py b/prowler/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled.py index 79d3fa145c..de2b3aa67e 100644 --- a/prowler/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled.py +++ b/prowler/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled.py @@ -6,11 +6,11 @@ class dns_dnssec_disabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for managed_zone in dns_client.managed_zones: - report = Check_Report_GCP(self.metadata()) - report.project_id = managed_zone.project_id - report.resource_id = managed_zone.id - report.resource_name = managed_zone.name - report.location = dns_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=managed_zone, + location=dns_client.region, + ) report.status = "PASS" report.status_extended = ( f"Cloud DNS {managed_zone.name} has DNSSEC enabled." diff --git a/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec.py b/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec.py index ada5e4a516..7353e5073f 100644 --- a/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec.py +++ b/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec.py @@ -6,11 +6,11 @@ class dns_rsasha1_in_use_to_key_sign_in_dnssec(Check): def execute(self) -> Check_Report_GCP: findings = [] for managed_zone in dns_client.managed_zones: - report = Check_Report_GCP(self.metadata()) - report.project_id = managed_zone.project_id - report.resource_id = managed_zone.id - report.resource_name = managed_zone.name - report.location = dns_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=managed_zone, + location=dns_client.region, + ) report.status = "PASS" report.status_extended = f"Cloud DNS {managed_zone.name} is not using RSASHA1 algorithm as key signing." if any( diff --git a/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec.py b/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec.py index fcb123ae7a..86ccf243d3 100644 --- a/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec.py +++ b/prowler/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec.py @@ -6,11 +6,11 @@ class dns_rsasha1_in_use_to_zone_sign_in_dnssec(Check): def execute(self) -> Check_Report_GCP: findings = [] for managed_zone in dns_client.managed_zones: - report = Check_Report_GCP(self.metadata()) - report.project_id = managed_zone.project_id - report.resource_id = managed_zone.id - report.resource_name = managed_zone.name - report.location = dns_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=managed_zone, + location=dns_client.region, + ) report.status = "PASS" report.status_extended = f"Cloud DNS {managed_zone.name} is not using RSASHA1 algorithm as zone signing." if any( diff --git a/prowler/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled.py b/prowler/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled.py index 87097e512d..9182802f40 100644 --- a/prowler/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled.py +++ b/prowler/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled.py @@ -8,11 +8,14 @@ class gcr_container_scanning_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project_id in serviceusage_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project_id - report.resource_id = "containerscanning.googleapis.com" - report.resource_name = "GCR Container Scanning" - report.location = serviceusage_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=serviceusage_client.projects[project_id], + resource_id="containerscanning.googleapis.com", + resource_name="GCR Container Scanning", + project_id=project_id, + location=serviceusage_client.region, + ) report.status = "FAIL" report.status_extended = ( f"GCR Container Scanning is not enabled in project {project_id}." diff --git a/prowler/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account.py b/prowler/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account.py index 7acc81d559..02685b1e58 100644 --- a/prowler/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account.py +++ b/prowler/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account.py @@ -6,11 +6,9 @@ class gke_cluster_no_default_service_account(Check): def execute(self) -> Check_Report_GCP: findings = [] for cluster in gke_client.clusters.values(): - report = Check_Report_GCP(self.metadata()) - report.project_id = cluster.project_id - report.resource_id = cluster.id - report.resource_name = cluster.name - report.location = cluster.region + report = Check_Report_GCP( + metadata=self.metadata(), resource_metadata=cluster + ) report.status = "PASS" report.status_extended = f"GKE cluster {cluster.name} is not using the Compute Engine default service account." if not cluster.node_pools and cluster.service_account == "default": diff --git a/prowler/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled.py b/prowler/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled.py index 56da9a05da..277068f4cb 100644 --- a/prowler/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled.py +++ b/prowler/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled.py @@ -8,10 +8,12 @@ class iam_account_access_approval_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project_id in accessapproval_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project_id - report.resource_id = project_id - report.location = accessapproval_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=accessapproval_client.projects[project_id], + project_id=project_id, + location=accessapproval_client.region, + ) report.status = "PASS" report.status_extended = ( f"Project {project_id} has Access Approval enabled." diff --git a/prowler/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled.py b/prowler/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled.py index ba8ab16534..12e917a2ae 100644 --- a/prowler/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled.py +++ b/prowler/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled.py @@ -8,10 +8,12 @@ class iam_audit_logs_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project in cloudresourcemanager_client.projects: - report = Check_Report_GCP(self.metadata()) - report.project_id = project.id - report.location = cloudresourcemanager_client.region - report.resource_id = project.id + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=project, + project_id=project.id, + location=cloudresourcemanager_client.region, + ) report.status = "PASS" report.status_extended = f"Audit Logs are enabled for project {project.id}." if not project.audit_logging: diff --git a/prowler/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled.py b/prowler/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled.py index 8803f7cfa9..db5220481f 100644 --- a/prowler/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled.py +++ b/prowler/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled.py @@ -8,11 +8,14 @@ class iam_cloud_asset_inventory_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for project_id in serviceusage_client.project_ids: - report = Check_Report_GCP(self.metadata()) - report.project_id = project_id - report.resource_id = "cloudasset.googleapis.com" - report.resource_name = "Cloud Asset Inventory" - report.location = serviceusage_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=serviceusage_client.projects[project_id], + resource_id="cloudasset.googleapis.com", + resource_name="Cloud Asset Inventory", + project_id=project_id, + location=serviceusage_client.region, + ) report.status = "FAIL" report.status_extended = ( f"Cloud Asset Inventory is not enabled in project {project_id}." diff --git a/prowler/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level.py b/prowler/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level.py index e63686db76..c1f8e47706 100644 --- a/prowler/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level.py +++ b/prowler/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level.py @@ -9,11 +9,13 @@ class iam_no_service_roles_at_project_level(Check): findings = [] failed_projects = set() for binding in cloudresourcemanager_client.bindings: - report = Check_Report_GCP(self.metadata()) - report.project_id = binding.project_id - report.resource_id = binding.role - report.resource_name = binding.role - report.location = cloudresourcemanager_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=binding, + resource_id=binding.role, + resource_name=binding.role, + location=cloudresourcemanager_client.region, + ) if binding.role in [ "roles/iam.serviceAccountUser", "roles/iam.serviceAccountTokenCreator", @@ -25,12 +27,14 @@ class iam_no_service_roles_at_project_level(Check): for project in cloudresourcemanager_client.project_ids: if project not in failed_projects: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = project + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=cloudresourcemanager_client.projects[project], + project_id=project, + resource_name=project, + location=cloudresourcemanager_client.region, + ) report.status = "PASS" - report.location = cloudresourcemanager_client.region report.status_extended = f"No IAM Users assigned to service roles at project level {project}." findings.append(report) return findings diff --git a/prowler/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured.py b/prowler/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured.py index 875ad13c22..bed4f9dde0 100644 --- a/prowler/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured.py +++ b/prowler/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured.py @@ -8,11 +8,12 @@ class iam_organization_essential_contacts_configured(Check): def execute(self) -> Check_Report_GCP: findings = [] for org in essentialcontacts_client.organizations: - report = Check_Report_GCP(self.metadata()) - report.project_id = essentialcontacts_client.default_project_id - report.resource_id = org.id - report.resource_name = org.name - report.location = essentialcontacts_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=org, + project_id=essentialcontacts_client.default_project_id, + location=essentialcontacts_client.region, + ) report.status = "FAIL" report.status_extended = ( f"Organization {org.name} does not have essential contacts configured." diff --git a/prowler/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties.py b/prowler/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties.py index 7e90d6ff45..af3a5583d5 100644 --- a/prowler/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties.py +++ b/prowler/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties.py @@ -10,10 +10,12 @@ class iam_role_kms_enforce_separation_of_duties(Check): for project in cloudresourcemanager_client.project_ids: non_compliant_members = [] kms_admin_members = [] - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.location = cloudresourcemanager_client.region - report.resource_id = project + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=cloudresourcemanager_client.projects[project], + project_id=project, + location=cloudresourcemanager_client.region, + ) report.status = "PASS" report.status_extended = f"Principle of separation of duties was enforced for KMS-Related Roles in project {project}." for binding in cloudresourcemanager_client.bindings: diff --git a/prowler/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties.py b/prowler/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties.py index 5a01a99ed0..ce7fc75723 100644 --- a/prowler/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties.py +++ b/prowler/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties.py @@ -9,10 +9,12 @@ class iam_role_sa_enforce_separation_of_duties(Check): findings = [] for project in cloudresourcemanager_client.project_ids: non_compliant_members = [] - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.location = cloudresourcemanager_client.region - report.resource_id = project + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=cloudresourcemanager_client.projects[project], + location=cloudresourcemanager_client.region, + project_id=project, + ) report.status = "PASS" report.status_extended = f"Principle of separation of duties was enforced for Service-Account Related Roles in project {project}." for binding in cloudresourcemanager_client.bindings: diff --git a/prowler/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges.py b/prowler/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges.py index e5f389c6e2..ffc98c90d3 100644 --- a/prowler/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges.py +++ b/prowler/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges.py @@ -9,11 +9,12 @@ class iam_sa_no_administrative_privileges(Check): def execute(self) -> Check_Report_GCP: findings = [] for account in iam_client.service_accounts: - report = Check_Report_GCP(self.metadata()) - report.project_id = account.project_id - report.resource_id = account.email - report.resource_name = account.name - report.location = iam_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=account, + resource_id=account.email, + location=iam_client.region, + ) report.status = "PASS" report.status_extended = ( f"Account {account.email} has no administrative privileges." diff --git a/prowler/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys.py b/prowler/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys.py index ed113d2263..d9031c5ed3 100644 --- a/prowler/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys.py +++ b/prowler/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys.py @@ -6,11 +6,12 @@ class iam_sa_no_user_managed_keys(Check): def execute(self) -> Check_Report_GCP: findings = [] for account in iam_client.service_accounts: - report = Check_Report_GCP(self.metadata()) - report.project_id = account.project_id - report.resource_id = account.email - report.resource_name = account.name - report.location = iam_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=account, + resource_id=account.email, + location=iam_client.region, + ) report.status = "PASS" report.status_extended = ( f"Account {account.email} does not have user-managed keys." diff --git a/prowler/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days.py b/prowler/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days.py index d06dabe000..8939572f55 100644 --- a/prowler/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days.py +++ b/prowler/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days.py @@ -11,11 +11,13 @@ class iam_sa_user_managed_key_rotate_90_days(Check): for key in account.keys: if key.type == "USER_MANAGED": last_rotated = (datetime.now() - key.valid_after).days - report = Check_Report_GCP(self.metadata()) - report.project_id = account.project_id - report.resource_id = key.name - report.resource_name = account.email - report.location = iam_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=account, + resource_id=key.name, + resource_name=account.email, + location=iam_client.region, + ) report.status = "PASS" report.status_extended = f"User-managed key {key.name} for account {account.email} was rotated over the last 90 days ({last_rotated} days ago)." if last_rotated > 90: diff --git a/prowler/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible.py b/prowler/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible.py index 17abdc125d..2482eb24f1 100644 --- a/prowler/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible.py +++ b/prowler/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible.py @@ -6,11 +6,7 @@ class kms_key_not_publicly_accessible(Check): def execute(self) -> Check_Report_GCP: findings = [] for key in kms_client.crypto_keys: - report = Check_Report_GCP(self.metadata()) - report.project_id = key.project_id - report.resource_id = key.id - report.resource_name = key.name - report.location = key.location + report = Check_Report_GCP(metadata=self.metadata(), resource_metadata=key) report.status = "PASS" report.status_extended = f"Key {key.name} is not exposed to Public." for member in key.members: diff --git a/prowler/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled.py b/prowler/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled.py index 44128ce68f..86a2807392 100644 --- a/prowler/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled.py +++ b/prowler/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled.py @@ -8,11 +8,7 @@ class kms_key_rotation_enabled(Check): def execute(self) -> Check_Report_GCP: findings = [] for key in kms_client.crypto_keys: - report = Check_Report_GCP(self.metadata()) - report.project_id = key.project_id - report.resource_id = key.id - report.resource_name = key.name - report.location = key.location + report = Check_Report_GCP(metadata=self.metadata(), resource_metadata=key) now = datetime.datetime.now() condition_next_rotation_time = False if key.next_rotation_time: diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled.py index c28827c191..cf298578a8 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled.py @@ -16,12 +16,12 @@ class logging_log_metric_filter_and_alert_for_audit_configuration_changes_enable 'protoPayload.methodName="SetIamPolicy" AND protoPayload.serviceData.policyDelta.auditConfigDeltas:*' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -34,11 +34,12 @@ class logging_log_metric_filter_and_alert_for_audit_configuration_changes_enable for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled.py index 755b697896..ecfc8c0bda 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled( 'resource.type="gcs_bucket" AND protoPayload.methodName="storage.setIamPermissions"' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled( for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled.py index f327c06ced..8606e36d36 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_custom_role_changes_enabled(Check) 'resource.type="iam_role" AND (protoPayload.methodName="google.iam.admin.v1.CreateRole" OR protoPayload.methodName="google.iam.admin.v1.DeleteRole" OR protoPayload.methodName="google.iam.admin.v1.UpdateRole")' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_custom_role_changes_enabled(Check) for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled.py index 95bc2de108..37573cb604 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled( '(protoPayload.serviceName="cloudresourcemanager.googleapis.com") AND (ProjectOwnership OR projectOwnerInvitee) OR (protoPayload.serviceData.policyDelta.bindingDeltas.action="REMOVE" AND protoPayload.serviceData.policyDelta.bindingDeltas.role="roles/owner") OR (protoPayload.serviceData.policyDelta.bindingDeltas.action="ADD" AND protoPayload.serviceData.policyDelta.bindingDeltas.role="roles/owner")' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled( for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled.py index ead0b76733..f86ae4a59f 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled.py @@ -13,12 +13,12 @@ class logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes projects_with_metric = set() for metric in logging_client.metrics: if 'protoPayload.methodName="cloudsql.instances.update"' in metric.filter: - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -31,11 +31,12 @@ class logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled.py index af22fed412..98d437b1b3 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled( 'resource.type="gce_firewall_rule" AND (protoPayload.methodName:"compute.firewalls.patch" OR protoPayload.methodName:"compute.firewalls.insert" OR protoPayload.methodName:"compute.firewalls.delete")' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled( for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled.py index a8b1eda7e3..75bce35488 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled(Check) 'resource.type="gce_network" AND (protoPayload.methodName:"compute.networks.insert" OR protoPayload.methodName:"compute.networks.patch" OR protoPayload.methodName:"compute.networks.delete" OR protoPayload.methodName:"compute.networks.removePeering" OR protoPayload.methodName:"compute.networks.addPeering")' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled(Check) for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled.py b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled.py index 265a5bb8b0..e183a31a8b 100644 --- a/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled.py +++ b/prowler/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled.py @@ -14,12 +14,12 @@ class logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled( 'resource.type="gce_route" AND (protoPayload.methodName:"compute.routes.delete" OR protoPayload.methodName:"compute.routes.insert")' in metric.filter ): - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=metric, + location=logging_client.region, + ) projects_with_metric.add(metric.project_id) - report.project_id = metric.project_id - report.resource_id = metric.name - report.resource_name = metric.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Log metric filter {metric.name} found but no alerts associated in project {metric.project_id}." for alert_policy in monitoring_client.alert_policies: @@ -32,11 +32,12 @@ class logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled( for project in logging_client.project_ids: if project not in projects_with_metric: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no log metric filters or alerts associated in project {project}." findings.append(report) diff --git a/prowler/providers/gcp/services/logging/logging_sink_created/logging_sink_created.py b/prowler/providers/gcp/services/logging/logging_sink_created/logging_sink_created.py index f6618284ff..db39f982db 100644 --- a/prowler/providers/gcp/services/logging/logging_sink_created/logging_sink_created.py +++ b/prowler/providers/gcp/services/logging/logging_sink_created/logging_sink_created.py @@ -7,12 +7,12 @@ class logging_sink_created(Check): findings = [] projects_with_sink = set() for sink in logging_client.sinks: - report = Check_Report_GCP(self.metadata()) + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=sink, + location=logging_client.region, + ) projects_with_sink.add(sink.project_id) - report.project_id = sink.project_id - report.resource_id = sink.name - report.resource_name = sink.name - report.location = logging_client.region report.status = "FAIL" report.status_extended = f"Sink {sink.name} is enabled but not exporting copies of all the log entries in project {sink.project_id}." if sink.filter == "all": @@ -22,11 +22,12 @@ class logging_sink_created(Check): for project in logging_client.project_ids: if project not in projects_with_sink: - report = Check_Report_GCP(self.metadata()) - report.project_id = project - report.resource_id = project - report.resource_name = "" - report.location = logging_client.region + report = Check_Report_GCP( + metadata=self.metadata(), + resource_metadata=logging_client.projects[project], + project_id=project, + location=logging_client.region, + ) report.status = "FAIL" report.status_extended = f"There are no logging sinks to export copies of all the log entries in project {project}." findings.append(report) diff --git a/tests/providers/gcp/gcp_fixtures.py b/tests/providers/gcp/gcp_fixtures.py index b75db5f84b..d11b1cc508 100644 --- a/tests/providers/gcp/gcp_fixtures.py +++ b/tests/providers/gcp/gcp_fixtures.py @@ -3,7 +3,7 @@ from uuid import uuid4 from mock import MagicMock from prowler.providers.gcp.gcp_provider import GcpProvider -from prowler.providers.gcp.models import GCPIdentityInfo +from prowler.providers.gcp.models import GCPIdentityInfo, GCPProject GCP_PROJECT_ID = "123456789012" @@ -18,6 +18,15 @@ def set_mocked_gcp_provider( provider.type = "gcp" provider.session = MagicMock() provider.session._service_account_email = "test@test.com" + provider.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } provider.project_ids = project_ids provider.default_project_id = GCP_PROJECT_ID provider.identity = GCPIdentityInfo( diff --git a/tests/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured_test.py b/tests/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured_test.py index 578f04bc75..40a9ac052f 100644 --- a/tests/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured_test.py +++ b/tests/providers/gcp/services/apikeys/apikeys_api_restrictions_configured/apikeys_api_restrictions_configured_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_apikeys_api_restrictions_configured: def test_apikeys_no_keys(self): - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.keys = [] with mock.patch( @@ -40,7 +40,7 @@ class Test_apikeys_api_restrictions_configured: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" @@ -78,7 +78,7 @@ class Test_apikeys_api_restrictions_configured: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" @@ -122,7 +122,7 @@ class Test_apikeys_api_restrictions_configured: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" diff --git a/tests/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists_test.py b/tests/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists_test.py index 12245d183d..211d5822ce 100644 --- a/tests/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists_test.py +++ b/tests/providers/gcp/services/apikeys/apikeys_key_exists/apikeys_key_exists_test.py @@ -1,15 +1,25 @@ from re import search from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_apikeys_key_exists: def test_apikeys_no_keys(self): - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [] apikeys_client.region = "global" + apikeys_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -43,10 +53,19 @@ class Test_apikeys_key_exists: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" + apikeys_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days_test.py b/tests/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days_test.py index 79540d8a52..e7547a0e64 100644 --- a/tests/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days_test.py +++ b/tests/providers/gcp/services/apikeys/apikeys_key_rotated_in_90_days/apikeys_key_rotated_in_90_days_test.py @@ -7,7 +7,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_apikeys_key_rotated_in_90_days: def test_apikeys_no_keys(self): - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.keys = [] with mock.patch( @@ -38,7 +38,7 @@ class Test_apikeys_key_rotated_in_90_days: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" @@ -78,7 +78,7 @@ class Test_apikeys_key_rotated_in_90_days: project_id=GCP_PROJECT_ID, ) - apikeys_client = mock.MagicMock + apikeys_client = mock.MagicMock() apikeys_client.project_ids = [GCP_PROJECT_ID] apikeys_client.keys = [key] apikeys_client.region = "global" diff --git a/tests/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled_test.py b/tests/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled_test.py index a7ed7bbd0e..488f2cad3a 100644 --- a/tests/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled_test.py +++ b/tests/providers/gcp/services/artifacts/artifacts_container_analysis_enabled/artifacts_container_analysis_enabled_test.py @@ -1,22 +1,35 @@ from unittest import mock +from prowler.providers.gcp.models import GCPProject from prowler.providers.gcp.services.serviceusage.serviceusage_service import Service from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_artifacts_container_analysis_enabled: def test_serviceusage_no_active_services(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = {} serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled import ( artifacts_container_analysis_enabled, @@ -36,7 +49,7 @@ class Test_artifacts_container_analysis_enabled: assert result[0].location == serviceusage_client.region def test_serviceusage_active_cloudasset(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = { GCP_PROJECT_ID: [ Service( @@ -48,13 +61,25 @@ class Test_artifacts_container_analysis_enabled: } serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.artifacts.artifacts_container_analysis_enabled.artifacts_container_analysis_enabled import ( artifacts_container_analysis_enabled, diff --git a/tests/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption_test.py b/tests/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption_test.py index 1eba16d3c1..15e67a5e21 100644 --- a/tests/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption_test.py +++ b/tests/providers/gcp/services/bigquery/bigquery_dataset_cmk_encryption/bigquery_dataset_cmk_encryption_test.py @@ -5,7 +5,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_bigquery_dataset_cmk_encryption: def test_bigquery_no_datasets(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() bigquery_client.datasets = [] with mock.patch( @@ -24,7 +24,7 @@ class Test_bigquery_dataset_cmk_encryption: assert len(result) == 0 def test_one_compliant_dataset(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -64,7 +64,7 @@ class Test_bigquery_dataset_cmk_encryption: assert result[0].location == dataset.region def test_one_non_compliant_dataset(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access_test.py b/tests/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access_test.py index 37c275b488..f4c075f49b 100644 --- a/tests/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access_test.py +++ b/tests/providers/gcp/services/bigquery/bigquery_dataset_public_access/bigquery_dataset_public_access_test.py @@ -5,7 +5,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_bigquery_dataset_public_access: def test_bigquery_no_datasets(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() bigquery_client.datasets = [] with mock.patch( @@ -35,7 +35,7 @@ class Test_bigquery_dataset_public_access: project_id=GCP_PROJECT_ID, ) - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() bigquery_client.project_ids = [GCP_PROJECT_ID] bigquery_client.datasets = [dataset] @@ -76,7 +76,7 @@ class Test_bigquery_dataset_public_access: project_id=GCP_PROJECT_ID, ) - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() bigquery_client.project_ids = [GCP_PROJECT_ID] bigquery_client.datasets = [dataset] diff --git a/tests/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption_test.py b/tests/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption_test.py index c31de79637..f36304a6bc 100644 --- a/tests/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption_test.py +++ b/tests/providers/gcp/services/bigquery/bigquery_table_cmk_encryption/bigquery_table_cmk_encryption_test.py @@ -5,7 +5,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_bigquery_table_cmk_encryption: def test_bigquery_no_tables(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() bigquery_client.tables = [] with mock.patch( @@ -24,7 +24,7 @@ class Test_bigquery_table_cmk_encryption: assert len(result) == 0 def test_one_compliant_table(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -64,7 +64,7 @@ class Test_bigquery_table_cmk_encryption: assert result[0].location == table.region def test_one_non_compliant_table(self): - bigquery_client = mock.MagicMock + bigquery_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service_test.py b/tests/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service_test.py index 31876add45..9cb9cccdb2 100644 --- a/tests/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service_test.py +++ b/tests/providers/gcp/services/cloudresourcemanager/cloudresourcemanager_service_test.py @@ -26,9 +26,11 @@ class TestCloudResourceManagerService: assert api_keys_client.service == "cloudresourcemanager" assert api_keys_client.project_ids == [GCP_PROJECT_ID] - assert len(api_keys_client.projects) == 1 - assert api_keys_client.projects[0].id == GCP_PROJECT_ID - assert api_keys_client.projects[0].audit_logging + assert len(api_keys_client.cloud_resource_manager_projects) == 1 + assert ( + api_keys_client.cloud_resource_manager_projects[0].id == GCP_PROJECT_ID + ) + assert api_keys_client.cloud_resource_manager_projects[0].audit_logging assert len(api_keys_client.bindings) == 2 assert ( diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups_test.py index 73caf250f6..6e496bb5eb 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_automated_backups/cloudsql_instance_automated_backups_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_automated_backups: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_automated_backups: assert len(result) == 0 def test_cloudsql_instance_with_automated_backups(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -75,7 +75,7 @@ class Test_cloudsql_instance_automated_backups: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_without_automated_backups(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag_test.py index 361f3ff499..5ef3ee1ec4 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_local_infile_flag/cloudsql_instance_mysql_local_infile_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_mysql_local_infile_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_mysql_local_infile_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_mysql_local_infile_flag: assert len(result) == 0 def test_cloudsql_instance_with_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_mysql_local_infile_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_with_local_infile_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_mysql_local_infile_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_with_local_infile_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag_test.py index b6bf83ab4f..8e1d541972 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_mysql_skip_show_database_flag/cloudsql_instance_mysql_skip_show_database_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_mysql_skip_show_database_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_mysql_skip_show_database_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_mysql_skip_show_database_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_mysql_skip_show_database_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_with_skip_show_databases_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_mysql_skip_show_database_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_with_skip_show_databases_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag_test.py index c2c4f13b22..2c242be3f0 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_enable_pgaudit_flag/cloudsql_instance_postgres_enable_pgaudit_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_enable_pgaudit_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_enable_pgaudit_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_enable_pgaudit_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_enable_pgaudit_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_pgaudit_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_enable_pgaudit_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_pgaudit_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag_test.py index b8b57bd15b..69d05be8ba 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_connections_flag/cloudsql_instance_postgres_log_connections_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_connections_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_connections_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_connections_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_connections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_connections_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_connections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_connections_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag_test.py index fd7f4e1339..5669661f3b 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_disconnections_flag/cloudsql_instance_postgres_log_disconnections_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_disconnections_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_disconnections_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_disconnections_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_disconnections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_disconnections_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_disconnections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_disconnections_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag_test.py index e905ebdf88..b5a27d006b 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_error_verbosity_flag/cloudsql_instance_postgres_log_error_verbosity_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_error_verbosity_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_error_verbosity_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_error_verbosity_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_error_verbosity_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_error_verbosity_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_error_verbosity_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_error_verbosity_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag_test.py index 6a568e9e43..80ccb96b0f 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_duration_statement_flag/cloudsql_instance_postgres_log_min_duration_statement_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_min_duration_statement_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_min_duration_statement_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_min_duration_statement_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_min_duration_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_duration_statement_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_min_duration_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_duration_statement_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag_test.py index 28f8a583c6..007723a912 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_error_statement_flag/cloudsql_instance_postgres_log_min_error_statement_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_min_error_statement_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_min_error_statement_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_min_error_statement_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_min_error_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_error_statement_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_min_error_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_error_statement_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag_test.py index 8d7bbe4e6b..d40010c3cd 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_min_messages_flag/cloudsql_instance_postgres_log_min_messages_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_min_messages_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_min_messages_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_min_messages_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_min_messages_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_messages_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_min_messages_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_min_messages_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag_test.py index 47df151209..02c82667f8 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_postgres_log_statement_flag/cloudsql_instance_postgres_log_statement_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_postgres_log_statement_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_postgres_log_statement_flag: assert len(result) == 0 def test_cloudsql_mysql_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_postgres_log_statement_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_postgres_log_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_statement_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_postgres_log_statement_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_log_statement_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access_test.py index 5435b8f6de..b617cfd549 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_access/cloudsql_instance_public_access_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_public_access: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_public_access: assert len(result) == 0 def test_cloudsql_instance_no_public_access(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -75,7 +75,7 @@ class Test_cloudsql_instance_public_access: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_public_access(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip_test.py index 1e0d3b73f6..ed234c1185 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_public_ip/cloudsql_instance_public_ip_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_public_ip: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_public_ip: assert len(result) == 0 def test_cloudsql_instance_no_public_ip(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -75,7 +75,7 @@ class Test_cloudsql_instance_public_ip: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_public_ip(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag_test.py index 7055121b95..c4e49b3fab 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_contained_database_authentication_flag/cloudsql_instance_sqlserver_contained_database_authentication_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_contained_database_authentication_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_contained_database_authentication_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_contained_database_authentication_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_contained_database_authentication_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_contained_database_authentication_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -160,7 +160,7 @@ class Test_cloudsql_instance_sqlserver_contained_database_authentication_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_contained_database_authentication_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag_test.py index 8a276eb837..c8ecf9912f 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag/cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_cross_db_ownership_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_cross_db_ownership_chaining_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_cross_db_ownership_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag_test.py index ce42bb6d31..8629822de1 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_external_scripts_enabled_flag/cloudsql_instance_sqlserver_external_scripts_enabled_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_external_scripts_enabled_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_external_scripts_enabled_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_external_scripts_enabled_flag: assert len(result) == 0 def test_cloudsql_sqlserver_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_external_scripts_enabled_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_external_scripts_enabled_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_external_scripts_enabled_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_external_scripts_enabled_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag_test.py index 13f7321a61..18efa9d004 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_remote_access_flag/cloudsql_instance_sqlserver_remote_access_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_remote_access_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_remote_access_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_remote_access_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_remote_access_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_remote_access_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_remote_access_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_remote_access_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag_test.py index 4375509e21..932e62c333 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_trace_flag/cloudsql_instance_sqlserver_trace_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_trace_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_trace_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_trace_flag: assert len(result) == 0 def test_cloudsql_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_trace_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_trace_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_trace_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_trace_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag_test.py index cf527241cc..7032a89d0f 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_connections_flag/cloudsql_instance_sqlserver_user_connections_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_user_connections_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_user_connections_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_user_connections_flag: assert len(result) == 0 def test_cloudsql_sqlserver_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_user_connections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_user_connections_flag_off(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_user_connections_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_user_connections_flag_on(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag_test.py index 0c1bc4ba49..3535fcb271 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_sqlserver_user_options_flag/cloudsql_instance_sqlserver_user_options_flag_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_sqlserver_user_options_flag: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_sqlserver_user_options_flag: assert len(result) == 0 def test_cloudsql_postgres_instance(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -66,7 +66,7 @@ class Test_cloudsql_instance_sqlserver_user_options_flag: assert len(result) == 0 def test_cloudsql_sqlserver_instance_no_flags(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -112,7 +112,7 @@ class Test_cloudsql_instance_sqlserver_user_options_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_user_options_flag_empty(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -158,7 +158,7 @@ class Test_cloudsql_instance_sqlserver_user_options_flag: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_sqlserver_instance_user_options_flag_set(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections_test.py b/tests/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections_test.py index 70ed073b3e..d42d447019 100644 --- a/tests/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections_test.py +++ b/tests/providers/gcp/services/cloudsql/cloudsql_instance_ssl_connections/cloudsql_instance_ssl_connections_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_cloudsql_instance_ssl_connections: def test_no_cloudsql_instances(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -29,7 +29,7 @@ class Test_cloudsql_instance_ssl_connections: assert len(result) == 0 def test_cloudsql_instance_ssl_connections_enabled_and_ssl_mode_encrypted(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -75,7 +75,7 @@ class Test_cloudsql_instance_ssl_connections: assert result[0].project_id == GCP_PROJECT_ID def test_cloudsql_instance_ssl_connections_enabled_and_ssl_mode_not_encrypted(self): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -123,7 +123,7 @@ class Test_cloudsql_instance_ssl_connections: def test_cloudsql_instance_ssl_connections_disabled_and_ssl_mode_not_encrypted( self, ): - cloudsql_client = mock.MagicMock + cloudsql_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock_test.py b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock_test.py index 6c35fdfc2e..f52adeb553 100644 --- a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock_test.py +++ b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_log_retention_policy_lock/cloudstorage_bucket_log_retention_policy_lock_test.py @@ -12,15 +12,19 @@ class TestCloudStorageBucketLogRetentionPolicyLock: cloudstorage_client = mock.MagicMock() logging_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", - new=cloudstorage_client, - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", - new=logging_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", + new=cloudstorage_client, + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", + new=logging_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock import ( cloudstorage_bucket_log_retention_policy_lock, @@ -72,15 +76,19 @@ class TestCloudStorageBucketLogRetentionPolicyLock: cloudstorage_client = mock.MagicMock() logging_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", - new=cloudstorage_client, - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", - new=logging_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", + new=cloudstorage_client, + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", + new=logging_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock import ( cloudstorage_bucket_log_retention_policy_lock, @@ -132,15 +140,19 @@ class TestCloudStorageBucketLogRetentionPolicyLock: cloudstorage_client = mock.MagicMock() logging_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", - new=cloudstorage_client, - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", - new=logging_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", + new=cloudstorage_client, + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", + new=logging_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock import ( cloudstorage_bucket_log_retention_policy_lock, @@ -192,15 +204,19 @@ class TestCloudStorageBucketLogRetentionPolicyLock: cloudstorage_client = mock.MagicMock() logging_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", - new=cloudstorage_client, - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", - new=logging_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", + new=cloudstorage_client, + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", + new=logging_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock import ( cloudstorage_bucket_log_retention_policy_lock, @@ -230,15 +246,19 @@ class TestCloudStorageBucketLogRetentionPolicyLock: cloudstorage_client = mock.MagicMock() logging_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", - new=cloudstorage_client, - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", - new=logging_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_client", + new=cloudstorage_client, + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock.logging_client", + new=logging_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_log_retention_policy_lock.cloudstorage_bucket_log_retention_policy_lock import ( cloudstorage_bucket_log_retention_policy_lock, diff --git a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access_test.py b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access_test.py index 1e78bebb28..c3fc24bfbf 100644 --- a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access_test.py +++ b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_public_access/cloudstorage_bucket_public_access_test.py @@ -11,12 +11,15 @@ class TestCloudStorageBucketPublicAccess: def test_bucket_public_access(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access import ( cloudstorage_bucket_public_access, @@ -56,12 +59,15 @@ class TestCloudStorageBucketPublicAccess: def test_bucket_no_public_access(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access import ( cloudstorage_bucket_public_access, @@ -101,12 +107,15 @@ class TestCloudStorageBucketPublicAccess: def test_no_buckets(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_public_access.cloudstorage_bucket_public_access import ( cloudstorage_bucket_public_access, diff --git a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access_test.py b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access_test.py index 7f7fe4e361..9de45e365f 100644 --- a/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access_test.py +++ b/tests/providers/gcp/services/cloudstorage/cloudstorage_bucket_uniform_bucket_level_access/cloudstorage_bucket_uniform_bucket_level_access_test.py @@ -11,12 +11,15 @@ class TestCloudStorageBucketUniformBucketLevelAccess: def test_bucket_with_uniform_bucket_level_access_enabled(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access import ( cloudstorage_bucket_uniform_bucket_level_access, @@ -56,12 +59,15 @@ class TestCloudStorageBucketUniformBucketLevelAccess: def test_bucket_with_uniform_bucket_level_access_disabled(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access import ( cloudstorage_bucket_uniform_bucket_level_access, @@ -101,12 +107,15 @@ class TestCloudStorageBucketUniformBucketLevelAccess: def test_no_buckets(self): cloudstorage_client = mock.MagicMock() - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", - new=cloudstorage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_client", + new=cloudstorage_client, + ), ): from prowler.providers.gcp.services.cloudstorage.cloudstorage_bucket_uniform_bucket_level_access.cloudstorage_bucket_uniform_bucket_level_access import ( cloudstorage_bucket_uniform_bucket_level_access, diff --git a/tests/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed_test.py b/tests/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed_test.py index cd6ecea338..019feba685 100644 --- a/tests/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed_test.py +++ b/tests/providers/gcp/services/compute/compute_firewall_rdp_access_from_the_internet_allowed/compute_firewall_rdp_access_from_the_internet_allowed_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_firewall_rdp_access_from_the_internet_allowed: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.firewalls = [] with mock.patch( @@ -36,7 +36,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -75,7 +75,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -114,7 +114,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -153,7 +153,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -192,7 +192,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -231,7 +231,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -270,7 +270,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -309,7 +309,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -348,7 +348,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -390,7 +390,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -433,7 +433,7 @@ class Test_compute_firewall_rdp_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" diff --git a/tests/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed_test.py b/tests/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed_test.py index 66d2e360b2..eb693d339a 100644 --- a/tests/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed_test.py +++ b/tests/providers/gcp/services/compute/compute_firewall_ssh_access_from_the_internet_allowed/compute_firewall_ssh_access_from_the_internet_allowed_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_firewall_ssh_access_from_the_internet_allowed: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.firewalls = [] with mock.patch( @@ -36,7 +36,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -75,7 +75,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -114,7 +114,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -153,7 +153,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -192,7 +192,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -231,7 +231,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -270,7 +270,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -309,7 +309,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -348,7 +348,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -390,7 +390,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" @@ -433,7 +433,7 @@ class Test_compute_firewall_ssh_access_from_the_internet_allowed: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.firewalls = [firewall] compute_client.region = "global" diff --git a/tests/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled_test.py b/tests/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled_test.py index 0141a49a46..800a3da77a 100644 --- a/tests/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_block_project_wide_ssh_keys_disabled/compute_instance_block_project_wide_ssh_keys_disabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_block_project_wide_ssh_keys_disabled: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [] @@ -44,7 +44,7 @@ class Test_compute_instance_block_project_wide_ssh_keys_disabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -90,7 +90,7 @@ class Test_compute_instance_block_project_wide_ssh_keys_disabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -136,7 +136,7 @@ class Test_compute_instance_block_project_wide_ssh_keys_disabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled_test.py b/tests/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled_test.py index 9b6367c1d2..66ef7c82e2 100644 --- a/tests/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_confidential_computing_enabled/compute_instance_confidential_computing_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_confidential_computing_enabled: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [] @@ -44,7 +44,7 @@ class Test_compute_instance_confidential_computing_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -92,7 +92,7 @@ class Test_compute_instance_confidential_computing_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use_test.py b/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use_test.py index b30726c015..9ad9829f91 100644 --- a/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use/compute_instance_default_service_account_in_use_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_default_service_account_in_use: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.instances = [] with mock.patch( @@ -43,7 +43,7 @@ class Test_compute_instance_default_service_account_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -91,7 +91,7 @@ class Test_compute_instance_default_service_account_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -139,7 +139,7 @@ class Test_compute_instance_default_service_account_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access_test.py b/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access_test.py index 3ec9dc6d24..0f44af37b2 100644 --- a/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_default_service_account_in_use_with_full_api_access/compute_instance_default_service_account_in_use_with_full_api_access_test.py @@ -5,7 +5,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_default_service_account_in_use_with_full_api_access: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.instances = [] with mock.patch( @@ -46,7 +46,7 @@ class Test_compute_instance_default_service_account_in_use_with_full_api_access: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -99,7 +99,7 @@ class Test_compute_instance_default_service_account_in_use_with_full_api_access: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -152,7 +152,7 @@ class Test_compute_instance_default_service_account_in_use_with_full_api_access: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled_test.py b/tests/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled_test.py index 96a6538bd7..92bc9d3b22 100644 --- a/tests/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_encryption_with_csek_enabled/compute_instance_encryption_with_csek_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_encryption_with_csek_enabled: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [] @@ -44,7 +44,7 @@ class Test_compute_instance_encryption_with_csek_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] compute_client.region = "us-central1" @@ -91,7 +91,7 @@ class Test_compute_instance_encryption_with_csek_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -137,7 +137,7 @@ class Test_compute_instance_encryption_with_csek_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled_test.py b/tests/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled_test.py index 2cf21d791b..3b3c4d7907 100644 --- a/tests/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_ip_forwarding_is_enabled/compute_instance_ip_forwarding_is_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_ip_forwarding_is_enabled: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.instances = [] with mock.patch( @@ -43,7 +43,7 @@ class Test_compute_instance_ip_forwarding_is_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -91,7 +91,7 @@ class Test_compute_instance_ip_forwarding_is_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -139,7 +139,7 @@ class Test_compute_instance_ip_forwarding_is_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip_test.py b/tests/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip_test.py index a4ccd3cd4e..3a86285ea5 100644 --- a/tests/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip_test.py +++ b/tests/providers/gcp/services/compute/compute_instance_public_ip/compute_instance_public_ip_test.py @@ -5,7 +5,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_public_ip: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.instances = [] with mock.patch( @@ -24,7 +24,7 @@ class Test_compute_instance_public_ip: assert len(result) == 0 def test_no_public_ip_instance(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -94,7 +94,7 @@ class Test_compute_instance_public_ip: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled_test.py b/tests/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled_test.py index 2a7daeee97..d470a8f39e 100644 --- a/tests/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_loadbalancer_logging_enabled/compute_loadbalancer_logging_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_loadbalancer_logging_enabled: def test_compute_no_load_balancers(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.load_balancers = [] @@ -36,7 +36,7 @@ class Test_compute_loadbalancer_logging_enabled: service="test", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.load_balancers = [load_balancer] compute_client.region = "global" @@ -77,7 +77,7 @@ class Test_compute_loadbalancer_logging_enabled: service="test", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.load_balancers = [load_balancer] compute_client.region = "global" diff --git a/tests/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use_test.py b/tests/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use_test.py index d9d684be7e..7a9a56b120 100644 --- a/tests/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use_test.py +++ b/tests/providers/gcp/services/compute/compute_network_default_in_use/compute_network_default_in_use_test.py @@ -1,18 +1,31 @@ from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_compute_network_default_in_use: def test_compute_no_projects(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() + compute_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", - new=compute_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", + new=compute_client, + ), ): from prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use import ( compute_network_default_in_use, @@ -26,14 +39,26 @@ class Test_compute_network_default_in_use: assert len(result) == 0 def test_compute_no_networks(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() + compute_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", - new=compute_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", + new=compute_client, + ), ): from prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use import ( compute_network_default_in_use, @@ -57,14 +82,26 @@ class Test_compute_network_default_in_use: assert result[0].location == "global" def test_compute_one_project_default_network(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() + compute_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", - new=compute_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", + new=compute_client, + ), ): from prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use import ( compute_network_default_in_use, @@ -96,14 +133,26 @@ class Test_compute_network_default_in_use: assert result[0].location == "global" def test_compute_one_project_no_default_network(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() + compute_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", - new=compute_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use.compute_client", + new=compute_client, + ), ): from prowler.providers.gcp.services.compute.compute_network_default_in_use.compute_network_default_in_use import ( compute_network_default_in_use, diff --git a/tests/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled_test.py b/tests/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled_test.py index b5bceed796..1ab7dbc01b 100644 --- a/tests/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_network_dns_logging_enabled/compute_network_dns_logging_enabled_test.py @@ -7,7 +7,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_network_dns_logging_enabled: def test_compute_no_networks(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [] compute_client.region = "global" @@ -34,7 +34,7 @@ class Test_compute_network_dns_logging_enabled: name="test", id="test_id", project_id=GCP_PROJECT_ID, subnet_mode="auto" ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [network] compute_client.region = "global" @@ -47,7 +47,7 @@ class Test_compute_network_dns_logging_enabled: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.policies = [policy] @@ -87,7 +87,7 @@ class Test_compute_network_dns_logging_enabled: name="test", id="test_id", project_id=GCP_PROJECT_ID, subnet_mode="auto" ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [network] compute_client.region = "global" @@ -100,7 +100,7 @@ class Test_compute_network_dns_logging_enabled: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.policies = [policy] diff --git a/tests/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy_test.py b/tests/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy_test.py index e6eef3ef8e..e50902dee2 100644 --- a/tests/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy_test.py +++ b/tests/providers/gcp/services/compute/compute_network_not_legacy/compute_network_not_legacy_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_network_not_legacy: def test_compute_no_networks(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [] compute_client.region = "global" @@ -36,7 +36,7 @@ class Test_compute_network_not_legacy: subnet_mode="custom", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [network] compute_client.region = "global" @@ -76,7 +76,7 @@ class Test_compute_network_not_legacy: subnet_mode="legacy", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.networks = [network] compute_client.region = "global" diff --git a/tests/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled_test.py b/tests/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled_test.py index df71caf421..958773a3ba 100644 --- a/tests/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_project_os_login_enabled: def test_compute_no_project(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.projects = [] @@ -33,7 +33,7 @@ class Test_compute_project_os_login_enabled: enable_oslogin=True, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.projects = [project] compute_client.region = "global" @@ -70,7 +70,7 @@ class Test_compute_project_os_login_enabled: enable_oslogin=False, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.projects = [project] compute_client.region = "global" diff --git a/tests/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan_test.py b/tests/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan_test.py index 0055cbbe24..50a4337dfe 100644 --- a/tests/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan_test.py +++ b/tests/providers/gcp/services/compute/compute_public_address_shodan/compute_public_address_shodan_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_public_address_shodan: def test_no_public_ip_addresses(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.addresses = {} with mock.patch( @@ -27,7 +27,7 @@ class Test_compute_public_address_shodan: assert len(result) == 0 def test_compute_ip_in_shodan(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() public_ip_id = "id" public_ip_name = "name" ip_address = "ip_address" diff --git a/tests/providers/gcp/services/compute/compute_serial_ports_in_use/compute_serial_ports_in_use_test.py b/tests/providers/gcp/services/compute/compute_serial_ports_in_use/compute_serial_ports_in_use_test.py index f9bdb787c7..2d9afe5d64 100644 --- a/tests/providers/gcp/services/compute/compute_serial_ports_in_use/compute_serial_ports_in_use_test.py +++ b/tests/providers/gcp/services/compute/compute_serial_ports_in_use/compute_serial_ports_in_use_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_serial_ports_in_use: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [] @@ -44,7 +44,7 @@ class Test_compute_instance_serial_ports_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -90,7 +90,7 @@ class Test_compute_instance_serial_ports_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -136,7 +136,7 @@ class Test_compute_instance_serial_ports_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -182,7 +182,7 @@ class Test_compute_instance_serial_ports_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -228,7 +228,7 @@ class Test_compute_instance_serial_ports_in_use: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_service_test.py b/tests/providers/gcp/services/compute/compute_service_test.py index 8a62c379e9..2aa43a7a96 100644 --- a/tests/providers/gcp/services/compute/compute_service_test.py +++ b/tests/providers/gcp/services/compute/compute_service_test.py @@ -28,9 +28,9 @@ class TestComputeService: assert len(compute_client.zones) == 1 assert "zone1" in compute_client.zones - assert len(compute_client.projects) == 1 - assert compute_client.projects[0].id == GCP_PROJECT_ID - assert compute_client.projects[0].enable_oslogin + assert len(compute_client.compute_projects) == 1 + assert compute_client.compute_projects[0].id == GCP_PROJECT_ID + assert compute_client.compute_projects[0].enable_oslogin assert len(compute_client.instances) == 2 assert compute_client.instances[0].name == "instance1" diff --git a/tests/providers/gcp/services/compute/compute_shielded_vm_enabled/compute_shielded_vm_enabled_test.py b/tests/providers/gcp/services/compute/compute_shielded_vm_enabled/compute_shielded_vm_enabled_test.py index 0af10dfd81..2c77bb428f 100644 --- a/tests/providers/gcp/services/compute/compute_shielded_vm_enabled/compute_shielded_vm_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_shielded_vm_enabled/compute_shielded_vm_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_instance_shielded_vm_enabled: def test_compute_no_instances(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [] @@ -44,7 +44,7 @@ class Test_compute_instance_shielded_vm_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -90,7 +90,7 @@ class Test_compute_instance_shielded_vm_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] @@ -136,7 +136,7 @@ class Test_compute_instance_shielded_vm_enabled: project_id=GCP_PROJECT_ID, ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.instances = [instance] diff --git a/tests/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled_test.py b/tests/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled_test.py index d150432850..402c5c4e44 100644 --- a/tests/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled_test.py +++ b/tests/providers/gcp/services/compute/compute_subnet_flow_logs_enabled/compute_subnet_flow_logs_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_compute_subnet_flow_logs_enabled: def test_compute_no_subnets(self): - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.subnets = [] @@ -37,7 +37,7 @@ class Test_compute_subnet_flow_logs_enabled: region="global", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.subnets = [subnet] @@ -78,7 +78,7 @@ class Test_compute_subnet_flow_logs_enabled: region="global", ) - compute_client = mock.MagicMock + compute_client = mock.MagicMock() compute_client.project_ids = [GCP_PROJECT_ID] compute_client.subnets = [subnet] diff --git a/tests/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled_test.py b/tests/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled_test.py index f187bfd1a8..8b54535b69 100644 --- a/tests/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled_test.py +++ b/tests/providers/gcp/services/dataproc/dataproc_encrypted_with_cmks_disabled/dataproc_encrypted_with_cmks_disabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_dataproc_encrypted_with_cmks_disabled: def test_dataproc_no_clsuters(self): - dataproc_client = mock.MagicMock + dataproc_client = mock.MagicMock() dataproc_client.clusters = [] with mock.patch( @@ -25,7 +25,7 @@ class Test_dataproc_encrypted_with_cmks_disabled: assert len(result) == 0 def test_one_compliant_cluster(self): - dataproc_client = mock.MagicMock + dataproc_client = mock.MagicMock() dataproc_client.project_ids = [GCP_PROJECT_ID] with mock.patch( @@ -63,7 +63,7 @@ class Test_dataproc_encrypted_with_cmks_disabled: assert result[0].location == "global" def test_cluster_without_encryption(self): - dataproc_client = mock.MagicMock + dataproc_client = mock.MagicMock() dataproc_client.project_ids = [GCP_PROJECT_ID] with mock.patch( diff --git a/tests/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled_test.py b/tests/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled_test.py index 101c109987..383207807e 100644 --- a/tests/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled_test.py +++ b/tests/providers/gcp/services/dns/dns_dnssec_disabled/dns_dnssec_disabled_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_dns_dnssec_disabled: def test_dns_no_managed_zones(self): - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.managed_zones = [] dns_client.region = GCP_EU1_LOCATION @@ -53,7 +53,7 @@ class Test_dns_dnssec_disabled: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION @@ -104,7 +104,7 @@ class Test_dns_dnssec_disabled: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec_test.py b/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec_test.py index ae2252f6ff..4c99fa4b26 100644 --- a/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec_test.py +++ b/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_key_sign_in_dnssec/dns_rsasha1_in_use_to_key_sign_in_dnssec_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_dns_rsasha1_in_use_to_key_sign_in_dnssec: def test_dns_no_managed_zones(self): - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.managed_zones = [] dns_client.region = GCP_EU1_LOCATION @@ -53,7 +53,7 @@ class Test_dns_rsasha1_in_use_to_key_sign_in_dnssec: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION @@ -104,7 +104,7 @@ class Test_dns_rsasha1_in_use_to_key_sign_in_dnssec: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec_test.py b/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec_test.py index 66e0dcae88..f0bb105f9d 100644 --- a/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec_test.py +++ b/tests/providers/gcp/services/dns/dns_rsasha1_in_use_to_zone_sign_in_dnssec/dns_rsasha1_in_use_to_zone_sign_in_dnssec_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_dns_rsasha1_in_use_to_zone_sign_in_dnssec: def test_dns_no_managed_zones(self): - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.managed_zones = [] dns_client.region = GCP_EU1_LOCATION @@ -53,7 +53,7 @@ class Test_dns_rsasha1_in_use_to_zone_sign_in_dnssec: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION @@ -104,7 +104,7 @@ class Test_dns_rsasha1_in_use_to_zone_sign_in_dnssec: project_id=GCP_PROJECT_ID, ) - dns_client = mock.MagicMock + dns_client = mock.MagicMock() dns_client.project_ids = [GCP_PROJECT_ID] dns_client.managed_zones = [managed_zone] dns_client.region = GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled_test.py b/tests/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled_test.py index d687650a64..7c6a40e5b5 100644 --- a/tests/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled_test.py +++ b/tests/providers/gcp/services/gcr/gcr_container_scanning_enabled/gcr_container_scanning_enabled_test.py @@ -1,22 +1,35 @@ from unittest import mock +from prowler.providers.gcp.models import GCPProject from prowler.providers.gcp.services.serviceusage.serviceusage_service import Service from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_gcr_container_scanning_enabled: def test_serviceusage_no_active_services(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = {} serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled import ( gcr_container_scanning_enabled, @@ -36,7 +49,7 @@ class Test_gcr_container_scanning_enabled: assert result[0].location == serviceusage_client.region def test_serviceusage_active_cloudasset(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = { GCP_PROJECT_ID: [ Service( @@ -48,13 +61,25 @@ class Test_gcr_container_scanning_enabled: } serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.gcr.gcr_container_scanning_enabled.gcr_container_scanning_enabled import ( gcr_container_scanning_enabled, diff --git a/tests/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account_test.py b/tests/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account_test.py index aa9c672374..ad86f37b0c 100644 --- a/tests/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account_test.py +++ b/tests/providers/gcp/services/gke/gke_cluster_no_default_service_account/gke_cluster_no_default_service_account_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_gke_cluster_no_default_service_account: def test_gke_no_clusters(self): - gke_client = mock.MagicMock + gke_client = mock.MagicMock() gke_client.clusters = {} with mock.patch( @@ -38,7 +38,7 @@ class Test_gke_cluster_no_default_service_account: ) } - gke_client = mock.MagicMock + gke_client = mock.MagicMock() gke_client.project_ids = [GCP_PROJECT_ID] gke_client.clusters = clusters @@ -81,7 +81,7 @@ class Test_gke_cluster_no_default_service_account: ) } - gke_client = mock.MagicMock + gke_client = mock.MagicMock() gke_client.project_ids = [GCP_PROJECT_ID] gke_client.clusters = clusters @@ -131,7 +131,7 @@ class Test_gke_cluster_no_default_service_account: ) } - gke_client = mock.MagicMock + gke_client = mock.MagicMock() gke_client.project_ids = [GCP_PROJECT_ID] gke_client.clusters = clusters @@ -181,7 +181,7 @@ class Test_gke_cluster_no_default_service_account: ) } - gke_client = mock.MagicMock + gke_client = mock.MagicMock() gke_client.project_ids = [GCP_PROJECT_ID] gke_client.clusters = clusters diff --git a/tests/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled_test.py b/tests/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled_test.py index 0ef576792b..395cffb6f0 100644 --- a/tests/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled_test.py +++ b/tests/providers/gcp/services/iam/iam_account_access_approval_enabled/iam_account_access_approval_enabled_test.py @@ -1,22 +1,35 @@ from re import search from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_iam_account_access_approval_enabled: def test_iam_no_settings(self): - accessapproval_client = mock.MagicMock + accessapproval_client = mock.MagicMock() accessapproval_client.settings = {} accessapproval_client.project_ids = [GCP_PROJECT_ID] accessapproval_client.region = "global" + accessapproval_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.iam.iam_account_access_approval_enabled.iam_account_access_approval_enabled.accessapproval_client", - new=accessapproval_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.iam.iam_account_access_approval_enabled.iam_account_access_approval_enabled.accessapproval_client", + new=accessapproval_client, + ), ): from prowler.providers.gcp.services.iam.iam_account_access_approval_enabled.iam_account_access_approval_enabled import ( iam_account_access_approval_enabled, @@ -35,20 +48,33 @@ class Test_iam_account_access_approval_enabled: assert result[0].location == "global" def test_iam_project_with_settings(self): - cloudresourcemanager_client = mock.MagicMock - accessapproval_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + accessapproval_client = mock.MagicMock() accessapproval_client.project_ids = [GCP_PROJECT_ID] accessapproval_client.region = "global" + accessapproval_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.iam.iam_account_access_approval_enabled.iam_account_access_approval_enabled.accessapproval_client", - new=accessapproval_client, - ), mock.patch( - "prowler.providers.gcp.services.iam.iam_service.cloudresourcemanager_client", - new=cloudresourcemanager_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.iam.iam_account_access_approval_enabled.iam_account_access_approval_enabled.accessapproval_client", + new=accessapproval_client, + ), + mock.patch( + "prowler.providers.gcp.services.iam.iam_service.cloudresourcemanager_client", + new=cloudresourcemanager_client, + ), ): from prowler.providers.gcp.services.iam.iam_service import Setting diff --git a/tests/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled_test.py b/tests/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled_test.py index 7275a6da6b..974e79749f 100644 --- a/tests/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled_test.py +++ b/tests/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_prov class Test_iam_audit_logs_enabled: def test_iam_no_projects(self): - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.projects = [] cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.region = "global" @@ -33,7 +33,7 @@ class Test_iam_audit_logs_enabled: project1 = Project(id=GCP_PROJECT_ID, audit_logging=True) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.projects = [project1] cloudresourcemanager_client.region = "global" @@ -70,7 +70,7 @@ class Test_iam_audit_logs_enabled: project1 = Project(id=GCP_PROJECT_ID, audit_logging=False) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.projects = [project1] cloudresourcemanager_client.region = "global" diff --git a/tests/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled_test.py b/tests/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled_test.py index cdb4f70797..9cab9443d4 100644 --- a/tests/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled_test.py +++ b/tests/providers/gcp/services/iam/iam_cloud_asset_inventory_enabled/iam_cloud_asset_inventory_enabled_test.py @@ -1,22 +1,35 @@ from unittest import mock +from prowler.providers.gcp.models import GCPProject from prowler.providers.gcp.services.serviceusage.serviceusage_service import Service from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_iam_cloud_asset_inventory_enabled: def test_serviceusage_no_active_services(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = {} serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled import ( iam_cloud_asset_inventory_enabled, @@ -36,7 +49,7 @@ class Test_iam_cloud_asset_inventory_enabled: assert result[0].location == serviceusage_client.region def test_serviceusage_active_cloudasset(self): - serviceusage_client = mock.MagicMock + serviceusage_client = mock.MagicMock() serviceusage_client.active_services = { GCP_PROJECT_ID: [ Service( @@ -46,15 +59,27 @@ class Test_iam_cloud_asset_inventory_enabled: ) ] } + serviceusage_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } serviceusage_client.project_ids = [GCP_PROJECT_ID] serviceusage_client.region = "global" - with mock.patch( - "prowler.providers.common.provider.Provider.get_global_provider", - return_value=set_mocked_gcp_provider(), - ), mock.patch( - "prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled.serviceusage_client", - new=serviceusage_client, + with ( + mock.patch( + "prowler.providers.common.provider.Provider.get_global_provider", + return_value=set_mocked_gcp_provider(), + ), + mock.patch( + "prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled.serviceusage_client", + new=serviceusage_client, + ), ): from prowler.providers.gcp.services.iam.iam_cloud_asset_inventory_enabled.iam_cloud_asset_inventory_enabled import ( iam_cloud_asset_inventory_enabled, diff --git a/tests/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level_test.py b/tests/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level_test.py index 479236b411..a6c16a230e 100644 --- a/tests/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level_test.py +++ b/tests/providers/gcp/services/iam/iam_no_service_roles_at_project_level/iam_no_service_roles_at_project_level_test.py @@ -1,15 +1,25 @@ from re import search from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_iam_no_service_roles_at_project_level: def test_iam_no_bindings(self): - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.bindings = [] cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -56,10 +66,19 @@ class Test_iam_no_service_roles_at_project_level: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding1, binding2, binding3] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -101,7 +120,7 @@ class Test_iam_no_service_roles_at_project_level: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding] cloudresourcemanager_client.region = "global" @@ -145,7 +164,7 @@ class Test_iam_no_service_roles_at_project_level: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding] cloudresourcemanager_client.region = "global" diff --git a/tests/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured_test.py b/tests/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured_test.py index c9ea843b20..cd32be1aa3 100644 --- a/tests/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured_test.py +++ b/tests/providers/gcp/services/iam/iam_organization_essential_contacts_configured/iam_organization_essential_contacts_configured_test.py @@ -6,7 +6,7 @@ from tests.providers.gcp.gcp_fixtures import set_mocked_gcp_provider class Test_iam_organization_essential_contacts_configured: def test_iam_no_organizations(self): - essentialcontacts_client = mock.MagicMock + essentialcontacts_client = mock.MagicMock() essentialcontacts_client.organizations = [] essentialcontacts_client.region = "global" with mock.patch( @@ -25,7 +25,7 @@ class Test_iam_organization_essential_contacts_configured: assert len(result) == 0 def test_iam_org_with_contacts(self): - essentialcontacts_client = mock.MagicMock + essentialcontacts_client = mock.MagicMock() essentialcontacts_client.region = "global" essentialcontacts_client.organizations = [] with mock.patch( @@ -59,7 +59,7 @@ class Test_iam_organization_essential_contacts_configured: assert result[0].location == "global" def test_iam_org_without_contacts(self): - essentialcontacts_client = mock.MagicMock + essentialcontacts_client = mock.MagicMock() essentialcontacts_client.region = "global" essentialcontacts_client.organizations = [] with mock.patch( diff --git a/tests/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties_test.py b/tests/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties_test.py index d65b893fd9..1bc0366e91 100644 --- a/tests/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties_test.py +++ b/tests/providers/gcp/services/iam/iam_role_kms_enforce_separation_of_duties/iam_role_kms_enforce_separation_of_duties_test.py @@ -1,15 +1,25 @@ from re import search from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_iam_role_kms_enforce_separation_of_duties: def test_iam_no_bindings(self): - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.bindings = [] cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -56,10 +66,19 @@ class Test_iam_role_kms_enforce_separation_of_duties: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding1, binding2, binding3] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -107,10 +126,19 @@ class Test_iam_role_kms_enforce_separation_of_duties: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding1, binding2, binding3] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties_test.py b/tests/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties_test.py index 4cd3988d17..c06a82f065 100644 --- a/tests/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties_test.py +++ b/tests/providers/gcp/services/iam/iam_role_sa_enforce_separation_of_duties/iam_role_sa_enforce_separation_of_duties_test.py @@ -1,15 +1,25 @@ from re import search from unittest import mock +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import GCP_PROJECT_ID, set_mocked_gcp_provider class Test_iam_role_sa_enforce_separation_of_duties: def test_iam_no_bindings(self): - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.bindings = [] cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -56,10 +66,19 @@ class Test_iam_role_sa_enforce_separation_of_duties: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding1, binding2, binding3] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -107,10 +126,19 @@ class Test_iam_role_sa_enforce_separation_of_duties: project_id=GCP_PROJECT_ID, ) - cloudresourcemanager_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() cloudresourcemanager_client.project_ids = [GCP_PROJECT_ID] cloudresourcemanager_client.bindings = [binding1, binding2, binding3] cloudresourcemanager_client.region = "global" + cloudresourcemanager_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges_test.py b/tests/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges_test.py index a4f6618b18..5d06d77ea4 100644 --- a/tests/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges_test.py +++ b/tests/providers/gcp/services/iam/iam_sa_no_administrative_privileges/iam_sa_no_administrative_privileges_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_iam_sa_no_administrative_privileges: def test_iam_no_sa(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -31,8 +31,8 @@ class Test_iam_sa_no_administrative_privileges: assert len(result) == 0 def test_iam_sa_no_bindings(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -80,8 +80,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_binding_no_match_email(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -141,8 +141,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_viewer_role_binding(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -202,8 +202,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_admin_role_binding(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -263,8 +263,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_owner_role_binding(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -324,8 +324,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_editor_role_binding(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -385,8 +385,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_other_editor_role_binding(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -446,8 +446,8 @@ class Test_iam_sa_no_administrative_privileges: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_role_binding_different_email(self): - cloudresourcemanager_client = mock.MagicMock - iam_client = mock.MagicMock + cloudresourcemanager_client = mock.MagicMock() + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys_test.py b/tests/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys_test.py index 2c9d734377..f4b1725a71 100644 --- a/tests/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys_test.py +++ b/tests/providers/gcp/services/iam/iam_sa_no_user_managed_keys/iam_sa_no_user_managed_keys_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_iam_sa_no_user_managed_keys: def test_iam_no_sa(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -32,7 +32,7 @@ class Test_iam_sa_no_user_managed_keys: assert len(result) == 0 def test_iam_sa_no_keys(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -73,7 +73,7 @@ class Test_iam_sa_no_user_managed_keys: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_no_user_managed_keys(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -125,7 +125,7 @@ class Test_iam_sa_no_user_managed_keys: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_user_managed_keys(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -177,7 +177,7 @@ class Test_iam_sa_no_user_managed_keys: assert result[0].resource_name == iam_client.service_accounts[0].name def test_iam_sa_mixed_keys(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days_test.py b/tests/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days_test.py index 620f5483d6..c803111a9d 100644 --- a/tests/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days_test.py +++ b/tests/providers/gcp/services/iam/iam_sa_user_managed_key_rotate_90_days/iam_sa_user_managed_key_rotate_90_days_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_iam_sa_user_managed_key_rotate_90_days: def test_iam_no_sa(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -32,7 +32,7 @@ class Test_iam_sa_user_managed_key_rotate_90_days: assert len(result) == 0 def test_iam_sa_no_keys(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -64,7 +64,7 @@ class Test_iam_sa_user_managed_key_rotate_90_days: assert len(result) == 0 def test_iam_sa_user_managed_key_rotate_90_days(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -119,7 +119,7 @@ class Test_iam_sa_user_managed_key_rotate_90_days: assert result[0].resource_name == iam_client.service_accounts[0].email def test_iam_sa_user_managed_key_no_rotate_90_days(self): - iam_client = mock.MagicMock + iam_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible_gcp_test.py b/tests/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible_gcp_test.py index 91e6046063..6ecb07be4b 100644 --- a/tests/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible_gcp_test.py +++ b/tests/providers/gcp/services/kms/kms_key_not_publicly_accessible/kms_key_not_publicly_accessible_gcp_test.py @@ -9,7 +9,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_kms_key_not_publicly_accessible_gcp: def test_kms_no_key(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -31,7 +31,7 @@ class Test_kms_key_not_publicly_accessible_gcp: assert len(result) == 0 def test_kms_key_public(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -89,7 +89,7 @@ class Test_kms_key_not_publicly_accessible_gcp: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_private(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -147,7 +147,7 @@ class Test_kms_key_not_publicly_accessible_gcp: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_no_member(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled_test.py b/tests/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled_test.py index f79e7ad725..f0761be29f 100644 --- a/tests/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled_test.py +++ b/tests/providers/gcp/services/kms/kms_key_rotation_enabled/kms_key_rotation_enabled_test.py @@ -10,7 +10,7 @@ from tests.providers.gcp.gcp_fixtures import ( class Test_kms_key_rotation_enabled: def test_kms_no_key(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -32,7 +32,7 @@ class Test_kms_key_rotation_enabled: assert len(result) == 0 def test_kms_key_no_next_rotation_time_and_no_rotation_period(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -88,7 +88,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_no_next_rotation_time_and_big_rotation_period(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -145,7 +145,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_no_next_rotation_time_and_appropriate_rotation_period(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -202,7 +202,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_no_rotation_period_and_big_next_rotation_time(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -262,7 +262,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_no_rotation_period_and_appropriate_next_rotation_time(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -322,7 +322,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_rotation_period_greater_90_days_and_big_next_rotation_time(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -385,7 +385,7 @@ class Test_kms_key_rotation_enabled: def test_kms_key_rotation_period_greater_90_days_and_appropriate_next_rotation_time( self, ): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -446,7 +446,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_rotation_period_less_90_days_and_big_next_rotation_time(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -509,7 +509,7 @@ class Test_kms_key_rotation_enabled: def test_kms_key_rotation_period_less_90_days_and_appropriate_next_rotation_time( self, ): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", @@ -570,7 +570,7 @@ class Test_kms_key_rotation_enabled: assert result[0].project_id == kms_client.crypto_keys[0].project_id def test_kms_key_rotation_with_fractional_seconds(self): - kms_client = mock.MagicMock + kms_client = mock.MagicMock() with mock.patch( "prowler.providers.common.provider.Provider.get_global_provider", diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled_test.py index e3e46ad4db..f028c074e8 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_audit_configuration_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_audit_configuration_changes_e logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_audit_configuration_changes_e == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled_test.py index 488c9182eb..aae14998c7 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled/logging_log_metric_filter_and_alert_for_bucket_permission_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_bucket_permission_changes_ena logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_bucket_permission_changes_ena == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled_test.py index 5d9e620abb..11b8453bc0 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled/logging_log_metric_filter_and_alert_for_custom_role_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_custom_role_changes_enabled: logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_custom_role_changes_enabled: == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled_test.py index b3c1b4cfec..285dfffbfa 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled/logging_log_metric_filter_and_alert_for_project_ownership_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_project_ownership_changes_ena logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_project_ownership_changes_ena == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled_test.py index 480c6a7bc7..733b0b58f6 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled/logging_log_metric_filter_and_alert_for_sql_instance_configuration_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_sql_instance_configuration_ch logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_sql_instance_configuration_ch == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled_test.py index 928bafd5d4..1dc34eb7b2 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_ena logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_firewall_rule_changes_ena == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled_test.py index 94ac9386ea..11d7a56961 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled: logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_network_changes_enabled: == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled_test.py b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled_test.py index c01a7a30bc..300235adb9 100644 --- a/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled_test.py +++ b/tests/providers/gcp/services/logging/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled/logging_log_metric_filter_and_alert_for_vpc_network_route_changes_enabled_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -57,6 +58,15 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_network_route_changes_ena logging_client.metrics = [] logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } monitoring_client.alert_policies = [] @@ -71,7 +81,7 @@ class Test_logging_log_metric_filter_and_alert_for_vpc_network_route_changes_ena == f"There are no log metric filters or alerts associated in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION diff --git a/tests/providers/gcp/services/logging/logging_sink_created/logging_sink_created_test.py b/tests/providers/gcp/services/logging/logging_sink_created/logging_sink_created_test.py index 8015efdba4..66b1fd2f1a 100644 --- a/tests/providers/gcp/services/logging/logging_sink_created/logging_sink_created_test.py +++ b/tests/providers/gcp/services/logging/logging_sink_created/logging_sink_created_test.py @@ -1,5 +1,6 @@ from unittest.mock import MagicMock, patch +from prowler.providers.gcp.models import GCPProject from tests.providers.gcp.gcp_fixtures import ( GCP_EU1_LOCATION, GCP_PROJECT_ID, @@ -46,6 +47,15 @@ class Test_logging_sink_created: logging_client.project_ids = [GCP_PROJECT_ID] logging_client.region = GCP_EU1_LOCATION logging_client.sinks = [] + logging_client.projects = { + GCP_PROJECT_ID: GCPProject( + id=GCP_PROJECT_ID, + number="123456789012", + name="test", + labels={}, + lifecycle_state="ACTIVE", + ) + } check = logging_sink_created() result = check.execute() @@ -56,7 +66,7 @@ class Test_logging_sink_created: == f"There are no logging sinks to export copies of all the log entries in project {GCP_PROJECT_ID}." ) assert result[0].resource_id == GCP_PROJECT_ID - assert result[0].resource_name == "" + assert result[0].resource_name == "test" assert result[0].project_id == GCP_PROJECT_ID assert result[0].location == GCP_EU1_LOCATION