All Tools View Categories About Contact Privacy

DynamoDB ARN Generator

Build a DynamoDB table ARN, optionally scoped to a global or local secondary index.

Runs entirely in your browser — your account id and table/index names never leave this page.
Fill in region, account id and table name to build an ARN.

About DynamoDB ARN Generator

DynamoDB ARNs come in two closely related shapes depending on what you’re pointing at: the table itself, or one of its secondary indexes. Both share the same prefix — region, account id, and table/table-name — but the index form tacks on a further /index/index-name segment, and it’s easy to get the ordering wrong or forget the literal word index when hand-typing one. DynamoDB ARN Generator builds either form from three or four fields — region, account id, table name, and an optional index name — so the segment order is always correct.

Leave the index field blank and you get the table-level ARN: arn:aws:dynamodb:region:account:table/table-name, the form used for table-wide actions like dynamodb:PutItem, dynamodb:GetItem, dynamodb:Scan, or dynamodb:UpdateTable in an IAM policy’s Resource field. Fill in an index name and the tool appends /index/index-name, producing the ARN needed when an action is specifically scoped to a global secondary index (GSI) or local secondary index (LSI) — most commonly dynamodb:Query permissions that should only apply through a particular index rather than the base table. DynamoDB doesn’t distinguish GSIs from LSIs in the ARN itself; both use the identical table/name/index/index-name shape, so one field covers either kind.

Like Lambda and EC2, DynamoDB tables are regional, account-scoped resources — the same table name can exist independently in different regions or under different accounts — so both region and account id are required fields here, checked at build time by the shared validator for a real-looking region code and a 12-digit account id. Table and index names are passed through exactly as typed, preserving case, since DynamoDB table and index names are case-sensitive and Users and users genuinely refer to different tables.

The tool is deliberately scoped to the table and index shapes, which cover by far the most common ARN need when writing DynamoDB IAM policies. DynamoDB Streams ARNs use a third, distinct pattern — table/table-name/stream/2026-08-20T00:00:00.000 — where the final segment is a specific timestamp tied to when the stream was enabled, not a name you’d type freely, so building a stream ARN isn’t something a simple name-based form can meaningfully do, and it’s left out of this generator rather than faked with a placeholder timestamp.

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, table, and index name so you can see both the table-only and table+index forms; Clear resets everything. As with every tool in this family, table names, index names, and account ids never leave your browser.

Features

  • Four-field form — region, account id, table name, optional index name.
  • Table-only or table+index ARN depending on whether an index is supplied.
  • Covers both GSIs and LSIs, which share the same ARN shape.
  • Case preserved exactly as typed, since DynamoDB names are case-sensitive.
  • 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/table/index preloaded with one click.
  • One-click copy and clear.
  • 100% client-side — table and index names never leave the page.

How to Use

  1. Enter a region (e.g. us-east-1) and a 12-digit account id.
  2. Type the table name, preserving exact case.
  3. Optionally add an index name if you need a GSI or LSI ARN rather than the table ARN.
  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 Resource field.
  7. Clear and repeat for the next table.

Examples

Example 1 — Table-level ARN. Region us-east-1, account 123456789012, table Users, no index, gives arn:aws:dynamodb:us-east-1:123456789012:table/Users.

Example 2 — Global secondary index ARN. Same fields plus index email-index gives arn:aws:dynamodb:us-east-1:123456789012:table/Users/index/email-index.

Example 3 — Different table in the same account. Table Orders, index status-created-index, gives arn:aws:dynamodb:us-east-1:123456789012:table/Orders/index/status-created-index.

Example 4 — Cross-region table. The same table name Sessions deployed independently in us-east-1 and eu-west-1 produces two distinct ARNs, differing only in region.

Example 5 — Scoping a Query permission to one index. An IAM policy granting dynamodb:Query on arn:aws:dynamodb:us-east-1:123456789012:table/Users/index/email-index allows querying only through that index, not a full table scan.

Benefits

  • Segment order always correct — no more guessing where index goes.
  • Covers both table-level and index-level ARNs from one form.
  • Preserves case exactly, avoiding a mismatch against case-sensitive table names.
  • Catches malformed regions and account ids before they reach a policy document.
  • Consistent with the shared ARN engine used across this entire tool family.
  • Private — table and index names never leave your browser.

Frequently Asked Questions

What’s the difference between the table ARN and the index ARN?
The table ARN (<code>arn:aws:dynamodb:region:account:table/Users</code>) refers to the table itself, used for actions like <code>dynamodb:PutItem</code> or <code>dynamodb:Scan</code>. Adding an index name produces the global secondary index ARN (<code>.../table/Users/index/email-index</code>), needed for actions like <code>dynamodb:Query</code> when it’s specifically scoped to querying that index.
Does this cover local secondary indexes too?
Yes — the ARN shape for local secondary indexes is identical to global secondary indexes (<code>table/name/index/index-name</code>); DynamoDB doesn’t distinguish between the two in the ARN itself, only in how the index is defined on the table.
Why does DynamoDB need both a region and an account id?
DynamoDB tables are regional and scoped to one account — the same table name can exist independently in different regions or accounts, so both are required to identify exactly one table.
Can I generate an ARN for a DynamoDB stream with this tool?
No — stream ARNs add a third segment (<code>table/Users/stream/2026-08-20T00:00:00.000</code>) with a specific timestamp format tied to when the stream was enabled, which is different enough from the table/index pattern that this form doesn’t attempt to build it.
Is my table name or account id sent anywhere?
No. The ARN is built entirely in your browser 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 table or index actually exists in DynamoDB.
Are DynamoDB table names case-sensitive?
Yes — DynamoDB table and index names are case-sensitive, so <code>Users</code> and <code>users</code> are different tables. The tool preserves exactly the case you type.