Subchapter 34.4
references/service-authorization.mdMarkdown3 KBView on GitHub
URL pattern: https://servicereference.us-east-1.amazonaws.com/v1/<service>/<service>.json
These files are large (tens to hundreds of KB). Always extract only what you need.
Use the service_reference_query tool when available. If unavailable, use curl piped to jq.
{ "service": "s3", "operation": "CopyObject" }Returns the actions needed to authorize the operation, including cross-service actions.
{ "service": "s3", "action": "GetObject" }Use when building conditions or when an operation has no Operations entry.
{ "service": "s3", "resource": "bucket" }{ "service": "s3", "condition_key": "aws:TagKeys" }Essential before using ForAnyValue/ForAllValues — these operators MUST only be used with array-typed keys (ArrayOfString, ArrayOfARN, etc.).
{ "service": "dynamodb", "list": "operations" }If the operation name is not found, the tool returns the list of available operations.
Each service reference JSON contains four top-level arrays:
Each Operation entry contains:
CreateFunction)Name, Service (may differ from the queried service for cross-service actions), and optional ContextWhen the service_reference_query tool is unavailable, use curl and jq:
# Get authorized actions for an operation
curl -s "https://servicereference.us-east-1.amazonaws.com/v1/lambda/lambda.json" | \
jq '.Operations[] | select(.Name == "CreateFunction")'
# Verify an action exists
curl -s "https://servicereference.us-east-1.amazonaws.com/v1/s3/s3.json" | \
jq '.Actions[] | select(.Name == "GetObject")'
# Look up resource ARN format
curl -s "https://servicereference.us-east-1.amazonaws.com/v1/s3/s3.json" | \
jq '.Resources[] | select(.Name == "bucket")'
# Check condition key type
curl -s "https://servicereference.us-east-1.amazonaws.com/v1/s3/s3.json" | \
jq '.ConditionKeys[] | select(.Name == "aws:TagKeys")'