All Tools View Categories About Contact Privacy

S3 ARN Generator

Build an S3 bucket or object ARN from a bucket name and optional key.

S3 ARNs have no region or account id — bucket names are globally unique, so AWS doesn’t need either field. This runs entirely in your browser.
Fill in a bucket name to build an ARN.

About S3 ARN Generator

S3 is one of the few AWS services whose ARNs break the usual pattern. Every other resource ARN in this tool family carries a region and an account id between its colons — but S3 bucket names are globally unique across the whole of AWS, so a bucket ARN never needs to say which region or account owns it; AWS resolves that by looking the bucket up. The result is an ARN with two conspicuously empty fields: arn:aws:s3:::my-bucket, four colons in a row where other services would have real values. S3 ARN Generator builds this exact shape from a bucket name and an optional object key, so you never have to remember which fields to leave blank or second-guess whether a region belongs in there.

The form has exactly two meaningful inputs: a bucket name, and an optional object key (path). Leave the key blank and you get the bucket-level ARN used for actions like s3:ListBucket, s3:GetBucketPolicy, or s3:PutBucketVersioning in an IAM policy’s Resource field. Fill in a key — a single filename, or a deep path like logs/2026/08/20.log — and the object appended after a slash, giving you the object-level ARN needed for s3:GetObject, s3:PutObject, s3:DeleteObject and similar. Because most real IAM policies for S3 buckets need both the bucket ARN and an object-pattern ARN together (commonly arn:aws:s3:::my-bucket plus arn:aws:s3:::my-bucket/*), the tool makes it fast to generate both variants back to back from the same bucket name.

Region and account fields are deliberately absent from the form rather than shown disabled with placeholder text — the info banner explains why up front, so the empty fields in the resulting ARN read as correct rather than like something is missing. This is one of the more common points of confusion when people hand-build S3 ARNs for the first time: it looks incomplete next to a Lambda or DynamoDB ARN, but four colons with nothing between the third and fifth is exactly what AWS expects.

The object key field accepts anything a real S3 key can contain, including slashes (S3 has no real folder hierarchy — a key like a/b/c.txt is one flat object name that consoles render as nested folders) and wildcard characters such as *, which are valid and common in IAM policy resource patterns like my-bucket/uploads/*. Nothing is escaped or rewritten; what you type after the bucket name is what appears after the slash in the final ARN.

Bucket names get a light advisory check — uppercase letters and underscores are flagged, since virtual-hosted-style S3 bucket names are supposed to be lowercase with hyphens or dots — but this is a warning, not a hard stop, because the resulting ARN is still syntactically buildable and you may be intentionally working with a legacy or unusual name. After building, the ARN is run through the same structural validator used by every other tool in this family, checking partition, service, and confirming the region and account fields really are empty as expected for S3.

Once built, the ARN sits in a copy-ready box with a one-click Copy button, plus a Load sample button that fills in a realistic bucket and key so you can see both the bucket-only and bucket+object shapes immediately, and a Clear button to start over. Everything runs client-side in your browser — nothing about your bucket name or key ever leaves the page, which matters if either one encodes internal project, customer, or environment names you’d rather not send anywhere.

Features

  • Two-field form — bucket name and optional object key, nothing else needed.
  • Correct S3 shape by construction — region and account are always left empty, matching real S3 ARNs.
  • Bucket-only or object ARN depending on whether a key is supplied.
  • Live preview that updates as you type, before you click Build.
  • Wildcard-safe* and other IAM policy pattern characters pass through untouched.
  • Advisory bucket-name checks for uppercase letters and underscores, without blocking generation.
  • Built on the shared ARN engine (buildARN) and validated with the same validator used across every ARN tool here.
  • Sample bucket + key preloaded with one click.
  • One-click copy and clear.
  • 100% client-side — no bucket or key names are ever sent anywhere.

How to Use

  1. Type a bucket name, or click Load sample to see it prefilled.
  2. Optionally add an object key/path if you need an object-level ARN rather than a bucket-level one.
  3. Watch the live preview update as you type.
  4. Click Build to run the ARN through validation and reveal the copy action.
  5. Review any warnings — an unusual bucket name format is flagged but not blocked.
  6. Copy the ARN into your IAM policy, CLI command, or CloudFormation template.
  7. Clear and repeat for the next bucket or object.

Examples

Example 1 — Bucket-level ARN. Bucket company-data-lake, no key, gives arn:aws:s3:::company-data-lake — usable in policies granting s3:ListBucket.

Example 2 — Single object. Bucket company-data-lake, key reports/2026/q2-summary.pdf, gives arn:aws:s3:::company-data-lake/reports/2026/q2-summary.pdf.

Example 3 — Wildcard object pattern. Bucket company-uploads, key incoming/*, gives arn:aws:s3:::company-uploads/incoming/* — a common Resource entry for s3:PutObject permissions scoped to one prefix.

Example 4 — Pairing bucket and object ARNs. For a full read policy on one bucket you typically need both arn:aws:s3:::company-data-lake (for ListBucket) and arn:aws:s3:::company-data-lake/* (for GetObject) — generate the first with no key, then the second with key *.

Example 5 — Nested key path. Bucket logs-archive, key app/prod/2026/08/20/access.log, gives arn:aws:s3:::logs-archive/app/prod/2026/08/20/access.log — the full path is preserved as a single flat key.

Benefits

  • No more guessing which fields to leave blank — the shape is correct by construction.
  • Faster than hand-typing nested paths and wildcard patterns.
  • Consistent with the shared ARN engine used across every tool in this family, so results stay uniform.
  • Catches common bucket-naming mistakes before they end up in a policy.
  • One click from bucket name to copy-ready ARN.
  • Private — bucket and key names never leave your browser.

Frequently Asked Questions

Why doesn’t this tool ask for a region or account id?
Because S3 bucket ARNs genuinely don’t carry them. S3 bucket names are globally unique across all of AWS, so the region and account fields between the colons are left blank: <code>arn:aws:s3:::bucket-name</code>. AWS resolves the actual region and owning account by looking the bucket name up, not from the ARN text. Putting real-looking values there would just produce an ARN that looks wrong to anyone who knows the format.
What’s the difference between the bucket-only ARN and the object ARN?
A bucket-only ARN (<code>arn:aws:s3:::my-bucket</code>) refers to the bucket itself — used in policies that manage bucket-level actions like <code>s3:ListBucket</code> or <code>s3:GetBucketPolicy</code>. Adding an object key produces an object ARN (<code>arn:aws:s3:::my-bucket/path/file.txt</code>) used for object-level actions like <code>s3:GetObject</code> or <code>s3:PutObject</code>. Many IAM policies need both forms listed side by side.
Can the object key contain slashes?
Yes — S3 doesn’t have real folders, only key names that happen to contain <code>/</code> characters that consoles render as a folder tree. A key like <code>logs/2026/08/20.log</code> is a single object key and is appended after the bucket name exactly as typed, wildcards and all.
Does this tool validate the bucket name against S3’s naming rules?
It checks the essentials — non-empty, and flags names with uppercase letters or underscores, both of which are invalid for S3 virtual-hosted-style bucket names — as an advisory warning, not a hard block, since the ARN itself is still constructible. It does not reach out to AWS to confirm the bucket exists or is actually named that way.
Can I use a wildcard like * in the object key for a policy?
Yes. Typing <code>*</code> or <code>uploads/*</code> as the key is valid ARN syntax for IAM policy statements and is passed through unchanged — the tool does not strip or escape wildcard characters.
Will this work for access point ARNs or S3 on Outposts?
No, this generator only builds the classic bucket/object ARN form. Access point ARNs (<code>arn:aws:s3:region:account:accesspoint/name</code>) and Outposts ARNs use a different, region-and-account-bearing shape and are out of scope here.
Is my bucket name sent anywhere?
No. The ARN is built entirely in your browser with no network requests — useful since bucket names sometimes reveal internal project or environment naming.
What does the validation step actually check?
After building the ARN, it is run through the same validator used across every ARN tool on this site: partition, service name shape, and (where present) account id and region format. For S3 ARNs the account and region are expected to be empty, so a clean bucket-only or bucket+key ARN should always validate with no warnings.