Back to Checks
AWS account contact information is current
account_maintain_current_contact_details
Service: accountSeverity: medium
OfficialBuilt-inVerified
Resource Type:Other
AWS account contact information is current for the primary contact and the alternate contacts for security, billing, and operations, with accurate email addresses and phone numbers.
Risk
Outdated or single-person contacts delay security notifications, slow incident response, and complicate account recovery.
AWS may throttle services during abuse mitigation, reducing availability. Missed alerts enable ongoing misuse, risking data exfiltration and unauthorized changes (integrity).
Run this check with Prowler
Run in Prowler CloudRun
prowler aws --checks account_maintain_current_contact_detailsRecommendation
Adopt:
- Primary and alternate contacts for
security,billing,operations - Shared, monitored aliases and SMS-capable phone numbers (non-personal)
- Centralized management across accounts with periodic reviews
- Least privilege for who can modify contact data
- Regular reachability tests and documented ownership
Remediation
CLI
aws account put-alternate-contact --alternate-contact-type=SECURITY --email-address=<SECURITY_EMAIL> --name="<SECURITY_CONTACT_NAME>" --phone-number="<SECURITY_PHONE>" --title="Security"Terraform
# Set the Security alternate contact for the AWS account
resource "aws_account_alternate_contact" "<example_resource_name>" {
alternate_contact_type = "SECURITY" # Critical: ensures AWS can reach your security team
email_address = "<SECURITY_EMAIL>" # Critical: contact destination
name = "<SECURITY_CONTACT_NAME>"
phone_number = "<SECURITY_PHONE>"
title = "Security"
}Other
1Sign in to the AWS Management Console
2Open Billing and Cost Management, then click your account name > Account
3Under Contact information, click Edit, update details, then Update
4Under Alternate contacts, click Edit
5Enter Security contact name, email, and phone (use a team alias), then Update
6Repeat for Billing and Operations if needed
Check Code
from prowler.lib.check.models import Check, Check_Report_AWS
from prowler.providers.aws.services.account.account_client import account_client
# This check has no findings since it is manual
class account_maintain_current_contact_details(Check):
def execute(self):
report = Check_Report_AWS(metadata=self.metadata(), resource={})
report.region = account_client.region
report.resource_id = account_client.audited_account
report.resource_arn = account_client.audited_account_arn
report.status = "MANUAL"
report.status_extended = "Login to the AWS Console. Choose your account name on the top right of the window -> My Account -> Contact Information."
return [report]References
- https://repost.aws/knowledge-center/update-phone-number
- https://support.stax.io/docs/accounts/update-aws-account-contact-details
- https://maartenbruntink.nl/blog/2022/09/26/aws-account-hygiene-101-mass-updating-alternate-account-contacts/
- https://docs.aws.amazon.com/security-ir/latest/userguide/update-account-contact-info.html
- https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-primary.html
- https://repost.aws/knowledge-center/add-update-billing-contact
- https://aws.amazon.com/blogs/security/update-the-alternate-security-contact-across-your-aws-accounts-for-timely-security-notifications/
- https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_accounts_update_contacts.html
- https://docs.aws.amazon.com/accounts/latest/reference/manage-acct-update-contact-alternate.html