All Tools View Categories About Contact Privacy

SNS/SQS ARN Generator

Build an SNS topic ARN or SQS queue ARN — not the same as an SQS queue URL.

For SQS this builds the ARN, not the queue URL used by application code — they are different identifiers. Runs entirely in your browser.
Fill in region, account id and name to build an ARN.

About SNS/SQS ARN Generator

SNS topic ARNs and SQS queue ARNs share the simplest resource shape in this entire tool family — just a bare name after the account id, with no resource-type keyword or slash separator: arn:aws:sns:region:account:name or arn:aws:sqs:region:account:name. The two services are structurally identical at the ARN level, differing only in the service segment, which is exactly why they’re combined into one generator here with a simple toggle rather than built as two near-duplicate tools.

The form asks for four things: which service (SNS topic or SQS queue), region, account id, and the name. Toggle to SNS and you get a topic ARN, useful in a subscription’s TopicArn parameter or an IAM policy scoping sns:Publish to one topic. Toggle to SQS and you get a queue ARN, used in IAM policies scoping sqs:SendMessage or sqs:ReceiveMessage, in a Lambda event source mapping, or as the target of an SNS-to-SQS subscription. Both are regional, account-scoped resources — the same name could exist independently in different regions or under different accounts — so region and account id are required fields, checked at build time for a real-looking region code and a 12-digit account id.

One distinction is called out explicitly because it trips people up constantly: the SQS ARN built here is not the same thing as the SQS queue URL. The queue URL — something like https://sqs.us-east-1.amazonaws.com/123456789012/my-queue — is what application code and the AWS SDK use over HTTP(S) to actually send and receive messages, and it is what the SQS console and API hand back when you create a queue. The ARN is a different identifier, built from the same underlying region, account, and queue name, but used in a different context entirely: IAM policy Resource fields, SNS subscription endpoints, Lambda event source mapping configuration, and dead-letter queue redrive policies. Confusing the two — pasting a queue URL where an ARN is expected, or vice versa — is one of the most common SQS integration mistakes, and this tool exists specifically to hand you the correct ARN form without accidentally conflating it with the URL you’d find in the console.

FIFO queue names, which SQS requires to end in .fifo, are passed through exactly as typed — the ARN format doesn’t treat FIFO queues any differently from standard ones, so no special handling is needed beyond preserving the suffix. The name field accepts anything you type, since SNS and SQS have their own separate naming rules the tool doesn’t attempt to re-validate here beyond requiring a non-empty value.

Once the required fields are filled, a live preview shows the ARN updating as you type. Clicking Build runs the result through the shared structural validator and reveals a one-click Copy button. A Load sample button fills in a realistic region, account, service choice, and name; Clear resets everything. Everything runs client-side — your topic and queue names, and the account id they belong to, never leave your browser.

Features

  • One tool, two services — a toggle between SNS topic and SQS queue, since both share an identical ARN shape.
  • Bare-name resource construction — no incorrect resource-type keyword or separator gets added.
  • FIFO queue names (ending in .fifo) pass through correctly.
  • Explicitly distinguishes the SQS ARN from the SQS queue URL, a common point of confusion.
  • Live preview that updates as you type.
  • Region and account format validation using the shared ARN validator.
  • Built on the shared buildARN engine, not a hand-rolled string template.
  • Sample region/account/service/name preloaded with one click.
  • One-click copy and clear.
  • 100% client-side — topic and queue names never leave the page.

How to Use

  1. Toggle SNS topic or SQS queue.
  2. Enter a region (e.g. us-east-1) and a 12-digit account id.
  3. Type the topic or queue name (add .fifo for a FIFO queue).
  4. Watch the live preview update as you fill in fields.
  5. Click Build to validate and reveal the copy action.
  6. Copy the ARN into your IAM policy, subscription, or event source mapping — not the queue URL.
  7. Clear and repeat for the next topic or queue.

Examples

Example 1 — SNS topic ARN. Service SNS, region us-east-1, account 123456789012, name order-events, gives arn:aws:sns:us-east-1:123456789012:order-events.

Example 2 — Standard SQS queue ARN. Service SQS, same region and account, name order-processing-queue, gives arn:aws:sqs:us-east-1:123456789012:order-processing-queue.

Example 3 — FIFO SQS queue ARN. Name payments.fifo, gives arn:aws:sqs:us-east-1:123456789012:payments.fifo, preserving the required FIFO suffix.

Example 4 — SNS-to-SQS fan-out. Generate the topic ARN for order-events and the queue ARN for order-processing-queue separately, then use both to configure an SNS subscription that delivers topic messages into the queue.

Example 5 — ARN vs. URL. The queue ARN arn:aws:sqs:us-east-1:123456789012:order-processing-queue is what goes in an IAM policy; the separate queue URL https://sqs.us-east-1.amazonaws.com/123456789012/order-processing-queue is what your application code calls to send messages — this tool only builds the former.

Benefits

  • One form for both services instead of two near-identical tools.
  • Avoids the ARN-vs-URL mixup that trips up a lot of SQS integrations.
  • Correct bare-name shape by construction — no stray resource-type prefix.
  • Handles FIFO queue names correctly.
  • Consistent with the shared ARN engine used across this entire tool family.
  • Private — topic and queue names never leave your browser.

Frequently Asked Questions

Are SNS topic ARNs and SQS queue ARNs built the same way?
Yes — structurally identical, just a different service segment: <code>arn:aws:sns:region:account:name</code> for a topic, <code>arn:aws:sqs:region:account:name</code> for a queue. Both are a bare name with no resource-type keyword or separator, unlike Lambda’s <code>function:</code> or IAM’s <code>role/</code>.
Is the SQS ARN the same thing as the queue URL?
No, and this is a common source of confusion. The queue URL looks like <code>https://sqs.region.amazonaws.com/account/queue-name</code> and is used by application code and the AWS SDK to send and receive messages via HTTP(S). The ARN, built here, is a different identifier used in IAM policies, SNS subscriptions, and event source mappings — the two are not interchangeable even though they’re derived from the same account, region and queue name.
Why does the tool need a toggle between SNS and SQS instead of guessing?
Because the only difference in the ARN itself is the service segment (<code>sns</code> vs <code>sqs</code>), and there’s no way to infer from a topic or queue name alone which service it belongs to — a toggle makes the choice explicit rather than guessed.
Does the tool handle FIFO queue names?
Yes — a FIFO queue name ending in <code>.fifo</code> (required by SQS for FIFO queues) is passed through unchanged, since the ARN format itself doesn’t treat FIFO queues any differently from standard ones.
Why do both services need a region and account id?
Both SNS topics and SQS queues are regional, account-scoped resources — the same topic or queue name can exist independently in different regions or accounts, so both fields are required to identify exactly one resource.
Is my topic or queue name sent anywhere?
No. The ARN is built entirely client-side with no network requests.
What does the validation step check?
It runs the finished ARN through the shared structural validator: partition, service name shape, 12-digit account id, and a real-looking region code. It does not verify the topic or queue actually exists.
Can I use this for SNS subscription ARNs?
No — subscription ARNs append a UUID after the topic ARN (<code>topic-arn:subscription-id</code>) that AWS generates when a subscription is created, which isn’t something you’d type in as a name. This tool builds the topic or queue ARN itself, not a subscription.