An ARN packs five or six meaningful pieces of information into one colon-delimited string, and reading them off by eye gets error-prone the moment resources get nested — a Lambda alias, an IAM role under a path, an S3 object key with its own slashes. ARN Parser takes one ARN and splits it into its real fields: partition, service, region, account id, resource type, and resource id, laid out so you can see at a glance what you are actually looking at.
The split follows the same structure AWS itself uses: everything up to the fifth colon is the fixed header (arn:partition:service:region:account-id:), and everything after that is the resource. Because that resource segment is where AWS services diverge — some use type/id like an IAM role (role/my-role), some use type:id like a Lambda function version (function:my-func:3), and some are just a bare id like an SQS queue name — the parser looks for whichever separator appears first and splits there, falling back to treating the whole thing as a bare resource id when neither is present. That single rule correctly handles the overwhelming majority of ARNs you will paste in day to day: IAM roles and users, Lambda functions with versions or aliases, DynamoDB tables and their indexes, EC2 instances, KMS keys and aliases, SNS topics, SQS queues, and S3 buckets and objects.
Fields that AWS legitimately leaves blank are shown as blank rather than flagged as errors. S3 and IAM ARNs, for example, carry no region and (for S3) no account id between their colons — arn:aws:s3:::my-bucket is a completely valid ARN with two empty fields in the middle, and the parser reports those as empty strings so you can see the ARN really does look like that, instead of guessing something went wrong.
Parsing and validating are kept as two separate steps. Parsing only asks whether the string has the minimum shape of an ARN: it starts with arn: and has at least six colon-separated fields. If that much is true, you get a breakdown, even if the contents look unusual. Validation is a stricter check layered on top, run automatically alongside the parse: it flags a partition outside the three real AWS partitions (aws, aws-cn, aws-us-gov), an account id that is not empty and not exactly 12 digits, a region that does not match the shape of a real AWS region code, or a service field with characters outside lowercase letters, digits, and hyphens. Keeping the two separate means a slightly unusual but real ARN still gets parsed and shown, with the validation warnings sitting alongside it rather than blocking the result outright.
The result is shown as a labeled field list — not a raw JSON dump — so the account id, region, and resource id are each immediately identifiable, with a one-click Copy as JSON action for pasting the structured breakdown into a ticket, a script, or documentation. Malformed input produces a clear, specific parse error instead of a stack trace or a blank screen: too few colon-separated fields, a missing arn: prefix, or empty input are each called out by name.
This is a small, focused tool for a task that comes up constantly when working with AWS: someone pastes an ARN into a ticket, a CloudTrail event, or a policy document, and you need to know instantly which account it belongs to, which region, and what kind of resource it actually points to — without opening the AWS console or mentally counting colons. Everything happens in your browser; the ARN, which often contains a real AWS account id, is never sent anywhere.