mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-23 20:42:02 +00:00
feat(policy): extract Policy resource metadata automated (#6558)
This commit is contained in:
committed by
GitHub
parent
ee7d32d460
commit
dc80b011f2
+5
-5
@@ -8,13 +8,13 @@ class policy_ensure_asc_enforcement_enabled(Check):
|
||||
|
||||
for subscription_name, policies in policy_client.policy_assigments.items():
|
||||
if "SecurityCenterBuiltIn" in policies:
|
||||
report = Check_Report_Azure(self.metadata())
|
||||
report.status = "PASS"
|
||||
report = Check_Report_Azure(
|
||||
metadata=self.metadata(),
|
||||
resource_metadata=policies["SecurityCenterBuiltIn"],
|
||||
)
|
||||
report.subscription = subscription_name
|
||||
report.resource_name = "SecurityCenterBuiltIn"
|
||||
report.resource_id = policies["SecurityCenterBuiltIn"].id
|
||||
report.status = "PASS"
|
||||
report.status_extended = f"Policy assigment '{policies['SecurityCenterBuiltIn'].id}' is configured with enforcement mode '{policies['SecurityCenterBuiltIn'].enforcement_mode}'."
|
||||
|
||||
if policies["SecurityCenterBuiltIn"].enforcement_mode != "Default":
|
||||
report.status = "FAIL"
|
||||
report.status_extended = f"Policy assigment '{policies['SecurityCenterBuiltIn'].id}' is not configured with enforcement mode Default."
|
||||
|
||||
@@ -7,7 +7,6 @@ from prowler.providers.azure.azure_provider import AzureProvider
|
||||
from prowler.providers.azure.lib.service.service import AzureService
|
||||
|
||||
|
||||
########################## Policy
|
||||
class Policy(AzureService):
|
||||
def __init__(self, provider: AzureProvider):
|
||||
super().__init__(PolicyClient, provider)
|
||||
@@ -27,6 +26,7 @@ class Policy(AzureService):
|
||||
{
|
||||
policy_assigment.name: PolicyAssigment(
|
||||
id=policy_assigment.id,
|
||||
name=policy_assigment.name,
|
||||
enforcement_mode=policy_assigment.enforcement_mode,
|
||||
)
|
||||
}
|
||||
@@ -42,4 +42,5 @@ class Policy(AzureService):
|
||||
@dataclass
|
||||
class PolicyAssigment:
|
||||
id: str
|
||||
name: str
|
||||
enforcement_mode: str
|
||||
|
||||
+54
-34
@@ -13,12 +13,15 @@ class Test_policy_ensure_asc_enforcement_enabled:
|
||||
policy_client = mock.MagicMock
|
||||
policy_client.policy_assigments = {}
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled import (
|
||||
policy_ensure_asc_enforcement_enabled,
|
||||
@@ -32,12 +35,15 @@ class Test_policy_ensure_asc_enforcement_enabled:
|
||||
policy_client = mock.MagicMock
|
||||
policy_client.policy_assigments = {AZURE_SUBSCRIPTION_ID: {}}
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled import (
|
||||
policy_ensure_asc_enforcement_enabled,
|
||||
@@ -52,16 +58,21 @@ class Test_policy_ensure_asc_enforcement_enabled:
|
||||
resource_id = uuid4()
|
||||
policy_client.policy_assigments = {
|
||||
AZURE_SUBSCRIPTION_ID: {
|
||||
"policy-1": PolicyAssigment(id=resource_id, enforcement_mode="Default")
|
||||
"policy-1": PolicyAssigment(
|
||||
id=resource_id, name="policy-1", enforcement_mode="Default"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled import (
|
||||
policy_ensure_asc_enforcement_enabled,
|
||||
@@ -73,21 +84,26 @@ class Test_policy_ensure_asc_enforcement_enabled:
|
||||
|
||||
def test_policy_subscription_asc_default(self):
|
||||
policy_client = mock.MagicMock
|
||||
resource_id = uuid4()
|
||||
resource_id = str(uuid4())
|
||||
policy_client.policy_assigments = {
|
||||
AZURE_SUBSCRIPTION_ID: {
|
||||
"SecurityCenterBuiltIn": PolicyAssigment(
|
||||
id=resource_id, enforcement_mode="Default"
|
||||
id=resource_id,
|
||||
name="SecurityCenterBuiltIn",
|
||||
enforcement_mode="Default",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled import (
|
||||
policy_ensure_asc_enforcement_enabled,
|
||||
@@ -107,22 +123,26 @@ class Test_policy_ensure_asc_enforcement_enabled:
|
||||
|
||||
def test_policy_subscription_asc_not_default(self):
|
||||
policy_client = mock.MagicMock
|
||||
resource_id = uuid4()
|
||||
resource_id = str(uuid4())
|
||||
policy_client.policy_assigments = {
|
||||
AZURE_SUBSCRIPTION_ID: {
|
||||
"SecurityCenterBuiltIn": PolicyAssigment(
|
||||
id=resource_id,
|
||||
name="SecurityCenterBuiltIn",
|
||||
enforcement_mode="DoNotEnforce",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
with mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
), mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
with (
|
||||
mock.patch(
|
||||
"prowler.providers.common.provider.Provider.get_global_provider",
|
||||
return_value=set_mocked_azure_provider(),
|
||||
),
|
||||
mock.patch(
|
||||
"prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled.policy_client",
|
||||
new=policy_client,
|
||||
),
|
||||
):
|
||||
from prowler.providers.azure.services.policy.policy_ensure_asc_enforcement_enabled.policy_ensure_asc_enforcement_enabled import (
|
||||
policy_ensure_asc_enforcement_enabled,
|
||||
|
||||
@@ -13,7 +13,9 @@ from tests.providers.azure.azure_fixtures import (
|
||||
def mock_policy_assigments(_):
|
||||
return {
|
||||
AZURE_SUBSCRIPTION_ID: {
|
||||
"policy-1": PolicyAssigment(id="id-1", enforcement_mode="Default")
|
||||
"policy-1": PolicyAssigment(
|
||||
id="id-1", name="policy-1", enforcement_mode="Default"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user