feat(postgresql): extract PostgreSQL resource metadata automated (#6560)

This commit is contained in:
Rubén De la Torre Vico
2025-01-16 16:37:55 +01:00
committed by Pepe Fagoaga
parent 1f1b126e79
commit c04e9ed914
7 changed files with 21 additions and 28 deletions
@@ -12,12 +12,11 @@ class postgresql_flexible_server_allow_access_services_disabled(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has allow public access from any Azure service enabled"
if not any(
rule.start_ip == "0.0.0.0" and rule.end_ip == "0.0.0.0"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_connection_throttling_on(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has connection_throttling disabled"
if server.connection_throttling == "ON":
report.status = "PASS"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_enforce_ssl_enabled(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has enforce ssl disabled"
if server.require_secure_transport == "ON":
report.status = "PASS"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_log_checkpoints_on(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has log_checkpoints disabled"
if server.log_checkpoints == "ON":
report.status = "PASS"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_log_connections_on(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has log_connections disabled"
if server.log_connections == "ON":
report.status = "PASS"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_log_disconnections_on(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has log_disconnections disabled"
if server.log_disconnections == "ON":
report.status = "PASS"
@@ -12,12 +12,11 @@ class postgresql_flexible_server_log_retention_days_greater_3(Check):
flexible_servers,
) in postgresql_client.flexible_servers.items():
for server in flexible_servers:
report = Check_Report_Azure(self.metadata())
report = Check_Report_Azure(
metadata=self.metadata(), resource_metadata=server
)
report.subscription = subscription
report.resource_name = server.name
report.resource_id = server.id
report.status = "FAIL"
report.location = server.location
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has log_retention disabled"
if server.log_retention_days:
report.status_extended = f"Flexible Postgresql server {server.name} from subscription {subscription} has log_retention set to {server.log_retention_days}"