Back to Checks
SMN topics have at least one confirmed subscription
smn_topic_subscriptions
Service: smnSeverity: low
OfficialBuilt-inVerified
Categories:logging
Resource Type:HUAWEICLOUD::SMN::Topic
Ensure that SMN notification topics have at least one confirmed subscription so alerts can be delivered to recipients.
Risk
Topics without confirmed subscriptions cannot deliver notifications, meaning critical alerts may go unnoticed by operations and security teams.
Run this check with Prowler
Run in Prowler CloudRun
prowler huaweicloud --checks smn_topic_subscriptionsRecommendation
Add and confirm at least one subscription for each SMN topic so notifications can be delivered.
Remediation
CLI
hcloud SMN AddSubscription --topic_urn=<topic_urn> --protocol=<protocol> --endpoint=<endpoint>Other
1Log on to the Huawei Cloud console.
2Navigate to Simple Message Notification (SMN).
3Select the topic without subscriptions.
4Click Add Subscription.
5Configure the subscription protocol and endpoint.
6Confirm the subscription.
Check Code
from prowler.lib.check.models import Check, CheckReportHuaweiCloud
from prowler.providers.huaweicloud.services.smn.smn_client import smn_client
class smn_topic_subscriptions(Check):
"""Check if SMN topics have at least one subscription configured."""
def execute(self) -> list[CheckReportHuaweiCloud]:
findings = []
for topic in smn_client.topics:
report = CheckReportHuaweiCloud(
metadata=self.metadata(),
resource=topic,
)
report.region = topic.region
report.resource_id = topic.topic_id
report.resource_name = topic.name
report.resource_arn = topic.topic_urn
if topic.confirmed_subscription_count > 0:
report.status = "PASS"
report.status_extended = (
f"SMN topic '{topic.name}' ({topic.topic_id}) has "
f"{topic.confirmed_subscription_count} confirmed subscription(s)."
)
else:
report.status = "FAIL"
report.status_extended = (
f"SMN topic '{topic.name}' ({topic.topic_id}) has no confirmed "
"subscriptions. Notifications will not be delivered."
)
findings.append(report)
return findings