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.