Source: AWS Security Blog
Author: Anshu Bathla
URL: https://aws.amazon.com/blogs/security/can-i-do-that-with-policy-understanding-the-aws-service-authorization-reference/
ONE SENTENCE SUMMARY:
AWS IAM policies only enforce controls using authorization-context data; use Service Authorization Reference to assess feasibility and alternatives.
MAIN POINTS:
- Policy decisions rely on request context present during the API call.
- PARC model structures context: Principal, Action, Resource, and Condition attributes.
- IAM can validate metadata like encryption headers, not object contents or sizes.
- Service Authorization Reference lists controllable actions, resource types, and condition keys.
- Global condition keys work across services; service-specific keys apply to one service.
- Feasibility hinges on whether a needed attribute exists as a condition key.
- ec2:RunInstances offers different condition keys per affected resource type.
- S3 PutObject can be denied when SSE header isn’t AES256.
- Principal tags enable dynamic EC2 instance-type restrictions by requester cost center.
- DynamoDB LeadingKeys supports per-user item access by matching partition key to ${aws:username}.
TAKEAWAYS:
- Start every control design by checking the Service Authorization Reference condition keys.
- Missing context fields (CIDR, ports, Lambda memory) require non-IAM governance mechanisms.
- Combine preventive IAM controls with AWS Config, EventBridge, and automation for defense-in-depth.
- Machine-readable authorization metadata can automate policy management and validation workflows.
- Action-level nuance matters; the same service exposes different keys per API operation.