IAM JSON policy element reference
JSON policy documents are made up of elements. The elements are listed here in the general
order you use them in a policy. The order of the elements doesn't matter—for example, the
Resource
element can come before the Action
element. You're not
required to specify any Condition
elements in the policy. To learn more about the
general structure and purpose of a JSON policy document, see Overview of JSON policies.
Some JSON policy elements are mutually exclusive. This means that you cannot create a policy
that uses both. For example, you cannot use both Action
and NotAction
in the same policy statement. Other pairs that are mutually exclusive include
Principal
/NotPrincipal
and
Resource
/NotResource
.
The details of what goes into a policy vary for each service, depending on what actions the service makes available, what types of resources it contains, and so on. When you're writing policies for a specific service, it's helpful to see examples of policies for that service. For a list of all the services that support IAM, and for links to the documentation in those services that discusses IAM and policies, see AWS services that work with IAM.
When you create or edit a JSON policy, IAM can perform policy validation to help you create an effective policy. IAM identifies JSON syntax errors, while IAM Access Analyzer provides additional policy checks with recommendations to help you further refine your policies. To learn more about policy validation, see IAM policy validation. To learn more about IAM Access Analyzer policy checks and actionable recommendations, see IAM Access Analyzer policy validation.