All Tools View Categories About Contact Privacy

ARN to Resource Type Identifier

Paste an ARN and get a plain-English resource type label, or an honest "not recognized" if it's outside the lookup table.

Runs entirely in your browser — your ARN never leaves this page.

About ARN to Resource Type Identifier

An ARN's service and resource-type fields tell you what kind of thing you are looking at, but only if you already know AWS's naming conventions well enough to read them — that iam + role means an IAM Role, that lambda + function means a Lambda Function, that sqs with no separate resource type at all means an SQS Queue. ARN to Resource Type Identifier does that translation for you: paste an ARN, and it parses out the service and resource-type fields, then matches that combination against a curated table of common AWS resource types to hand back a plain-English label.

The lookup table covers roughly thirty combinations spanning the services most commonly seen in day-to-day AWS work: IAM roles, users, groups, managed policies and instance profiles; Lambda functions and layers; EC2 instances, volumes, security groups, VPCs, subnets and snapshots; DynamoDB tables; SNS topics and SQS queues; KMS keys and aliases; RDS database instances and Aurora clusters; Secrets Manager secrets; SSM parameters; CloudWatch Logs log groups; CloudFormation stacks; ECS clusters, task definitions and services; EKS clusters; Step Functions state machines; API Gateway resources; CloudFront distributions; Route 53 hosted zones; CodePipeline pipelines; EventBridge rules; and load balancers. Several services — S3, SNS, SQS, and a few others — have no separate resource-type segment in their ARNs at all, since the resource id alone identifies the thing (a bucket name, a topic name, a queue name); the tool accounts for that by matching on an empty resource-type field for those services rather than expecting one that does not exist.

What makes the honesty of this tool worth spelling out is what it does when a combination is not in the table: it says so explicitly, rather than making a plausible-sounding guess. An ARN for a genuinely obscure or newer AWS service, or one with a resource-type spelling the table has not been extended to cover yet, comes back labeled as unrecognized, alongside the raw service and resource-type strings the parser actually extracted — so you always see the real underlying data even when the friendlier label is not available. That is a deliberate design choice: a resource-type identifier that guesses wrong is worse than one that admits its coverage is limited.

The matching itself only looks at the resource-type segment, not the full resource id, which means it correctly identifies the resource kind even when the specific id looks unusual, has an odd length, or does not follow the typical naming pattern for that resource — the label describes what kind of thing the ARN points to, not whether that particular instance is well-formed (that is a job for the ARN Validator instead). Likewise, this tool has no connection to your AWS account and cannot confirm that the specific resource named actually exists; it works purely from the shape of the ARN text you paste in.

This is a small companion to the ARN Parser, useful anywhere you are staring at an unfamiliar ARN — in a CloudTrail event, an error message, a colleague's Slack message — and want to know at a glance what kind of AWS resource it names, without memorizing every service's resource-type conventions yourself. Parsing and identification both happen locally; the ARN, and any account id it contains, never leaves your browser.

Features

  • Plain-English resource type labels for around 30 common AWS service/resource-type combinations.
  • Honest "unrecognized" result for anything outside the lookup table — no guessing.
  • Handles services with no separate resource type (S3, SNS, SQS) correctly.
  • Shows the raw parsed fields alongside the label, always.
  • Reuses the same parser as the ARN Parser tool, so results are consistent between the two.
  • Specific parse errors for malformed input.
  • Copy result as JSON.
  • Sample ARNs (recognized and unrecognized) and one-click clear.
  • 100% client-side — nothing is uploaded.

How to Use

  1. Paste an ARN, or click a sample.
  2. Click Identify (or just stop typing).
  3. Read the resource type label at the top — recognized or not.
  4. Check the parsed fields underneath for the raw service and resource-type strings either way.
  5. Copy the result as JSON if needed.
  6. Try an unusual ARN to see the honest "not in the lookup table" response.

Examples

Example 1 — IAM Role. arn:aws:iam::123456789012:role/my-role identifies as "IAM Role".

Example 2 — Lambda Function. arn:aws:lambda:us-east-1:123456789012:function:my-func identifies as "Lambda Function".

Example 3 — S3 (no resource type field). arn:aws:s3:::my-bucket/path/file.txt identifies as "Amazon S3 bucket (or bucket + object, if a resource id follows)" — matched on the empty resource-type field S3 always has.

Example 4 — DynamoDB Table. arn:aws:dynamodb:us-east-1:123456789012:table/Orders identifies as "DynamoDB Table".

Example 5 — unrecognized service. arn:aws:mediaconvert:us-east-1:123456789012:queues/Default parses successfully but returns "Unrecognized combination — not in the lookup table", since MediaConvert is not one of the covered services — the raw fields are still shown.

Benefits

  • Turns cryptic service/type fields into a readable label instantly.
  • Never guesses — says plainly when a combination is not covered.
  • Consistent with the ARN Parser's output, since it reuses the same parsing logic.
  • Handles S3/SNS/SQS's no-resource-type shape correctly.
  • Fast triage for unfamiliar ARNs in logs, tickets, or CloudTrail events.
  • Private — ARNs and account IDs never leave your browser.

Frequently Asked Questions

How does it decide what kind of resource an ARN points to?
It parses the ARN into its service and resource-type fields (the same way the ARN Parser does), then looks that service+resource-type combination up in a curated table of about 30 common AWS resource types — IAM roles/users, Lambda functions, EC2 instances, DynamoDB tables, S3 buckets, KMS keys, and more. If the combination is in the table, you get a plain-English label; if not, it says so honestly instead of guessing.
What happens with a service or resource type that is not in the table?
You get an explicit "not in the lookup table" result, along with the raw service and resource-type fields the ARN parsed to — so you still see what the ARN actually contains, you just do not get a plain-English label for it. The table covers common services, not the full catalog of every AWS service and resource type.
Does it verify the resource actually exists in AWS?
No. This only reads the structure of the ARN string itself and matches it against a static, local lookup table — it never calls AWS, so it has no way to know whether the specific bucket, function, or role named in the ARN is real.
How is this different from the ARN Parser?
The ARN Parser shows you the raw fields (service, resource type, resource id, and so on) without interpreting them. This tool takes the service and resource-type fields the parser would produce and adds one more step: matching them against a lookup table to produce a human-readable resource type name, like "IAM Role" instead of just "iam" + "role".
Can it tell the difference between an S3 bucket ARN and an S3 object ARN?
It identifies both as the same underlying resource kind (an S3 bucket, since S3 does not have a separate resource-type field the way IAM or Lambda do) — but shows the full resource id, so if there is a path after the bucket name in the ARN, you can see the object key is present even though the identified type does not change.
What if the ARN itself is malformed?
Identification does not run at all — you get the same parse error the ARN Parser would show (too few fields, wrong prefix, or empty input), since there is nothing to classify until the ARN parses successfully.
Can the lookup table be wrong for an unusual ARN?
It matches on the resource-type segment only, not the full resource id, so an ARN with an unusual or malformed resource id (but a recognized resource type, like "role") still identifies correctly as far as the type goes — the label describes the kind of resource, not whether that specific instance of it is well-formed.
Is my ARN sent anywhere?
No, identification runs entirely in your browser against a static table baked into the page.