fix(rds): add default key value to RDS event (#5961)

(cherry picked from commit 466ec0e66c)

# Conflicts:
#	prowler/providers/aws/services/rds/rds_service.py
This commit is contained in:
Rubén De la Torre Vico
2024-11-29 14:01:06 +01:00
parent d75b434ac6
commit 36f6ac80b4

View File

@@ -351,6 +351,88 @@ class RDS(AWSService):
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
<<<<<<< HEAD
=======
def _describe_db_event_subscriptions(self, regional_client):
logger.info("RDS - Describe Event Subscriptions...")
try:
describe_event_subscriptions_paginator = regional_client.get_paginator(
"describe_event_subscriptions"
)
events_exist = False
for page in describe_event_subscriptions_paginator.paginate():
for event in page["EventSubscriptionsList"]:
try:
arn = f"arn:{self.audited_partition}:rds:{regional_client.region}:{self.audited_account}:es:{event['CustSubscriptionId']}"
if not self.audit_resources or (
is_resource_filtered(
arn,
self.audit_resources,
)
):
self.db_event_subscriptions.append(
EventSubscription(
id=event["CustSubscriptionId"],
arn=arn,
sns_topic_arn=event["SnsTopicArn"],
status=event["Status"],
source_type=event.get("SourceType", ""),
source_id=event.get("SourceIdsList", []),
event_list=event.get("EventCategoriesList", []),
enabled=event["Enabled"],
region=regional_client.region,
)
)
events_exist = True
except Exception as error:
logger.error(
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
if not events_exist:
# No Event Subscriptions for that region
self.db_event_subscriptions.append(
EventSubscription(
id="",
arn="",
sns_topic_arn="",
status="",
source_type="",
source_id=[],
event_list=[],
enabled=False,
region=regional_client.region,
tags=[],
)
)
except Exception as error:
logger.error(
f"{regional_client.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
def _list_tags(self, resource: any):
try:
if getattr(resource, "region", "") and getattr(resource, "arn", ""):
resource.tags = (
self.regional_clients[resource.region]
.list_tags_for_resource(ResourceName=resource.arn)
.get("TagList", [])
)
except Exception as error:
logger.error(
f"{resource.region} -- {error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}"
)
class Certificate(BaseModel):
id: str
arn: str
type: str
valid_from: datetime
valid_till: datetime
customer_override: bool
customer_override_valid_till: Optional[datetime]
>>>>>>> 466ec0e66 (fix(rds): add default key value to RDS event (#5961))
class DBInstance(BaseModel):
id: str