fix(gcp): check cloudsql sslMode (#4635)

This commit is contained in:
Pedro Martín authored and GitHub committed 2024-08-05 12:12:00 -04:00
1 parent c8bc54aa48
commit 96d9cbd8af
25 files changed
+218 -83

No files matched your search

@@ -28,7 +28,7 @@ class Test_cloudsql_instance_ssl_connections:
result = check.execute()
assert len(result) == 0
def test_cloudsql_instance_ssl_connections_enabled(self):
def test_cloudsql_instance_ssl_connections_enabled_and_ssl_mode_encrypted(self):
cloudsql_client = mock.MagicMock
with mock.patch(
@@ -52,7 +52,8 @@ class Test_cloudsql_instance_ssl_connections:
ip_addresses=[],
region=GCP_EU1_LOCATION,
public_ip=False,
ssl=True,
require_ssl=True,
ssl_mode="ENCRYPTED_ONLY",
automated_backups=True,
authorized_networks=[],
flags=[],
@@ -73,7 +74,7 @@ class Test_cloudsql_instance_ssl_connections:
assert result[0].location == GCP_EU1_LOCATION
assert result[0].project_id == GCP_PROJECT_ID
def test_cloudsql_instance_ssl_connections_disabled(self):
def test_cloudsql_instance_ssl_connections_enabled_and_ssl_mode_not_encrypted(self):
cloudsql_client = mock.MagicMock
with mock.patch(
@@ -97,7 +98,56 @@ class Test_cloudsql_instance_ssl_connections:
ip_addresses=[],
region=GCP_EU1_LOCATION,
public_ip=False,
ssl=False,
require_ssl=True,
ssl_mode="ALLOW_UNENCRYPTED_AND_ENCRYPTED",
automated_backups=True,
authorized_networks=[],
flags=[],
project_id=GCP_PROJECT_ID,
)
]
check = cloudsql_instance_ssl_connections()
result = check.execute()
assert len(result) == 1
assert result[0].status == "FAIL"
assert (
result[0].status_extended
== "Database Instance instance1 does not require SSL connections."
)
assert result[0].resource_id == "instance1"
assert result[0].resource_name == "instance1"
assert result[0].location == GCP_EU1_LOCATION
assert result[0].project_id == GCP_PROJECT_ID
def test_cloudsql_instance_ssl_connections_disabled_and_ssl_mode_not_encrypted(
self,
):
cloudsql_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.cloudsql.cloudsql_instance_ssl_connections.cloudsql_instance_ssl_connections.cloudsql_client",
new=cloudsql_client,
):
from prowler.providers.gcp.services.cloudsql.cloudsql_instance_ssl_connections.cloudsql_instance_ssl_connections import (
cloudsql_instance_ssl_connections,
)
from prowler.providers.gcp.services.cloudsql.cloudsql_service import (
Instance,
)
cloudsql_client.instances = [
Instance(
name="instance1",
version="POSTGRES_15",
ip_addresses=[],
region=GCP_EU1_LOCATION,
public_ip=False,
require_ssl=False,
ssl_mode="ALLOW_UNENCRYPTED_AND_ENCRYPTED",
automated_backups=True,
authorized_networks=[],
flags=[],