Skip to main content
FuseFuse
IntegrationsAwsActions

Simulate IAM principal policy

Simulate whether a principal is allowed to perform actions. Does not accept caller-supplied policy documents. Requires iam:SimulatePrincipalPolicy.

Agent markdown

iam.principal_policy.simulate · AWS · v1

Details

Risk
Read
Idempotency
Safe
Availability
Default
Exposure
REST, SDK, MCP
MCP hints
readOnly=true, destructive=false, idempotent=true, openWorld=true

Scopes

  • iam:SimulatePrincipalPolicy

Input

Input schema
NameTypeRequiredConstraints
(root)objectYesadditionalProperties false
policy_source_arnstringYesminLength 20; maxLength 2048; pattern ^arn:aws:.+$
action_namesarray<string>YesminItems 1; maxItems 50
action_names[]stringYesminLength 3; maxLength 128; pattern ^[a-z0-9-]+:[A-Za-z0-9*]+$
resource_arnsarray<string>NomaxItems 50
resource_arns[]stringYesminLength 1; maxLength 2048; pattern ^(?:\*|arn:aws:.+)$
context_entriesarray<object>NomaxItems 50
context_entries[]objectYesadditionalProperties false
context_entries[].namestringYesminLength 1; maxLength 256
context_entries[].valuesarray<string>YesminItems 1; maxItems 20
context_entries[].values[]stringYesminLength 1; maxLength 1024
context_entries[].typestringYesenum string | stringList | numeric | numericList | boolean | booleanList | ip | ipList | binary | binaryList | date | dateList
page_sizeintegerNominimum 1; maximum 1000
cursorstringNominLength 1; maxLength 16384; pattern ^(?!.*://)[^\x00-\x1f\x7f]+$

Output

Output schema
NameTypeRequiredConstraints
(root)objectYesadditionalProperties false
evaluationsarray<object>YesmaxItems 1000
evaluations[]objectYesadditionalProperties false
evaluations[].action_namestringYesminLength 3; maxLength 128; pattern ^[a-z0-9-]+:[A-Za-z0-9*]+$
evaluations[].resource_arnstringNominLength 1; maxLength 2048
evaluations[].decisionstringYesenum allowed | explicitDeny | implicitDeny
evaluations[].missing_context_valuesarray<string>YesmaxItems 50
evaluations[].missing_context_values[]stringYesminLength 1; maxLength 256
evaluations[].matched_statementsarray<object>YesmaxItems 50
evaluations[].matched_statements[]objectYesadditionalProperties false
evaluations[].matched_statements[].source_policy_idstringNomaxLength 256
evaluations[].matched_statements[].source_policy_typestringNomaxLength 128
evaluations[].permissions_boundary_decisionbooleanNo
evaluations[].organizations_decisionbooleanNo
next_cursorstringNominLength 1; maxLength 16384; pattern ^(?!.*://)[^\x00-\x1f\x7f]+$

Raw schema

Input
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "policy_source_arn": {
      "type": "string",
      "minLength": 20,
      "maxLength": 2048,
      "pattern": "^arn:aws:.+$"
    },
    "action_names": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 3,
        "maxLength": 128,
        "pattern": "^[a-z0-9-]+:[A-Za-z0-9*]+$"
      },
      "minItems": 1,
      "maxItems": 50
    },
    "resource_arns": {
      "type": "array",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2048,
        "pattern": "^(?:\\*|arn:aws:.+)$"
      },
      "maxItems": 50
    },
    "context_entries": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "values": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 1024
            },
            "minItems": 1,
            "maxItems": 20
          },
          "type": {
            "type": "string",
            "enum": [
              "string",
              "stringList",
              "numeric",
              "numericList",
              "boolean",
              "booleanList",
              "ip",
              "ipList",
              "binary",
              "binaryList",
              "date",
              "dateList"
            ]
          }
        },
        "required": [
          "name",
          "values",
          "type"
        ]
      },
      "maxItems": 50
    },
    "page_size": {
      "type": "integer",
      "minimum": 1,
      "maximum": 1000
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "pattern": "^(?!.*://)[^\\x00-\\x1f\\x7f]+$"
    }
  },
  "required": [
    "policy_source_arn",
    "action_names"
  ]
}
Output
{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "evaluations": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "action_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 128,
            "pattern": "^[a-z0-9-]+:[A-Za-z0-9*]+$"
          },
          "resource_arn": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2048
          },
          "decision": {
            "type": "string",
            "enum": [
              "allowed",
              "explicitDeny",
              "implicitDeny"
            ]
          },
          "missing_context_values": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            },
            "maxItems": 50
          },
          "matched_statements": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "source_policy_id": {
                  "type": "string",
                  "maxLength": 256
                },
                "source_policy_type": {
                  "type": "string",
                  "maxLength": 128
                }
              }
            },
            "maxItems": 50
          },
          "permissions_boundary_decision": {
            "type": "boolean"
          },
          "organizations_decision": {
            "type": "boolean"
          }
        },
        "required": [
          "action_name",
          "decision",
          "missing_context_values",
          "matched_statements"
        ]
      },
      "maxItems": 1000
    },
    "next_cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 16384,
      "pattern": "^(?!.*://)[^\\x00-\\x1f\\x7f]+$"
    }
  },
  "required": [
    "evaluations"
  ]
}