DevTools Hub

Search tools

Search for a developer tool

AWS

AWS Tag Policy Validator

Validate an AWS Organizations tag policy's syntax, operators, and size.

Part of the AWS Toolkit
No structural problems found.
As pasted691 / 10,000 chars
Minified (whitespace removed)368 / 10,000 chars

Unlike IAM policies, AWS counts whitespace toward a tag policy's 10,000-character limit — so minifying a tag policy that's close to the limit genuinely buys headroom.

What this validates

A tag policy is an AWS Organizations policy type — a completely different document from an IAM policy, with its own syntax built around tag_key, tag_value, and enforced_for, plus inheritance operators (@@assign, @@append, @@remove, @@operators_allowed_for_child_policies) that control how a policy merges with others attached higher up the organization tree. This checks a single pasted document against AWS's own documented syntax and constraints.

What gets checked

What it doesn't check: whether a given service:resourceType pair in enforced_for is one AWS actually supports enforcement for — that list is long and service-specific. See AWS's list of supported services and resource types.

The whitespace rule runs backwards from IAM policies

IAM Policy Minifier exists because AWS explicitly ignores whitespace when measuring an IAM policy against its size quota — minifying an IAM policy usually changes nothing about whether it fits. Tag policies are the opposite: AWS's own guidance says to delete whitespace if a tag policy's size is approaching its 10,000-character limit, which only makes sense if whitespace counts. This tool shows both numbers — as pasted, and minified — so it's obvious which one to trust for each type of policy.

FAQ

Does this check the effective policy across my whole organization?

No — tag policies inherit and merge down an organization tree (a policy at the root combines with one on an OU, which combines with one on an account) into an effective policy. This validates one document in isolation, the same way IAM Policy Simulator is scoped to identity-based policies rather than the full cross-account evaluation chain.

Why does report_required_tag_for show up separately from enforced_for?

enforced_for actively blocks a noncompliant tagging operation. report_required_tag_for is softer — it flags a resource as missing a required tag for compliance reporting (including in infrastructure-as-code tools like CloudFormation and Terraform) without blocking anything by itself.

Is my policy sent anywhere?

No — validation happens entirely in your browser. Nothing you paste here is ever sent to a server.

Related tools