docs.aws.amazon.com
Open in
urlscan Pro
108.138.36.55
Public Scan
Submitted URL: http://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html#implement-least-privilege-access
Effective URL: https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html
Submission: On January 31 via api from US — Scanned from DE
Effective URL: https://docs.aws.amazon.com/sns/latest/dg/sns-security-best-practices.html
Submission: On January 31 via api from US — Scanned from DE
Form analysis
0 forms found in the DOMText Content
SELECT YOUR COOKIE PREFERENCES We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can click “Customize cookies” to decline performance cookies. If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To continue without accepting these cookies, click “Continue without accepting.” To make more detailed choices or learn more, click “Customize cookies.” Accept all cookiesContinue without acceptingCustomize cookies CUSTOMIZE COOKIE PREFERENCES We use cookies and similar tools (collectively, "cookies") for the following purposes. ESSENTIAL Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms. PERFORMANCE Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes. Allow performance category Allowed FUNCTIONAL Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly. Allow functional category Allowed ADVERTISING Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising. Allow advertising category Allowed Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by clicking Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice. CancelSave preferences UNABLE TO SAVE COOKIE PREFERENCES We will only store essential cookies at this time, because we were unable to save your cookie preferences. If you want to change your cookie preferences, try again later using the link in the AWS console footer, or contact support if the problem persists. Dismiss Contact Us English Create an AWS Account 1. AWS 2. ... 3. Documentation 4. Amazon Simple Notification Service 5. Developer Guide Feedback Preferences AMAZON SIMPLE NOTIFICATION SERVICE DEVELOPER GUIDE * What is Amazon SNS? * Features and capabilities * Related services * Accessing Amazon SNS * Pricing for Amazon SNS * Common Amazon SNS scenarios * Working with AWS SDKs * Amazon SNS event sources and destinations * Event sources * Event destinations * Setting up * Getting started * Configuring Amazon SNS * Creating a topic * Subscribing to a topic * Deleting a subscription and topic * Tagging * Configuring tags * Message ordering and deduplication (FIFO topics) * FIFO topics use case * Message ordering details * Message grouping * Message delivery * Message filtering * Message deduplication * Message security * Message durability * Message archiving and replay * For topic owners * For topic subscribers * Code examples * Message publishing * Large message payloads * Extended Client Library for Java * Extended Client Library for Python * Message attributes * Message batching * Message filtering * Subscription filter policy scope * Subscription filter policies * Example filter policies * Filter policy constraints * AND/OR logic * Key matching * Numeric value matching * String value matching * Applying a subscription filter policy * Removing a subscription filter policy * Message data protection * Data protection policies * Data protection policy operations * Data protection policy examples * Creating data protection policies * Using API * Using AWS CLI * Using CloudFormation * Using the AWS Management Console * Using AWS SDK) * Deleting data protection policies * Data identifiers * Managed data identifiers * Sensitive data types: Credentials * Sensitive data types: Devices * Sensitive data types: Financial * Sensitive data types: Protected health information (PHI) * Sensitive data types: Personally identifiable information (PII) * Custom data identifiers * Message delivery * Raw message delivery * Cross-account delivery * Cross-region delivery * Message delivery status * Message delivery retries * Dead-letter queues (DLQs) * Configuring a dead-letter queue * Message archiving and analytics * Application-to-application (A2A) messaging * Fanout to Kinesis Data Firehose delivery streams * Prerequisites * Subscribing a delivery stream to a topic * Delivery stream destinations * Amazon S3 destinations * Archived message format * Analyzing messages * OpenSearch Service destinations * Archived message format * Analyzing messages * Amazon Redshift destinations * Archive table structure * Analyzing messages * HTTP destinations * Delivered message format * Example use case * Creating the initial resources * Creating the delivery stream * Subscribing the delivery stream to the topic * Testing and querying * Example (AWS CloudFormation) * Fanout to Lambda functions * Prerequisites * Subscribing a function to a topic * Fanout to Amazon SQS queues * Subscribing a queue to a topic * Example (AWS CloudFormation) * Fanout to HTTP(S) endpoints * Subscribing an endpoint to a topic * Make sure your endpoint is ready to process messages * Subscribe the HTTP/HTTPS endpoint to the topic * Confirm the subscription * Set the delivery retry policy for the subscription * Give users permissions to publish to the topic * Send messages to the HTTP/HTTPS endpoint * Verifying message signatures * Parsing message formats * Fanout to AWS Event Fork Pipelines * Deploying and testing AWS Event Fork Pipelines * Example AWS Event Fork Pipelines use case * To deploy the sample application * To execute the sample application * To verify the execution of the sample application and its pipelines * To simulate an issue and replay events for recovery * Subscribing an event pipeline to a topic * To deploy and subscribe the event storage and backup pipeline * To deploy and subscribe the event search and analytics pipeline * To deploy and subscribe the event replay pipeline * Using EventBridge Scheduler * Application-to-person (A2P) messaging * Mobile text messaging (SMS) * SMS sandbox * Adding and verifying phone numbers * Deleting phone numbers * Moving out of the SMS sandbox * Origination identities * Sender IDs * Sender ID requirements for France * Sender ID registration requirements for India * Sender ID registration requirements for Singapore * Origination numbers * 10DLC * Registering a company * Editing or deleting a registered company * Registering a 10DLC campaign * Editing or deleting a 10DLC campaign * Associating a long code with a 10DLC campaign * 10DLC cross-account access * Getting information about 10DLC registration issues * Toll-free numbers * Short codes * Person-to-person (P2P) long codes * Requesting SMS support * Requesting short codes * Requesting 10DLC numbers, toll-free numbers, and P2P long codes * Requesting sender IDs * Requesting spending quota increases * Setting SMS preferences * Sending SMS messages * Publishing to a topic * Publishing to a mobile phone * Monitoring SMS activity * Viewing delivery statistics * Viewing CloudWatch metrics and logs * Viewing usage reports * Managing SMS subscriptions * Supported countries and regions * SMS best practices * Mobile push notifications * Setting up a mobile app * Prerequisites * Creating a platform application * Creating a platform endpoint * Adding device tokens or registration IDs * Apple authentication methods * FCM authentication methods * Sending mobile push notifications * Publishing to a topic * Publishing to a mobile device * Publishing with platform-specific payload * Mobile app attributes * Mobile app events * Mobile push API actions * Mobile push API errors * Mobile push TTL * Supported Regions * Mobile push notifications best practices * Email notifications * Code examples * Actions * Add tags to a topic * Check whether a phone number is opted out * Confirm an endpoint owner wants to receive messages * Create a topic * Delete a subscription * Delete a topic * Get the properties of a topic * Get the settings for sending SMS messages * List opted out phone numbers * List the subscribers of a topic * List topics * Publish a message with an attribute * Publish an SMS text message * Publish to a topic * Set a dead-letter queue for a subscription * Set a filter policy * Set the default settings for sending SMS messages * Set topic attributes * Subscribe a Lambda function to a topic * Subscribe a mobile application to a topic * Subscribe an HTTP endpoint to a topic * Subscribe an SQS queue to a topic * Subscribe an email address to a topic * Subscribe with a filter to a topic * Scenarios * Create a platform endpoint for push notifications * Create and publish to a FIFO topic * Publish SMS messages to a topic * Publish a large message * Publish messages to queues * Serverless examples * Invoke a Lambda function from an Amazon SNS trigger * Cross-service examples * Build an app to submit data to a DynamoDB table * Building an Amazon SNS application * Create a serverless application to manage photos * Create an Amazon Textract explorer application * Detect people and objects in a video * Publish messages to queues * Use API Gateway to invoke a Lambda function * Use scheduled events to invoke a Lambda function * Security * Data protection * Data encryption * Encryption at rest * Key management * Enabling SSE for a topic * Enabling SSE for a topic with an encrypted queue subscribed * Internetwork traffic privacy * Creating a VPC endpoint * Creating a VPC policy * Publishing a message from a VPC * Message Data Protection security * Identity and access management * Overview * When to use access control * Key concepts * Architectural overview * Using the Access Policy Language * Evaluation logic * Example cases for Amazon SNS access control * How Amazon Simple Notification Service works with IAM * Identity-based policy examples * Using identity-based policies * Using temporary credentials * API permissions reference * Troubleshooting * Logging and monitoring * Logging API calls using CloudTrail * Monitoring topics using CloudWatch * Compliance validation * Resilience * Infrastructure security * Best practices * Troubleshooting * Active tracing * Documentation history * AWS Glossary Amazon SNS security best practices - Amazon Simple Notification Service AWSDocumentationAmazon Simple Notification ServiceDeveloper Guide Preventative best practices AMAZON SNS SECURITY BEST PRACTICES PDFRSS AWS provides many security features for Amazon SNS. Review these security features in the context of your own security policy. NOTE The guidance for these security features applies to common use cases and implementations. We recommend that you review these best practices in the context of your specific use case, architecture, and threat model. PREVENTATIVE BEST PRACTICES The following are preventative security best practices for Amazon SNS. TOPICS * Ensure topics aren't publicly accessible * Implement least-privilege access * Use IAM roles for applications and AWS services which require Amazon SNS access * Implement server-side encryption * Enforce encryption of data in transit * Consider using VPC endpoints to access Amazon SNS * Ensure subscriptions are not configured to deliver to raw http endpoints ENSURE TOPICS AREN'T PUBLICLY ACCESSIBLE Unless you explicitly require anyone on the internet to be able to read or write to your Amazon SNS topic, you should ensure that your topic isn't publicly accessible (accessible by everyone in the world or by any authenticated AWS user). * Avoid creating policies with Principal set to "". * Avoid using a wildcard (*). Instead, name a specific user or users. IMPLEMENT LEAST-PRIVILEGE ACCESS When you grant permissions, you decide who receives them, which topics the permissions are for, and specific API actions that you want to allow for these topics. Implementing the principle of least privilege is important to reducing security risks. It also helps to reduce the negative effect of errors or malicious intent. Follow the standard security advice of granting least privilege. That is, grant only the permissions required to perform a specific task. You can implement least privilege by using a combination of security policies pertaining to user access. Amazon SNS uses the publisher-subscriber model, requiring three types of user account access: * Administrators – Access to creating, modifying, and deleting topics. Administrators also control topic policies. * Publishers – Access to sending messages to topics. * Subscribers – Access to subscribing to topics. For more information, see the following sections: * Identity and access management in Amazon SNS * Amazon SNS API permissions: Actions and resources reference USE IAM ROLES FOR APPLICATIONS AND AWS SERVICES WHICH REQUIRE AMAZON SNS ACCESS For applications or AWS services, such as Amazon EC2, to access Amazon SNS topics, they must use valid AWS credentials in their AWS API requests. Because these credentials aren't rotated automatically, you shouldn't store AWS credentials directly in the application or EC2 instance. You should use an IAM role to manage temporary credentials for applications or services that need to access Amazon SNS. When you use a role, you don't need to distribute long-term credentials (such as a username, password, and access keys) to an EC2 instance or AWS service, such as AWS Lambda. Instead, the role supplies temporary permissions that applications can use when they make calls to other AWS resources. For more information, see IAM Roles and Common Scenarios for Roles: Users, Applications, and Services in the IAM User Guide. IMPLEMENT SERVER-SIDE ENCRYPTION To mitigate data leakage issues, use encryption at rest to encrypt your messages using a key stored in a different location from the location that stores your messages. Server-side encryption (SSE) provides data encryption at rest. Amazon SNS encrypts your data at the message level when it stores it, and decrypts the messages for you when you access them. SSE uses keys managed in AWS Key Management Service. When you authenticate your request and have access permissions, there is no difference between accessing encrypted and unencrypted topics. For more information, see Encryption at rest and Key management. ENFORCE ENCRYPTION OF DATA IN TRANSIT It's possible, but not recommended, to publish messages that are not encrypted during transit by using HTTP. You can't, however, use HTTP when publishing to an encrypted SNS topic. AWS recommends that you use HTTPS instead of HTTP. When you use HTTPS, messages are automatically encrypted during transit, even if the SNS topic itself isn't encrypted. Without HTTPS, a network-based attacker can eavesdrop on network traffic or manipulate it using an attack such as man-in-the-middle. To enforce only encrypted connections over HTTPS, add the aws:SecureTransport condition in the IAM policy that's attached to unencrypted SNS topics. This forces message publishers to use HTTPS instead of HTTP. You can use the following example policy as a guide: { "Id": "ExamplePolicy", "Version": "2012-10-17", "Statement": [ { "Sid": "AllowPublishThroughSSLOnly", "Action": "SNS:Publish", "Effect": "Deny", "Resource": [ "arn:aws:sns:us-east-1:1234567890:test-topic" ], "Condition": { "Bool": { "aws:SecureTransport": "false" } }, "Principal": "*" } ] } CONSIDER USING VPC ENDPOINTS TO ACCESS AMAZON SNS If you have topics that you must be able to interact with, but these topics must absolutely not be exposed to the internet, use VPC endpoints to limit topic access to only the hosts within a particular VPC. You can use topic policies to control access to topics from specific Amazon VPC endpoints or from specific VPCs. Amazon SNS VPC endpoints provide two ways to control access to your messages: * You can control the requests, users, or groups that are allowed through a specific VPC endpoint. * You can control which VPCs or VPC endpoints have access to your topic using a topic policy. For more information, see Creating the endpoint and Creating an Amazon VPC endpoint policy for Amazon SNS. ENSURE SUBSCRIPTIONS ARE NOT CONFIGURED TO DELIVER TO RAW HTTP ENDPOINTS Avoid configuring subscriptions to deliver to a raw http endpoints. Always have subscriptions delivering to an endpoint domain name. For example, a subscription configured to deliver to an endpoint, http://1.2.3.4/my-path, should be changed to http://my.domain.name/my-path. Javascript is disabled or is unavailable in your browser. To use the Amazon Web Services Documentation, Javascript must be enabled. Please refer to your browser's Help pages for instructions. Document Conventions Infrastructure security Troubleshooting Did this page help you? - Yes Thanks for letting us know we're doing a good job! If you've got a moment, please tell us what we did right so we can do more of it. Did this page help you? - No Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better. DID THIS PAGE HELP YOU? Yes No Provide feedback NEXT TOPIC: Troubleshooting PREVIOUS TOPIC: Infrastructure security NEED HELP? * Try AWS re:Post * Connect with an AWS IQ expert PrivacySite termsCookie preferences © 2024, Amazon Web Services, Inc. or its affiliates. All rights reserved. ON THIS PAGE * Preventative best practices DID THIS PAGE HELP YOU? - NO Thanks for letting us know this page needs work. We're sorry we let you down. If you've got a moment, please tell us how we can make the documentation better. Feedback