Application Integration | Amazon Simple Notification Service (SNS) Flashcards
What is Amazon Simple Notification Service (Amazon SNS)?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Amazon Simple Notification Service (Amazon SNS) is a web service that makes it easy to set up, operate, and send notifications from the cloud. It provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers or other applications. It is designed to make web-scale computing easier for developers. Amazon SNS follows the “publish-subscribe” (pub-sub) messaging paradigm, with notifications being delivered to clients using a “push” mechanism that eliminates the need to periodically check or “poll” for new information and updates. With simple APIs requiring minimal up-front development effort, no maintenance or management overhead and pay-as-you-go pricing, Amazon SNS gives developers an easy mechanism to incorporate a powerful notification system with their applications.
How can I get started using Amazon SNS?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
You can create an Amazon SNS topic and publish messages in a few steps by completing our 10-minute tutorial, Send Fanout Notifications.
For additional detail, see the Amazon SNS Developer Guide, and sample code in the Resource Center.
What are the benefits of using Amazon SNS?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS offers several benefits making it a versatile option for building and integrating loosely-coupled, distributed applications:
Instantaneous, push-based delivery (no polling)
Simple APIs and easy integration with applications
Flexible message delivery over multiple transport protocols
Inexpensive, pay-as-you-go model with no up-front costs
Web-based AWS Management Console offers the simplicity of a point-and-click interface
What are some example uses for Amazon SNS notifications?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
The Amazon SNS service can support a wide variety of needs including event notification, monitoring applications, workflow systems, time-sensitive information updates, mobile applications, and any other application that generates or consumes notifications. For example, Amazon SNS can be used in workflow systems to relay events among distributed computer applications, move data between data stores or update records in business systems. Event updates and notifications concerning validation, approval, inventory changes and shipment status are immediately delivered to relevant system components as well as end-users. A common pattern is to use SNS to publish messages to Amazon SQS message queues to reliably send messages to one or many system components asynchronously. Another example use for Amazon SNS is to relay time-critical events to mobile applications and devices. Since Amazon SNS is both highly reliable and scalable, it provides significant advantages to developers who build applications that rely on real-time events.
How does Amazon SNS work?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
It is very easy to get started with Amazon SNS. Developers must first create a “topic” which is an “access point” – identifying a specific subject or event type – for publishing messages and allowing clients to subscribe for notifications. Once a topic is created, the topic owner can set policies for it such as limiting who can publish messages or subscribe to notifications, or specifying which notification protocols will be supported (i.e. HTTP/HTTPS, email, SMS). Subscribers are clients interested in receiving notifications from topics of interest; they can subscribe to a topic or be subscribed by the topic owner. Subscribers specify the protocol and end-point (URL, email address, etc.) for notifications to be delivered. When publishers have information or updates to notify their subscribers about, they can publish a message to the topic – which immediately triggers Amazon SNS to deliver the message to all applicable subscribers.
How is Amazon SNS different from Amazon SQS?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Amazon Simple Queue Service (SQS) and Amazon SNS are both messaging services within AWS, which provide different benefits for developers. Amazon SNS allows applications to send time-critical messages to multiple subscribers through a “push” mechanism, eliminating the need to periodically check or “poll” for updates. Amazon SQS is a message queue service used by distributed applications to exchange messages through a polling model, and can be used to decouple sending and receiving components. Amazon SQS provides flexibility for distributed components of applications to send and receive messages without requiring each component to be concurrently available.
A common pattern is to use SNS to publish messages to Amazon SQS queues to reliably send messages to one or many system components asynchronously.
How is Amazon SNS different from Amazon MQ?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Amazon MQ, Amazon SQS, and Amazon SNS are messaging services that are suitable for anyone from startups to enterprises. If you’re using messaging with existing applications, and want to move your messaging to the cloud quickly and easily, we recommend you consider Amazon MIt supports industry-standard APIs and protocols so you can switch from any standards-based message broker to Amazon MQ without rewriting the messaging code in your applications. If you are building brand new applications in the cloud, we recommend you consider Amazon SQS and Amazon SNS. Amazon SQS and SNS are lightweight, fully managed message queue and topic services that scale almost infinitely and provide simple, easy-to-use APIs. You can use Amazon SQS and SNS to decouple and scale microservices, distributed systems, and serverless applications, and improve reliability.
Overview
Amazon Simple Notification Service (SNS) | Application Integration
How can I get started using Amazon SNS?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
To sign up for Amazon SNS, click the “Sign up for Amazon SNS” button on the Amazon SNS detail page. You must have an Amazon Web Services account to access this service; if you do not already have one, you will be prompted to create one when you begin the Amazon SNS sign-up process. After signing up, please refer to the Amazon SNS documentation and Getting Started Guide to begin using Amazon SNS. Using the AWS Management Console, you can easily create topics, add subscribers, send notifications, and edit topic policies – all from your browser.
Is Amazon SNS supported in the AWS Management Console?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS is supported in the AWS Management Console which provides a point-and-click, web-based interface to access and manage Amazon SNS. Using the AWS Management Console, you can create topics, add subscribers, and send notifications – all from your browser. In addition, the AWS Management Console makes it easy to publish messages to your endpoint of choice (HTTP, SQS, Lambda, mobile push, email, or SMS) and edit topic policies to control publisher and subscriber access.
What are the Amazon SNS service access points in each region?
Overview
Amazon Simple Notification Service (SNS) | Application Integration
Please refer to the AWS Regions and Endpoints section of the AWS documentation for the latest list of all Amazon SNS service access points.
Can I get a history of SNS API calls made on my account for security analysis and operational troubleshooting purposes?
Billing
Amazon Simple Notification Service (SNS) | Application Integration
Yes. SNS supports AWS CloudTrail, a web service that records AWS API calls for your account and delivers log files to you. With CloudTrail, you can obtain a history of such information as the identity of the API caller, the time of the API call, the source IP address of the API caller, the request parameters, and the response elements returned by SNS.
SNS currently supports CloudTrail auditing for authenticated calls only. CloudTrail Audit logs for unauthenticated ConfirmSubscription and Unsubscribe calls are not available at this time. For more information, see the CloudTrail section of the SNS Developer Guide.
To receive a history of SNS API calls made on your account, simply turn on AWS CloudTrail in the AWS Management Console. To learn more about AWS CloudTrail, click here.
How much does Amazon SNS cost?
Billing
Amazon Simple Notification Service (SNS) | Application Integration
With Amazon SNS, there is no minimum fee and you pay only for what you use. Users pay $0.50 per 1 million Amazon SNS Requests, $0.06 per 100,000 notification deliveries over HTTP, and $2.00 per 100,000 notification deliveries over email. For SMS messaging, users can send 100 free notification deliveries, and for subsequent messages charges vary by destination country.
Amazon SNS also includes a Free Tier, where users can get started with Amazon SNS for free. Each month, Amazon SNS customers incur no charges for the first 1 million Amazon SNS requests, no charges for the first 100,000 notifications over HTTP, no charges for the first 100 notifications over SMS, and no charges for the first 1,000 notifications over email.
Please refer to the Amazon SNS Details page for additional details on pricing and data transfer costs.
How will I be charged and billed for my use of Amazon SNS?
Billing
Amazon Simple Notification Service (SNS) | Application Integration
There are no set-up fees to begin using the service. At the end of the month, your credit card will automatically be charged for that month’s usage. You can view your charges for the current billing period at any time on the Amazon Web Services web site by logging into your Amazon Web Services account and clicking “Account Activity” under “Your Web Services Account”.
When does billing of my Amazon SNS use begin and end?
Billing
Amazon Simple Notification Service (SNS) | Application Integration
Your Amazon SNS billing cycle begins on the first day of each month and ends on the last day of each month. Your monthly charges will be totalled at the end of each month.
Do your prices include taxes?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Except as otherwise noted, our prices are exclusive of applicable taxes and duties, including VAT and applicable sales tax. For customers with a Japanese billing address, use of AWS services is subject to Japanese Consumption Tax. Learn more.
What is the format of an Amazon SNS topic?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Topic names are limited to 256 characters. Alphanumeric characters plus hyphens (-) and underscores (_) are allowed. Topic names must be unique within an AWS account. After you delete a topic, you can reuse the topic name. When a topic is created, Amazon SNS will assign a unique ARN (Amazon Resource Name) to the topic, which will include the service name (SNS), region, AWS ID of the user and the topic name. The ARN will be returned as part of the API call to create the topic. Whenever a publisher or subscriber needs to perform any action on the topic, they should reference the unique topic ARN.
The following is the ARN for a topic named “mytopic” created by a user with the AWS account ID “123456789012” and hosted in the US East region:
arn:aws:sns:us-east-1:1234567890123456:mytopic Note: Users should NOT attempt to build the topic ARN from its separate components – they should always use the name returned from the API call to create the topic.
What are the available operations for Amazon SNS and who can perform these operations?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS provides a set of simple APIs to enable event notifications for topic owners, subscribers and publishers.
Owner operations:
CreateTopic – Create a new topic.
DeleteTopic – Delete a previously created topic.
ListTopics – List of topics owned by a particular user (AWS ID).
ListSubscriptionsByTopic – List of subscriptions for a particular topic
SetTopicAttributes – Set/modify topic attributes, including setting and modifying publisher/subscriber permissions, transports supported, etc.
GetTopicAttributes – Get/view existing attributes of a topic
AddPermission – Grant access to selected users for the specified actions
RemovePermission – Remove permissions for selected users for the specified actions
Subscriber operations:
Subscribe – Register a new subscription on a particular topic, which will generate a confirmation message from Amazon SNS
ConfirmSubscription – Respond to a subscription confirmation message, confirming the subscription request to receive notifications from the subscribed topic
UnSubscribe – Cancel a previously registered subscription
ListSubscriptions – List subscriptions owned by a particular user (AWS ID)
Publisher operations:
Publish: Publish a new message to the topic.
Why are there two different APIs to list subscriptions?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
The two APIs to list subscriptions perform different functions and return different results:
The ListSubscriptionsByTopic API allows a topic owner to see the list of all subscribers actively registered to a topic.
The ListSubscriptions API allows a user to get a list of all their active subscriptions (to one or more topics).
What are the different delivery formats/transports for receiving notifications?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
In order for customers to have broad flexibility of delivery mechanisms, Amazon SNS supports notifications over multiple transport protocols. Customers can select one the following transports as part of the subscription requests:
“HTTP”, “HTTPS” – Subscribers specify a URL as part of the subscription registration; notifications will be delivered through an HTTP POST to the specified URL.
“Email”, “Email-JSON” – Messages are sent to registered addresses as email. Email-JSON sends notifications as a JSON object, while Email sends text-based email.
“SQS” – Users can specify an SQS standard queue as the endpoint; Amazon SNS will enqueue a notification message to the specified queue (which subscribers can then process using SQS APIs such as ReceiveMessage, DeleteMessage, etc.). Note that FIFO queues are not currently supported.
“SMS” – Messages are sent to registered phone numbers as SMS text messages.
Can topic owners control the transports that are allowed on topics they create/own?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Topic owners can configure specific transports on their topics by setting the appropriate permissions through access control policies.
How does an owner set Access Control policies?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Please refer to the Amazon SNS Getting Started Guide for an overview of setting access control policies.
Can a single topic support subscriptions over multiple protocols/transports?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Subscribers to an Amazon SNS topic can receive notifications on any transport supported by the topic. A topic can support subscriptions and notification deliveries over multiple transports.
Can subscribers selectively receive only a subset of messages published to a topic?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Yes, you can use message filtering on Amazon Simple Notification Service (SNS) to build simpler and more streamlined pub/sub architectures. Message filtering enables Amazon SNS topic subscribers to selectively receive only a subset of the messages they are interested in, as opposed to receiving all messages published to a topic. For more details, try our 10-minute tutorial, Filter Messages Published to Topics, or see the documentation.
Can Amazon SNS be used with other AWS services?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS can be used with other AWS services such as Amazon SQS, Amazon EC2 and Amazon S3. Here is an example of how an order processing workflow system uses Amazon SNS with Amazon EC2, SQS, and SimpleDB. In this workflow system, messages are sent between application components whenever a transaction occurs or an order advances through the order processing pipeline. When a customer initially places an order, the transaction is first recorded in Amazon SimpleDB and an application running on Amazon EC2 forwards the order request to a payment processor which debits the customer’s credit card or bank account. Once approved, an order confirmation message is published to an Amazon SNS topic. In this case, the topic has various subscribers over Email/HTTP – merchant, customer and supply chain partners – and notifications sent by Amazon SNS for that topic can instantly update all of them that payment processing was successful. Notifications can also be used to orchestrate an order processing system running on EC2, where notifications sent over HTTP can trigger real-time processing in related components such as an inventory system or a shipping service. By integrating Amazon SNS with Amazon SQS, all notifications delivered are also persisted in an Amazon SQS queue where they are processed by an auditing application at a future time.
Is Amazon SNS available in all regions where AWS services are available?
Features and Functionality
Amazon Simple Notification Service (SNS) | Application Integration
Please refer to the AWS Regions and Endpoints section of the AWS documentation for the most up to date information on Amazon SNS availability.
How soon can customers recreate topics with previously used topic names?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
Topic names should typically be available for reuse approximately 30-60 seconds after the previous topic with the same name has been deleted. The exact time will depend on the number of subscriptions which were active on the topic – topics with a few subscribers will be available instantly for reuse, topics with larger subscriber lists may take longer.
How would a user subscribe for notifications to be delivered over email?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
To receive email notifications for a particular topic, a subscriber should specify “Email” or “Email-JSON” as the protocol and provide a valid email address as the end-point. This can be done using the AWS Management Console or by calling the Amazon SNS API directly. Amazon SNS will then send an email with a confirmation link to the specified email address, and require the user monitoring the email address to explicitly opt-in for receiving email notifications from that particular topic. Once the user confirms the subscription by clicking the provided link, all messages published to the topic will be delivered to that email address.
Why does Amazon SNS provide two different transports to receive notifications over email?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
The two email transports are provided for two distinct types of customers/end-users. “Email-JSON” sends notifications as a JSON object, and is meant for applications to programmatically process emails. The “Email” transport is meant for end-users/consumers and notifications are regular, text-based messages which are easily readable.
Can a user change the Subject and Display name for notifications sent over Email/Email-JSON?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS allows users to specify the Subject field for emails as a parameter passed in to the Publish API call and can be different for every message published. The Display name for topics can be set using the SetTopicAttributes API – this name applies to all emails sent from this topic.
Do subscribers need to specifically configure their email settings to receive notifications from Amazon SNS?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
In most cases, users should be able to receive subscription confirmations and notifications from Amazon SNS without doing anything specific. However, there could be cases where the email provider’s default settings or other user-specific configurations mistakenly redirect the emails to the junk/spam folder. To ensure that users see confirmation messages and notifications sent from Amazon SNS, users can add “no-reply@sns.amazonaws.com” to their contact lists and check their junk/spam folders for messages from Amazon SNS.
In the case of passing in an SQS queue as an endpoint, will users need to create the queue prior to subscribing? What permissions will the queue require?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
Using the SQS console, users should create the SQS queue prior to subscribing it to a Topic. Select this queue on the console, and from the ‘Queue Actions’ in the menu bar, select ‘Subscribe Queue to SNS Topic’ from the drop-down list. In the subscribe dialog box, select the topic from the ‘Choose a Topic’ drop-down list, and click the ‘Subscribe’ button. For complete step-by-step instructions, please refer to the Amazon SNS documentation.
Are Amazon SQS FIFO queues compatible with Amazon Simple Notification Service (SNS)?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS does not currently support forwarding messages to Amazon SQS FIFO queues. You can use SNS to forward messages to standard queues.
How would a developer setup an Amazon SQS queue to receive Amazon SNS notifications?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
To have Amazon SNS deliver notifications to an SQS queue, a developer should subscribe to a topic specifying “SQS” as the transport and a valid SQS standard queue as the end-point. In order to allow the SQS queue to receive notifications from Amazon SNS, the SQS queue owner must subscribe the SQS queue to the Topic for Amazon SNS to successfully deliver messages to the queue.
If the user owns both the Amazon SNS topic being subscribed to and the SQS queue receiving the notifications, nothing further is required. Any message published to the topic will automatically be delivered to the specified SQS queue. If the user owning the SQS queue is not the owner of the topic, Amazon SNS will require an explicit confirmation to the subscription request.
Please refer to the Amazon SNS documentation for further details on subscribing an SQS queue to a topic and setting access control policies for SQS queues.
How can I fanout identical messages to multiple SQS queues?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
Create an SNS topic first using SNS. Then create and subscribe multiple SQS standard queues to the SNS topic. Now whenever a message is sent to the SNS topic, the message will be fanned out to the SQS queues, i.e. SNS will deliver the message to all the SQS queues that are subscribed to the topic.
What is the format of structured notification messages sent by Amazon SNS?
Transports
Amazon Simple Notification Service (SNS) | Application Integration
The notification message sent by Amazon SNS for deliveries over HTTP, HTTPS, Email-JSON and SQS transport protocols will consist of a simple JSON object, which will include the following information:
MessageId: A Universally Unique Identifier, unique for each notification published.
Timestamp: The time (in GMT) at which the notification was published.
TopicArn: The topic to which this message was published
Type: The type of the delivery message, set to “Notification” for notification deliveries.
UnsubscribeURL: A link to unsubscribe the end-point from this topic, and prevent receiving any further notifications.
Message: The payload (body) of the message, as received from the publisher.
Subject: The Subject field – if one was included as an optional parameter to the publish API call along with the message.
Signature: Base64-encoded “SHA1withRSA” signature of the Message, MessageId, Subject (if present), Type, Timestamp, and Topic values.
SignatureVersion: Version of the Amazon SNS signature used.
Notification messages sent over the “Email” transport only contain the payload (message body) as received from the publisher.
How would a user subscribe for notifications to be delivered over SMS?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Please refer to the ‘SMS Related Question’ section below.
How can users secure the messages sent to my topics?
Security
Amazon Simple Notification Service (SNS) | Application Integration
All API calls made to Amazon SNS are validated for the user’s AWS Id and the signature. In addition, we recommend that users secure their data over the wire by connecting to our secure SSL end-points.
Who can create a topic?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Topics can only be created by users with valid AWS IDs who have signed up for Amazon SNS. The easiest way to create a topic is to use the AWS Management Console. It can also be created through the CreateTopic API. The AWS Management Console is available at: http://aws.amazon.com/console
Can multiple users publish to a single topic?
Security
Amazon Simple Notification Service (SNS) | Application Integration
A topic owner can set explicit permissions to allow more than one user (with a valid AWS ID) to publish to a topic. By default, only topic owners have permissions to publish to a topic.
How can the owner grant/revoke publish or subscribe permissions on a topic?
Security
Amazon Simple Notification Service (SNS) | Application Integration
The AddPermission and RemovePermission APIs provide a simple interface for developers to add and remove permissions for a topic. However, for conditional access and more advanced use cases, users should use access control policies to manage permissions. The easiest way to manage permissions is to use the AWS Management Console. The AWS Management Console is available at: http://aws.amazon.com/console
How does a topic owner give access to subscribers? Do subscribers have to have valid AWS IDs?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS makes it easy for users with and without AWS IDs to receive notifications. The owner of the topic can grant/restrict access to subscribers by setting appropriate permissions for the topic using Access Control policies. Users can receive notifications from Amazon SNS in two ways:
Users with AWS IDs: Subscribers with valid AWS IDs (please refer to this link for details on obtaining AWS IDs) can subscribe to any topic directly – as long as the topic owner has granted them permissions to do so. The AWS IDs will be validated as part of the subscription registration.
Other users: Topic owners can subscribe and register end-points on behalf of users without AWS IDs.
In both cases, the owner of the subscription endpoint needs to explicitly opt-in and confirm the subscription by replying to confirmation message sent by Amazon SNS.
How will Amazon SNS authenticate API calls?
Security
Amazon Simple Notification Service (SNS) | Application Integration
All API calls made to Amazon SNS will validate authenticity by requiring that requests be signed with the secret key of the AWS ID account and verifying the signature included in the requests.
How does Amazon SNS validate a subscription request to ensure that notifications will not be sent to users as spam?
Security
Amazon Simple Notification Service (SNS) | Application Integration
As part of the subscription registration, Amazon SNS will ensure that notifications are only sent to valid, registered subscribers/end-points. To prevent spam and ensure that a subscriber end-point is really interested in receiving notifications from a particular topic, Amazon SNS requires an explicit opt-in from subscribers using a 2-part handshake:
i. When a user first calls the Subscribe API and subscribes an end-point, Amazon SNS will send a confirmation message to the specified end-point.
ii. On receiving the confirmation message at the end-point, the subscriber should confirm the subscription request by sending a valid response. Only then will Amazon SNS consider the subscription request to be valid. If there is no response to the challenge, Amazon SNS will not send any notifications to that end-point. The exact mechanism of confirming the subscription varies by the transport protocol selected:
For HTTP/HTTPS notifications, Amazon SNS will first POST the confirmation message (containing a token) to the specified URL. The application monitoring the URL will have to call the ConfirmSubscription API with the token included token.
For Email and Email-JSON notifications, Amazon SNS will send an email to the specified address containing an embedded link. The user will need to click on the embedded link to confirm the subscription request.
For SQS notifications, Amazon SNS will enqueue a challenge message containing a token to the specified queue. The application monitoring the queue will have to call the ConfirmSubscription API with the token.
Note: The explicit “opt-in” steps described above are not required for the specific case where you subscribe your Amazon SQS queue to your Amazon SNS topic – and both are “owned” by the same AWS account.
How long will subscription requests remain pending, while waiting to be confirmed?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Token included in the confirmation message sent to end-points on a subscription request are valid for 3 days.
Who can change permissions on a topic?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Only the owner of the topic can change permissions for that topic.
How can users verify that notification messages are sent from Amazon SNS?
Security
Amazon Simple Notification Service (SNS) | Application Integration
To ensure the authenticity of the notifications, Amazon SNS will sign all notification deliveries using a cryptographically secure, asymmetric mechanism (private-public key pair based on certificates). Amazon SNS will publish its certificate to a well-known location (e.g. http://sns.us-east-1.amazonaws.com/SimpleNotificationService.pem for the US East region) and sign messages with the private key of that certificate. Developers/applications can obtain the certificate and validate the signature in the notifications with the certificate’s public key, to ensure that the notification was indeed sent out by Amazon SNS. For further details on certificate locations, please refer to the Amazon SNS details page.
Do publishers have to sign messages as well?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS requires publishers with AWS IDs to validate their messages by signing messages with their secret AWS key; the signature is then validated by Amazon SNS.
Can a publisher/subscriber use SSL to secure messages?
Security
Amazon Simple Notification Service (SNS) | Application Integration
Yes, both publishers and subscribers can use SSL to help secure the channel to send and receive messages. Publishers can connect to Amazon SNS over HTTPS and publish messages over the SSL channel. Subscribers should register an SSL-enabled end-point as part of the subscription registration, and notifications will be delivered over a SSL channel to that end-point.
What permissions does a subscriber need to allow Amazon SNS to send notifications to a registered endpoint?
Security
Amazon Simple Notification Service (SNS) | Application Integration
The owner of the end-point receiving the notifications has to grant permissions for Amazon SNS to send messages to that end-point.
How can subscriptions be unsubscribed?
Compliance
Amazon Simple Notification Service (SNS) | Application Integration
Subscribers can be unsubscribed either by the topic owner, the subscription owner or others – depending on the mechanism used for confirming the subscription request.
A subscription that was confirmed with the AuthenticateOnUnsubscribe flag set to True in the call to the ConfirmSubscription API call can only be unsubscribed by a topic owner or the subscription owner.
If the subscription was confirmed anonymously without the AuthenticateOnUnsubscribe flag set to True, then it can be anonymously unsubscribed.
In all cases except when unsubscribed by the subscription owner, a final cancellation message will be sent to the end-point, allowing the endpoint owner to easily re-subscribe to the topic (if the Unsubscribe request was unintended or in error). For further details on the ConfirmSubscription API, please refer to the Amazon SNS documentation.
Is Amazon SNS HIPAA eligible?
Compliance
Amazon Simple Notification Service (SNS) | Application Integration
Yes, the AWS HIPAA compliance program includes Amazon SNS as a HIPAA eligible Service. If you have an executed Business Associate Agreement (BAA) with AWS, you can now use Amazon SNS to build HIPAA-compliant applications. If you don’t have a BAA or have other questions about using AWS for your HIPAA-compliant applications, contact us for more information.
To learn more, see the following resources:
AWS HIPAA Compliance page
AWS Cloud Computing in Healthcare page
To see the current list of compliance programs that Amazon SNS is in scope for, see AWS Services in Scope by Compliance Program.
What else is Amazon SNS compliant with?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
Please see AWS Services in Scope by Compliance Program for the latest information about SNS and other AWS services.
How reliable is my data once published to Amazon SNS?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
Amazon SNS stores all topic and message information within Amazon’s proven network infrastructure and datacenters. At least three copies of the data are stored across multiple availability zones, which means that no single computer or network failure renders Amazon SNS inaccessible.
Will a notification contain more than one message?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
No, all notification messages will contain a single published message.
How many times will a subscriber receive each message?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
Although most of the time each message will be delivered to your application exactly once, the distributed nature of Amazon SNS and transient network conditions could result in occasional, duplicate messages at the subscriber end. Developers should design their applications such that processing a message more than once does not create any errors or inconsistencies.
Will messages be delivered to me in the exact order they were published?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
The Amazon SNS service will attempt to deliver messages from the publisher in the order they were published into the topic. However, network issues could potentially result in out-of-order messages at the subscriber end.
Can a message be deleted after being published?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
No, once a message has been successfully published to a topic, it cannot be recalled.
Does Amazon SNS guarantee that messages are delivered to the subscribed endpoint?
Reliability
Amazon Simple Notification Service (SNS) | Application Integration
When a message is published to a topic, Amazon SNS will attempt to deliver notifications to all subscribers registered for that topic. Due to potential Internet issues or Email delivery restrictions, sometimes the notification may not successfully reach an HTTP or Email end-point. In the case of HTTP, an SNS Delivery Policy can be used to control the retry pattern (linear, geometric, exponential backoff), maximum and minimum retry delays, and other parameters. If it is critical that all published messages be successfully processed, developers should have notifications delivered to an SQS queue (in addition to notifications over other transports).