A utility service for Amazon Resource Names (ARNs), providing the functionality
as listed below. You can consume it as an online service via https://arn.services
or run it yourself as a
SAM application, see details below in the run it yourself section.
ARN Services has two features: you can break up an ARN into its components
and you can generate an ARN from its components. There are at the moment no
semantic checks done, however for the generate/
endpoint some defaulting is provided.
In order to break up an ARN into its components (or: compartmentalize), use an
HTTP GET
on explode/$ARN
, for example:
$ curl -s https://arn.services/explode/arn:aws:s3:us-west-2::abucket | jq .
{
"Partition": "aws",
"Service": "s3",
"Region": "us-west-2",
"AccountID": "",
"Resource": "abucket"
}
To generate a fully qualified ARN from (certain) components, use an HTTP POST
to generate/
, for example:
$ curl -s -X POST \
-H "Content-Type: application/json" \
-d '{"Service":"s3", "Resource":"somebucket/someobject"}' \
https://arn.services/generate
arn:aws:s3:us-west-2::somebucket/someobject
If you want to run ARN services yourself, you need to:
- clone this repo (using
git clone https://github.com/mhausenblas/arn.services.git
for example) - create an S3 bucket for the Lambda functions and change the value of
ARNS_BUCKET
to your own S3 bucket in the Makefile - execute
make deploy
- OPTIONALLY: set up API Gateway
and Route 53 for a custom domain and run
make up ARNS_ACM_CERT=$ARNS_ACM_CERT
with the ARN of the ACM cert (I did email validate for my Namecheap domain).