Amazon Config · JSON Structure

Amazon Config Rule Structure

Schema for an AWS Config rule resource, representing a compliance rule that evaluates whether AWS resources conform to desired configurations.

Type: object Properties: 9 Required: 2
AuditingComplianceConfiguration ManagementGovernanceSecurity

AWS Config Rule is a JSON Structure definition published by Amazon Config, describing 9 properties, of which 2 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

ConfigRuleName ConfigRuleArn ConfigRuleId Description Scope Source InputParameters MaximumExecutionFrequency ConfigRuleState

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/amazon-config/refs/heads/main/json-structure/amazon-config-rule-structure.json",
  "name": "AWS Config Rule",
  "description": "Schema for an AWS Config rule resource, representing a compliance rule that evaluates whether AWS resources conform to desired configurations.",
  "type": "object",
  "properties": {
    "ConfigRuleName": {
      "type": "string",
      "description": "The name that you assign to the AWS Config rule.",
      "pattern": "^[a-zA-Z0-9-_]+$",
      "minLength": 1,
      "maxLength": 128
    },
    "ConfigRuleArn": {
      "type": "string",
      "description": "The ARN of the AWS Config rule.",
      "pattern": "^arn:aws:config:[a-z0-9-]+:[0-9]{12}:config-rule/.+"
    },
    "ConfigRuleId": {
      "type": "string",
      "description": "The ID of the AWS Config rule."
    },
    "Description": {
      "type": "string",
      "description": "The description that you provide for the AWS Config rule.",
      "maxLength": 256
    },
    "Scope": {
      "type": "object",
      "description": "Defines which resources trigger an evaluation for the rule.",
      "properties": {
        "ComplianceResourceTypes": {
          "type": "array",
          "description": "The resource types of only those AWS resources that you want to trigger an evaluation.",
          "items": {
            "type": "string"
          },
          "maxItems": 100
        },
        "TagKey": {
          "type": "string",
          "description": "The tag key that is applied to only those AWS resources that you want to trigger an evaluation.",
          "maxLength": 128
        },
        "TagValue": {
          "type": "string",
          "description": "The tag value applied to only those AWS resources that you want to trigger an evaluation.",
          "maxLength": 256
        },
        "ComplianceResourceId": {
          "type": "string",
          "description": "The ID of the only AWS resource that you want to trigger an evaluation.",
          "maxLength": 256
        }
      }
    },
    "Source": {
      "type": "object",
      "description": "Provides the rule owner, rule identifier, and notifications that cause the function to evaluate your AWS resources.",
      "properties": {
        "Owner": {
          "type": "string",
          "description": "Indicates whether AWS or the customer owns and manages the AWS Config rule.",
          "enum": [
            "CUSTOM_LAMBDA",
            "AWS",
            "CUSTOM_POLICY"
          ]
        },
        "SourceIdentifier": {
          "type": "string",
          "description": "For AWS managed rules, a predefined identifier. For custom rules, the ARN of the Lambda function."
        },
        "SourceDetails": {
          "type": "array",
          "description": "Provides the source and type of the event that causes AWS Config to evaluate your resources.",
          "items": {
            "type": "object",
            "properties": {
              "EventSource": {
                "type": "string",
                "enum": [
                  "aws.config"
                ]
              },
              "MessageType": {
                "type": "string",
                "enum": [
                  "ConfigurationItemChangeNotification",
                  "ConfigurationSnapshotDeliveryCompleted",
                  "ScheduledNotification",
                  "OversizedConfigurationItemChangeNotification"
                ]
              },
              "MaximumExecutionFrequency": {
                "type": "string",
                "enum": [
                  "One_Hour",
                  "Three_Hours",
                  "Six_Hours",
                  "Twelve_Hours",
                  "TwentyFour_Hours"
                ]
              }
            }
          }
        }
      },
      "required": [
        "Owner",
        "SourceIdentifier"
      ]
    },
    "InputParameters": {
      "type": "string",
      "description": "A string, in JSON format, that is passed to the AWS Config rule Lambda function.",
      "maxLength": 1024
    },
    "MaximumExecutionFrequency": {
      "type": "string",
      "description": "The maximum frequency with which AWS Config runs evaluations for a rule.",
      "enum": [
        "One_Hour",
        "Three_Hours",
        "Six_Hours",
        "Twelve_Hours",
        "TwentyFour_Hours"
      ]
    },
    "ConfigRuleState": {
      "type": "string",
      "description": "Indicates whether the AWS Config rule is active or is currently being deleted.",
      "enum": [
        "ACTIVE",
        "DELETING",
        "DELETING_RESULTS",
        "EVALUATING"
      ]
    }
  },
  "required": [
    "ConfigRuleName",
    "Source"
  ]
}