fix(resources): add the correct id and names for resources (#7410)

(cherry picked from commit 5a59bb335c)

# Conflicts:
#	prowler/providers/azure/services/defender/defender_container_images_scan_enabled/defender_container_images_scan_enabled.py
#	prowler/providers/azure/services/defender/defender_ensure_defender_for_azure_sql_databases_is_on/defender_ensure_defender_for_azure_sql_databases_is_on.py
#	prowler/providers/azure/services/defender/defender_ensure_defender_for_containers_is_on/defender_ensure_defender_for_containers_is_on.py
#	prowler/providers/gcp/services/compute/compute_project_os_login_enabled/compute_project_os_login_enabled.py
#	prowler/providers/gcp/services/iam/iam_audit_logs_enabled/iam_audit_logs_enabled.py
This commit is contained in:
Pedro Martín committed 2025-04-01 18:31:29 +00:00
1 parent c49b72ddae
commit 49c6721492
22 files changed
+99 -7

No files matched your search

@@ -7,7 +7,14 @@ class defender_container_images_scan_enabled(Check):
findings = []
for subscription, pricings in defender_client.pricings.items():
if "Containers" in pricings:
<<<<<<< HEAD
report = Check_Report_Azure(self.metadata())
=======
report = Check_Report_Azure(
metadata=self.metadata(), resource=pricings["Containers"]
)
report.subscription = subscription
>>>>>>> 5a59bb335 (fix(resources): add the correct id and names for resources (#7410))
report.status = "PASS"
report.subscription = subscription
report.resource_id = pricings["Containers"].resource_id
@@ -7,7 +7,14 @@ class defender_ensure_defender_for_azure_sql_databases_is_on(Check):
findings = []
for subscription, pricings in defender_client.pricings.items():
if "SqlServers" in pricings:
<<<<<<< HEAD
report = Check_Report_Azure(self.metadata())
=======
report = Check_Report_Azure(
metadata=self.metadata(), resource=pricings["SqlServers"]
)
report.subscription = subscription
>>>>>>> 5a59bb335 (fix(resources): add the correct id and names for resources (#7410))
report.status = "PASS"
report.subscription = subscription
report.resource_id = pricings["SqlServers"].resource_id
@@ -7,7 +7,14 @@ class defender_ensure_defender_for_containers_is_on(Check):
findings = []
for subscription, pricings in defender_client.pricings.items():
if "Containers" in pricings:
<<<<<<< HEAD
report = Check_Report_Azure(self.metadata())
=======
report = Check_Report_Azure(
metadata=self.metadata(), resource=pricings["Containers"]
)
report.subscription = subscription
>>>>>>> 5a59bb335 (fix(resources): add the correct id and names for resources (#7410))
report.status = "PASS"
report.subscription = subscription
report.resource_id = pricings["Containers"].resource_id
@@ -40,6 +40,7 @@ class Defender(AzureService):
{
pricing.name: Pricing(
resource_id=pricing.id,
resource_name=pricing.name,
pricing_tier=getattr(pricing, "pricing_tier", None),
free_trial_remaining_time=pricing.free_trial_remaining_time,
extensions=dict(
@@ -222,6 +223,7 @@ class Defender(AzureService):
class Pricing(BaseModel):
resource_id: str
resource_name: str
pricing_tier: str
free_trial_remaining_time: timedelta
extensions: Dict[str, bool] = {}
@@ -5,11 +5,22 @@ from prowler.providers.gcp.services.compute.compute_client import compute_client
class compute_project_os_login_enabled(Check):
def execute(self) -> Check_Report_GCP:
findings = []
<<<<<<< HEAD
for project in compute_client.projects:
report = Check_Report_GCP(self.metadata())
report.project_id = project.id
report.resource_id = project.id
report.location = "global"
=======
for project in compute_client.compute_projects:
report = Check_Report_GCP(
metadata=self.metadata(),
resource=project,
resource_name=project.id,
project_id=project.id,
location=compute_client.region,
)
>>>>>>> 5a59bb335 (fix(resources): add the correct id and names for resources (#7410))
report.status = "PASS"
report.status_extended = f"Project {project.id} has OS Login enabled."
if not project.enable_oslogin:
@@ -7,11 +7,22 @@ from prowler.providers.gcp.services.cloudresourcemanager.cloudresourcemanager_cl
class iam_audit_logs_enabled(Check):
def execute(self) -> Check_Report_GCP:
findings = []
<<<<<<< HEAD
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
=======
for project in cloudresourcemanager_client.cloud_resource_manager_projects:
report = Check_Report_GCP(
metadata=self.metadata(),
resource=project,
resource_name=project.id,
project_id=project.id,
location=cloudresourcemanager_client.region,
)
>>>>>>> 5a59bb335 (fix(resources): add the correct id and names for resources (#7410))
report.status = "PASS"
report.status_extended = f"Audit Logs are enabled for project {project.id}."
if not project.audit_logging:
@@ -54,6 +54,7 @@ class Test_defender_container_images_scan_enabled:
AZURE_SUBSCRIPTION_ID: {
"NotContainers": Pricing(
resource_id=str(uuid4()),
resource_name="Defender plan Servers",
pricing_tier="Free",
free_trial_remaining_time=timedelta(days=1),
)
@@ -81,6 +82,7 @@ class Test_defender_container_images_scan_enabled:
AZURE_SUBSCRIPTION_ID: {
"Containers": Pricing(
resource_id=str(uuid4()),
resource_name="Defender plan for Containers",
pricing_tier="Free",
free_trial_remaining_time=timedelta(days=1),
extensions={},
@@ -112,7 +114,7 @@ class Test_defender_container_images_scan_enabled:
"Containers"
].resource_id
)
assert result[0].resource_name == "Dender plan for Containers"
assert result[0].resource_name == "Defender plan for Containers"
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
def test_defender_subscription_containers_container_images_scan_off(self):
@@ -121,6 +123,7 @@ class Test_defender_container_images_scan_enabled:
AZURE_SUBSCRIPTION_ID: {
"Containers": Pricing(
resource_id=str(uuid4()),
resource_name="Defender plan for Containers",
pricing_tier="Free",
free_trial_remaining_time=timedelta(days=1),
extensions={"ContainerRegistriesVulnerabilityAssessments": False},
@@ -152,7 +155,7 @@ class Test_defender_container_images_scan_enabled:
"Containers"
].resource_id
)
assert result[0].resource_name == "Dender plan for Containers"
assert result[0].resource_name == "Defender plan for Containers"
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
def test_defender_subscription_containers_container_images_scan_on(self):
@@ -161,6 +164,7 @@ class Test_defender_container_images_scan_enabled:
AZURE_SUBSCRIPTION_ID: {
"Containers": Pricing(
resource_id=str(uuid4()),
resource_name="Defender plan for Containers",
pricing_tier="Free",
free_trial_remaining_time=timedelta(days=1),
extensions={"ContainerRegistriesVulnerabilityAssessments": True},
@@ -192,5 +196,5 @@ class Test_defender_container_images_scan_enabled:
"Containers"
].resource_id
)
assert result[0].resource_name == "Dender plan for Containers"
assert result[0].resource_name == "Defender plan for Containers"
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_app_services_is_on:
AZURE_SUBSCRIPTION_ID: {
"AppServices": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_app_services_is_on:
AZURE_SUBSCRIPTION_ID: {
"AppServices": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_arm_is_on:
AZURE_SUBSCRIPTION_ID: {
"Arm": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_arm_is_on:
AZURE_SUBSCRIPTION_ID: {
"Arm": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -61,7 +62,7 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUBSCRIPTION_ID} is set to OFF (pricing tier not standard)."
)
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
assert result[0].resource_name == "Defender plan Servers"
assert result[0].resource_id == resource_id
def test_defender_sql_databases_pricing_tier_standard(self):
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -97,5 +99,5 @@ class Test_defender_ensure_defender_for_azure_sql_databases_is_on:
== f"Defender plan Defender for Azure SQL DB Servers from subscription {AZURE_SUBSCRIPTION_ID} is set to ON (pricing tier standard)."
)
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == "Defender plan Azure SQL DB Servers"
assert result[0].resource_name == "Defender plan Servers"
assert result[0].resource_id == resource_id
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_containers_is_on:
AZURE_SUBSCRIPTION_ID: {
"Containers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -61,7 +62,7 @@ class Test_defender_ensure_defender_for_containers_is_on:
== f"Defender plan Defender for Containers from subscription {AZURE_SUBSCRIPTION_ID} is set to OFF (pricing tier not standard)."
)
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == "Defender plan Container Registries"
assert result[0].resource_name == "Defender plan Servers"
assert result[0].resource_id == resource_id
def test_defender_container_registries_pricing_tier_standard(self):
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_containers_is_on:
AZURE_SUBSCRIPTION_ID: {
"Containers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -97,5 +99,5 @@ class Test_defender_ensure_defender_for_containers_is_on:
== f"Defender plan Defender for Containers from subscription {AZURE_SUBSCRIPTION_ID} is set to ON (pricing tier standard)."
)
assert result[0].subscription == AZURE_SUBSCRIPTION_ID
assert result[0].resource_name == "Defender plan Container Registries"
assert result[0].resource_name == "Defender plan Servers"
assert result[0].resource_id == resource_id
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
AZURE_SUBSCRIPTION_ID: {
"CosmosDbs": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_cosmosdb_is_on:
AZURE_SUBSCRIPTION_ID: {
"CosmosDbs": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -63,6 +64,7 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServerVirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -91,6 +93,7 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"OpenSourceRelationalDatabases": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -119,6 +122,7 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"CosmosDbs": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -147,21 +151,25 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"SqlServerVirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"OpenSourceRelationalDatabases": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"CosmosDbs": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
@@ -198,21 +206,25 @@ class Test_defender_ensure_defender_for_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServers": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"SqlServerVirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"OpenSourceRelationalDatabases": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
),
"CosmosDbs": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
),
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_dns_is_on:
AZURE_SUBSCRIPTION_ID: {
"Dns": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_dns_is_on:
AZURE_SUBSCRIPTION_ID: {
"Dns": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
AZURE_SUBSCRIPTION_ID: {
"KeyVaults": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_keyvault_is_on:
AZURE_SUBSCRIPTION_ID: {
"KeyVaults": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"OpenSourceRelationalDatabases": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -74,6 +75,7 @@ class Test_defender_ensure_defender_for_os_relational_databases_is_on:
AZURE_SUBSCRIPTION_ID: {
"OpenSourceRelationalDatabases": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_server_is_on:
AZURE_SUBSCRIPTION_ID: {
"VirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_server_is_on:
AZURE_SUBSCRIPTION_ID: {
"VirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServerVirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_sql_servers_is_on:
AZURE_SUBSCRIPTION_ID: {
"SqlServerVirtualMachines": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -35,6 +35,7 @@ class Test_defender_ensure_defender_for_storage_is_on:
AZURE_SUBSCRIPTION_ID: {
"StorageAccounts": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Not Standard",
free_trial_remaining_time=0,
)
@@ -71,6 +72,7 @@ class Test_defender_ensure_defender_for_storage_is_on:
AZURE_SUBSCRIPTION_ID: {
"StorageAccounts": Pricing(
resource_id=resource_id,
resource_name="Defender plan Servers",
pricing_tier="Standard",
free_trial_remaining_time=0,
)
@@ -21,6 +21,7 @@ def mock_defender_get_pricings(_):
AZURE_SUBSCRIPTION_ID: {
"Standard": Pricing(
resource_id="resource_id",
resource_name="resource_name",
pricing_tier="pricing_tier",
free_trial_remaining_time=timedelta(days=1),
extensions={},
@@ -138,6 +139,10 @@ class Test_Defender_Service:
defender.pricings[AZURE_SUBSCRIPTION_ID]["Standard"].resource_id
== "resource_id"
)
assert (
defender.pricings[AZURE_SUBSCRIPTION_ID]["Standard"].resource_name
== "resource_name"
)
assert (
defender.pricings[AZURE_SUBSCRIPTION_ID]["Standard"].pricing_tier
== "pricing_tier"
@@ -58,6 +58,7 @@ class Test_compute_project_os_login_enabled:
result[0].status_extended,
)
assert result[0].resource_id == project.id
assert result[0].resource_name == project.id
assert result[0].location == "global"
assert result[0].project_id == GCP_PROJECT_ID
@@ -94,5 +95,6 @@ class Test_compute_project_os_login_enabled:
result[0].status_extended,
)
assert result[0].resource_id == project.id
assert result[0].resource_name == project.id
assert result[0].location == "global"
assert result[0].project_id == GCP_PROJECT_ID
@@ -60,6 +60,7 @@ class Test_iam_audit_logs_enabled:
r.status_extended,
)
assert r.resource_id == GCP_PROJECT_ID
assert r.resource_name == GCP_PROJECT_ID
assert r.project_id == GCP_PROJECT_ID
assert r.location == cloudresourcemanager_client.region
@@ -97,5 +98,6 @@ class Test_iam_audit_logs_enabled:
r.status_extended,
)
assert r.resource_id == GCP_PROJECT_ID
assert r.resource_name == GCP_PROJECT_ID
assert r.project_id == GCP_PROJECT_ID
assert r.location == cloudresourcemanager_client.region