All Tools View Categories About Contact Privacy

IAM ARN Format Reference

A searchable cheat sheet of per-service AWS ARN patterns for writing IAM policy Resource elements.

Curated selection of ~30 common services — not AWS's complete service catalog. Runs entirely in your browser.
ServiceResource typeARN patternExampleNote

About IAM ARN Format Reference

Writing the Resource element of an IAM policy statement means getting a service's specific ARN syntax exactly right — which segments are present, whether the resource id follows a slash or a colon, whether region and account id are even included. IAM ARN Format Reference is a searchable cheat sheet covering common AWS services' ARN patterns for exactly this purpose, each with its template, a realistic filled-in example, and a short note on that service's specific quirks.

Every ARN follows the same six colon-separated shape — arn:partition:service:region:account-id:resource — but what belongs in that last resource field, and how region/account-id are handled, varies service by service. S3 and IAM both drop fields that don't apply (no region for either, no account id for S3 buckets); RDS, Lambda, Step Functions, ElastiCache and CodePipeline use a colon to introduce the resource id where most other services use a slash; and a handful of global services like CloudFront and Route 53 leave region and, for some, account id empty entirely.

This is a curated selection covering roughly 30 services and resource types commonly referenced when writing IAM policies — not AWS's complete catalog of hundreds of services. AWS documents the authoritative, complete list in its own reference documentation, linked from the FAQ below.

Features

  • ~30 curated service/resource-type rows spanning storage, compute, database, messaging, and management services.
  • Pattern, filled-in example, and quirk note for every row.
  • Live search across service, resource type, pattern, example and note.
  • One-click copy of any example ARN.
  • 100% client-side — a static reference table, nothing sent anywhere.

How to Use

  1. Type a service name, resource type, or keyword into the search box (e.g. "lambda", "colon", "global").
  2. Scan the matching rows for the ARN pattern and a realistic example.
  3. Read the Note column for that service's quirks (missing fields, separator, suffixes).
  4. Click the copy icon next to any example to copy it to your clipboard.

Examples

Example 1 — "does S3 include a region?" Search "s3" — the note makes clear S3 bucket ARNs omit both the region and account-id segments.

Example 2 — "which services use a colon instead of a slash?" Search "colon" to surface RDS, Lambda, Step Functions, ElastiCache, and CodePipeline.

Example 3 — writing a Resource for a specific Glue table. Search "glue" to find the table pattern arn:aws:glue:region:account-id:table/database-name/table-name.

Benefits

  • Saves time versus digging through per-service AWS docs for syntax used only occasionally.
  • Surfaces the quirks that cause malformed ARNs — missing fields, wrong separator, unexpected suffixes.
  • Pairs naturally with the ARN Parser and ARN Builder tools in this category.
  • Honest about its limits — a curated subset, not a claim of completeness.

Frequently Asked Questions

Does this cover every AWS service?
No. AWS has hundreds of services, each with its own ARN format. This page is a curated reference covering about 30 commonly used services and resource types most often seen in IAM policy Resource elements — not an exhaustive or authoritative catalog. For a service not listed here, or to confirm the exact current format, see AWS's own <a href="https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html" target="_blank" rel="noopener">ARN reference documentation</a>.
Why do some patterns use a slash and others a colon before the resource id?
Each AWS service defines its own resource-id syntax. Most services use a slash (e.g. iam:role/name), but several — RDS, Lambda, Step Functions, ElastiCache, CodePipeline — use a colon instead. The Note column calls out the separator for services where it is easy to get wrong.
Why do some ARNs have empty region or account-id segments?
A field is left empty (leaving a bare colon) when it does not apply. Global services like IAM, S3, CloudFront and Route 53 omit the region because the resource is not region-scoped; Route 53 and S3 also omit the account id for their core resources.
Are the example ARNs real, working ARNs?
No — every example uses a placeholder-style account id (123456789012) and synthetic resource ids/names. They are realistic in shape to show exactly where each field goes, but none of them point at a real AWS resource.
Can I search by resource type instead of service name?
Yes — the search box matches against service name, resource type, pattern, example, and the note text, so searching "colon" or "global" surfaces every row with that trait regardless of service.
Does this tool verify anything against a live AWS account?
No. It is a static, curated reference table with a client-side search box — nothing is looked up from or sent to AWS.