Back to Checks
Organization has a security contact defined
organizations_security_contact_defined
Service: organizationsSeverity: medium
OfficialBuilt-inVerified
Categories:resilience
Resource Type:NotDefined
MongoDB Atlas organizations specify a designated security contact email to receive security notifications and advisories.
Assesses whether this contact is configured at the organization level.
Risk
Missing or stale security contact causes critical advisories and incident alerts to be missed or delayed, slowing containment and patching. This elevates risks to confidentiality (undetected data access), integrity (malicious changes persist), and availability (abuse or outages escalate).
Run this check with Prowler
Run in Prowler CloudRun
prowler mongodbatlas --checks organizations_security_contact_definedRecommendation
Define a monitored distribution list as the security contact.
- Ensure 24/7 coverage and escalation
- Keep it current and test delivery
- Integrate with IR/ticketing workflows
- Apply least privilege and document ownership
Remediation
CLI
curl --digest -u "<PUBLIC_KEY>:<PRIVATE_KEY>" -H "Content-Type: application/json" -X PATCH "https://cloud.mongodb.com/api/atlas/v2/orgs/<ORG_ID>/settings" -d '{"securityContact":"<EMAIL_ADDRESS>"}'Other
1Sign in to MongoDB Atlas
2In the top bar, select your organization from the Organizations menu
3Go to Organization Settings
4In Atlas Security Contact Information, click Edit
5Enter the security contact email and click Save
Check Code
from typing import List
from prowler.lib.check.models import Check, CheckReportMongoDBAtlas
from prowler.providers.mongodbatlas.services.organizations.organizations_client import (
organizations_client,
)
class organizations_security_contact_defined(Check):
"""Check if organization has a Security Contact defined
This class verifies that MongoDB Atlas organizations have a security contact
defined to receive security-related notifications.
"""
def execute(self) -> List[CheckReportMongoDBAtlas]:
"""Execute the MongoDB Atlas organization security contact defined check
Iterates over all organizations and checks if they have a security contact
defined to receive security-related notifications.
Returns:
List[CheckReportMongoDBAtlas]: A list of reports for each organization
"""
findings = []
for organization in organizations_client.organizations.values():
report = CheckReportMongoDBAtlas(
metadata=self.metadata(), resource=organization
)
if organization.settings.security_contact:
report.status = "PASS"
report.status_extended = (
f"Organization {organization.name} has a security contact defined: "
f"{organization.settings.security_contact}"
)
else:
report.status = "FAIL"
report.status_extended = (
f"Organization {organization.name} does not have a security contact "
f"defined to receive security-related notifications."
)
findings.append(report)
return findings