Using undocumented AWS console functionality to quickly access resources via ARN or resource type.
Recently I was browsing the AWS Config dashboard and noticed that the “Manage Resource” button on this page:
linked to an AWS console URL I hadn’t seen before:
https://us-east-1.console.aws.amazon.com/go/view?arn=arn%3Aaws%3Aaccess-analyzer%3Aus-east-1%3A123456789101%3Acertificate%2F123456789-1234-4567-abcd-abcdef123456789&source=config
This URL format (/go/view?arn=
) is interesting because, presumably, it would allow passing in any AWS resource name, in full ARN format, to be taken directly to the console for that resource. Deep-linking into the AWS console has historically been somewhat challenging since each page has its own URL format for resources. For example:
- S3 buckets are at
/s3/buckets/bucket-name
- ACM certificates are at
/acm/home?region=us-east-1#/certificates/cert-id
- CloudFront distributions are at
/cloudfront/v4/home?region=us-east-1#/distributions/DISTRIBUTIONID
Being able to navigate directly to these resource pages solely using the AWS ARN for the given resource would be nice!
I got curious, and dug around to see what other formats this URL might accept and eventually found this minified JavaScript on the AWS Config console page:
!function(e, n, r) {
if ("view" === e && t.RESOURCE_TYPE_REG_EXP.test(n) && !r)
throw new i.UnsupportedActionError(e,n);
if ("list" === e && !t.RESOURCE_TYPE_REG_EXP.test(n))
throw new i.UnsupportedActionError(e,n)
}(l, e, null == n ? void 0 : n.resourceId);
var p = "https://".concat(d, "/go/").concat(l, "?").concat(function(e, n, r) {
var i = new URLSearchParams;
return t.RESOURCE_TYPE_REG_EXP.test(e) ? (i.append("resourceType", e),
(null == r ? void 0 : r.resourceId) && "view" === n && i.append("resourceId", r.resourceId),
(null == r ? void 0 : r.region) && i.append("region", r.region),
(null == r ? void 0 : r.accountId) && i.append("accountId", r.accountId)) : i.append("arn", e),
i.toString()
}(e, l, n))
, f = function(e) {
if (e)
This seems to suggest that the following URL paths are supported:
/go/view
/go/list
And that the following parameters are supported:
resourceType
resourceId
region
accountId
arn
So we can extrapolate examples like the following:
/go/list?resourceType=AWS::S3::Bucket
/go/view?resourceType=AWS::Lambda::Function&resourceId=my-func®ion=us-east-1&accountId=123456789012
/go/list?resourceType=AWS::DynamoDB::Table®ion=us-west-2
/go/view?arn=arn:aws:ec2:us-west-2:123456789012:instance/i-1234567890abcdef0
I posted about this on X, and it seemed to be news to most folks. Googling this URL path (console.aws.amazon.com/go/view
) returns only 7 results at the time of this post, 2 of them my aforementioned X post, so this doesn’t seem to be a terribly well-known path.
One of my followers, David Wells, turned this into a script so you can run aws-open <arn>
to instantly open the AWS console for a given ARN.
Hope this is helpful to some folks!
This post was published by wut.dev, a client-side AWS console alternative for viewing, managing, debugging, and documenting AWS resources, logs, security policies, and controls.