다음을 통해 공유


Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2023-04-01

Bicep 리소스 정의

ApplicationGatewayWebApplicationFirewallPolicies 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01' = {
  location: 'string'
  name: 'string'
  properties: {
    customRules: [
      {
        action: 'string'
        groupByUserSession: [
          {
            groupByVariables: [
              {
                variableName: 'string'
              }
            ]
          }
        ]
        matchConditions: [
          {
            matchValues: [
              'string'
            ]
            matchVariables: [
              {
                selector: 'string'
                variableName: 'string'
              }
            ]
            negationConditon: bool
            operator: 'string'
            transforms: [
              'string'
            ]
          }
        ]
        name: 'string'
        priority: int
        rateLimitDuration: 'string'
        rateLimitThreshold: int
        ruleType: 'string'
        state: 'string'
      }
    ]
    managedRules: {
      exclusions: [
        {
          exclusionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
        }
      ]
      managedRuleSets: [
        {
          ruleGroupOverrides: [
            {
              ruleGroupName: 'string'
              rules: [
                {
                  action: 'string'
                  ruleId: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      logScrubbing: {
        scrubbingRules: [
          {
            matchVariable: 'string'
            selector: 'string'
            selectorMatchOperator: 'string'
            state: 'string'
          }
        ]
        state: 'string'
      }
      maxRequestBodySizeInKb: int
      mode: 'string'
      requestBodyCheck: bool
      requestBodyEnforcement: bool
      requestBodyInspectLimitInKB: int
      state: 'string'
    }
  }
  tags: {
    {customized property}: 'string'
  }
}

속성 값

ExclusionManagedRule

이름 묘사
ruleId 관리되는 규칙의 식별자입니다. string(필수)

ExclusionManagedRuleGroup

이름 묘사
ruleGroupName 제외를 위한 관리되는 규칙 그룹입니다. string(필수)
규칙 제외될 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 제외됩니다. ExclusionManagedRule[]

ExclusionManagedRuleSet

이름 묘사
ruleGroups 규칙 집합에 적용할 규칙 그룹을 정의합니다. ExclusionManagedRuleGroup[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

GroupByUserSession

이름 묘사
groupByVariables group by 절 변수 목록입니다. GroupByVariable[] (필수)

GroupByVariable

이름 묘사
variableName 사용자 세션 절 변수입니다. 'ClientAddr'
'GeoLocation'
'None'(필수)

ManagedRuleGroupOverride

이름 묘사
ruleGroupName 재정의할 관리되는 규칙 그룹입니다. string(필수)
규칙 사용하지 않도록 설정할 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 비활성화됩니다. ManagedRuleOverride[]

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'Block'
'로그'
ruleId 관리되는 규칙의 식별자입니다. string(필수)
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'Enabled'

ManagedRulesDefinition

이름 묘사
제외 정책에 적용되는 제외입니다. OwaspCrsExclusionEntry[]
managedRuleSets 정책과 연결된 관리되는 규칙 집합입니다. ManagedRuleSet[] (필수)

ManagedRuleSet

이름 묘사
ruleGroupOverrides 규칙 집합에 적용할 규칙 그룹 재정의를 정의합니다. ManagedRuleGroupOverride[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

MatchCondition

이름 묘사
matchValues 일치 값입니다. string[] (필수)
matchVariables 일치 변수 목록입니다. MatchVariable[] (필수)
negationConditon 이것이 부정 조건인지 여부입니다. bool
연산자 일치시킬 연산자입니다. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'그레이터탄'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntityDecode'
'소문자'
'RemoveNulls'
'Trim'
'대문자'
'UrlDecode'
'UrlEncode'

MatchVariable

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
variableName 일치 변수입니다. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri'(필수)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

이름 묘사
위치 리소스 위치입니다. 문자열
이름 리소스 이름 문자열

제약 조건:
최대 길이 = (필수)
속성 웹 애플리케이션 방화벽 정책의 속성입니다. webApplicationFirewallPolicyPropertiesFormat
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.

OwaspCrsExclusionEntry

이름 묘사
exclusionManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. ExclusionManagedRuleSet[]
matchVariable 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith'(필수)

PolicySettings

이름 묘사
customBlockResponseBody 작업 유형이 차단된 경우 고객은 응답 본문을 재정의할 수 있습니다. 본문은 base64 인코딩에서 지정해야 합니다. 문자열

제약 조건:
최대 길이 =
패턴 = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 작업 유형이 차단된 경우 고객은 응답 상태 코드를 재정의할 수 있습니다. int

제약 조건:
최소값 = 0
fileUploadEnforcement WAF에서 파일 업로드 제한을 적용할 수 있는지 여부입니다. bool
fileUploadLimitInMb WAF의 경우 최대 파일 업로드 크기(Mb)입니다. int

제약 조건:
최소값 = 0
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 경우 최대 요청 본문 크기(Kb)입니다. int

제약 조건:
최소값 = 8
모드 정책의 모드입니다. '검색'
'방지'
requestBodyCheck WAF가 요청 본문을 확인할 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용할 수 있는지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 KB의 최대 검사 제한입니다. int
상태 정책의 상태입니다. '사용 안 함'
'Enabled'

PolicySettingsLogScrubbing

이름 묘사
scrubbingRules 스크러빙을 위해 로그에 적용되는 규칙입니다. webApplicationFirewallScrubbingRules[]
상태 로그 스크러빙 구성의 상태입니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'

ResourceTags

이름 묘사

WebApplicationFirewallCustomRule

이름 묘사
행동 작업 유형입니다. '허용'
'Block'
'Log'(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
이름 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열

제약 조건:
최대 길이 =
우선권 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 앞에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책이 적용되는 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. 'FiveMins'
'OneMin'
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. 'Invalid'
'MatchRule'
'RateLimitRule'(필수)
상태 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 기본값은 지정되지 않은 경우 사용으로 설정됩니다. '사용 안 함'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

이름 묘사
customRules 정책 내의 사용자 지정 규칙입니다. webApplicationFirewallCustomRule[]
managedRules managedRules 구조를 설명합니다. managedRulesDefinition (필수)
policySettings 정책에 대한 PolicySettings입니다. PolicySettings

WebApplicationFirewallScrubbingRules

이름 묘사
matchVariable 로그에서 스크러빙할 변수입니다. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames'(필수)
선택자 matchVariable이 컬렉션인 경우 이 규칙이 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. 문자열
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 규칙이 적용되는 컬렉션의 요소를 지정합니다. 'Equals'
'EqualsAny'(필수)
상태 로그 스크러빙 규칙의 상태를 정의합니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'

빠른 시작 샘플

다음 빠른 시작 샘플은 이 리소스 유형을 배포합니다.

Bicep 파일 묘사
NAT 게이트웨이 및 Application Gateway 사용하여 AKS 클러스터 이 샘플에서는 아웃바운드 연결을 위한 NAT 게이트웨이와 인바운드 연결을 위한 Application Gateway를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
Application Gateway 수신 컨트롤러 사용하여 AKS 클러스터 이 샘플에서는 Application Gateway, Application Gateway 수신 컨트롤러, Azure Container Registry, Log Analytics 및 Key Vault를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
WAF 및 방화벽 정책 사용하여 Application Gateway 이 템플릿은 방화벽 정책과 함께 구성된 WAF를 사용하여 Application Gateway를 만듭니다.
Azure Application Gateway Azure WAF v2 만들기 이 템플릿은 백 엔드 풀에 두 개의 Windows Server 2016 서버가 있는 Azure Application Gateway에 Azure Web Application Firewall v2를 만듭니다.
Application Gateway 원본 사용하여 Front Door 표준/프리미엄 이 템플릿은 Front Door 표준/프리미엄 및 Application Gateway 인스턴스를 만들고 NSG 및 WAF 정책을 사용하여 트래픽이 Front Door 원본을 통과했는지 확인합니다.
컨테이너 인스턴스 및 Application Gateway 사용하여 Front Door 이 템플릿은 컨테이너 그룹 및 Application Gateway를 사용하여 Front Door 표준/프리미엄을 만듭니다.

ARM 템플릿 리소스 정의

ApplicationGatewayWebApplicationFirewallPolicies 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 리소스를 만들려면 템플릿에 다음 JSON을 추가합니다.

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-04-01",
  "name": "string",
  "location": "string",
  "properties": {
    "customRules": [
      {
        "action": "string",
        "groupByUserSession": [
          {
            "groupByVariables": [
              {
                "variableName": "string"
              }
            ]
          }
        ],
        "matchConditions": [
          {
            "matchValues": [ "string" ],
            "matchVariables": [
              {
                "selector": "string",
                "variableName": "string"
              }
            ],
            "negationConditon": "bool",
            "operator": "string",
            "transforms": [ "string" ]
          }
        ],
        "name": "string",
        "priority": "int",
        "rateLimitDuration": "string",
        "rateLimitThreshold": "int",
        "ruleType": "string",
        "state": "string"
      }
    ],
    "managedRules": {
      "exclusions": [
        {
          "exclusionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string"
        }
      ],
      "managedRuleSets": [
        {
          "ruleGroupOverrides": [
            {
              "ruleGroupName": "string",
              "rules": [
                {
                  "action": "string",
                  "ruleId": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "logScrubbing": {
        "scrubbingRules": [
          {
            "matchVariable": "string",
            "selector": "string",
            "selectorMatchOperator": "string",
            "state": "string"
          }
        ],
        "state": "string"
      },
      "maxRequestBodySizeInKb": "int",
      "mode": "string",
      "requestBodyCheck": "bool",
      "requestBodyEnforcement": "bool",
      "requestBodyInspectLimitInKB": "int",
      "state": "string"
    }
  },
  "tags": {
    "{customized property}": "string"
  }
}

속성 값

ExclusionManagedRule

이름 묘사
ruleId 관리되는 규칙의 식별자입니다. string(필수)

ExclusionManagedRuleGroup

이름 묘사
ruleGroupName 제외를 위한 관리되는 규칙 그룹입니다. string(필수)
규칙 제외될 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 제외됩니다. ExclusionManagedRule[]

ExclusionManagedRuleSet

이름 묘사
ruleGroups 규칙 집합에 적용할 규칙 그룹을 정의합니다. ExclusionManagedRuleGroup[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

GroupByUserSession

이름 묘사
groupByVariables group by 절 변수 목록입니다. GroupByVariable[] (필수)

GroupByVariable

이름 묘사
variableName 사용자 세션 절 변수입니다. 'ClientAddr'
'GeoLocation'
'None'(필수)

ManagedRuleGroupOverride

이름 묘사
ruleGroupName 재정의할 관리되는 규칙 그룹입니다. string(필수)
규칙 사용하지 않도록 설정할 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 비활성화됩니다. ManagedRuleOverride[]

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'Block'
'로그'
ruleId 관리되는 규칙의 식별자입니다. string(필수)
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'Enabled'

ManagedRulesDefinition

이름 묘사
제외 정책에 적용되는 제외입니다. OwaspCrsExclusionEntry[]
managedRuleSets 정책과 연결된 관리되는 규칙 집합입니다. ManagedRuleSet[] (필수)

ManagedRuleSet

이름 묘사
ruleGroupOverrides 규칙 집합에 적용할 규칙 그룹 재정의를 정의합니다. ManagedRuleGroupOverride[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

MatchCondition

이름 묘사
matchValues 일치 값입니다. string[] (필수)
matchVariables 일치 변수 목록입니다. MatchVariable[] (필수)
negationConditon 이것이 부정 조건인지 여부입니다. bool
연산자 일치시킬 연산자입니다. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'그레이터탄'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntityDecode'
'소문자'
'RemoveNulls'
'Trim'
'대문자'
'UrlDecode'
'UrlEncode'

MatchVariable

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
variableName 일치 변수입니다. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri'(필수)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

이름 묘사
apiVersion api 버전 '2023-04-01'
위치 리소스 위치입니다. 문자열
이름 리소스 이름 문자열

제약 조건:
최대 길이 = (필수)
속성 웹 애플리케이션 방화벽 정책의 속성입니다. webApplicationFirewallPolicyPropertiesFormat
태그 리소스 태그 태그 이름 및 값의 사전입니다. 템플릿 태그를 참조하세요.
리소스 종류 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'

OwaspCrsExclusionEntry

이름 묘사
exclusionManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. ExclusionManagedRuleSet[]
matchVariable 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith'(필수)

PolicySettings

이름 묘사
customBlockResponseBody 작업 유형이 차단된 경우 고객은 응답 본문을 재정의할 수 있습니다. 본문은 base64 인코딩에서 지정해야 합니다. 문자열

제약 조건:
최대 길이 =
패턴 = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 작업 유형이 차단된 경우 고객은 응답 상태 코드를 재정의할 수 있습니다. int

제약 조건:
최소값 = 0
fileUploadEnforcement WAF에서 파일 업로드 제한을 적용할 수 있는지 여부입니다. bool
fileUploadLimitInMb WAF의 경우 최대 파일 업로드 크기(Mb)입니다. int

제약 조건:
최소값 = 0
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 경우 최대 요청 본문 크기(Kb)입니다. int

제약 조건:
최소값 = 8
모드 정책의 모드입니다. '검색'
'방지'
requestBodyCheck WAF가 요청 본문을 확인할 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용할 수 있는지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 KB의 최대 검사 제한입니다. int
상태 정책의 상태입니다. '사용 안 함'
'Enabled'

PolicySettingsLogScrubbing

이름 묘사
scrubbingRules 스크러빙을 위해 로그에 적용되는 규칙입니다. webApplicationFirewallScrubbingRules[]
상태 로그 스크러빙 구성의 상태입니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'

ResourceTags

이름 묘사

WebApplicationFirewallCustomRule

이름 묘사
행동 작업 유형입니다. '허용'
'Block'
'Log'(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
이름 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열

제약 조건:
최대 길이 =
우선권 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 앞에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책이 적용되는 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. 'FiveMins'
'OneMin'
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. 'Invalid'
'MatchRule'
'RateLimitRule'(필수)
상태 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 기본값은 지정되지 않은 경우 사용으로 설정됩니다. '사용 안 함'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

이름 묘사
customRules 정책 내의 사용자 지정 규칙입니다. webApplicationFirewallCustomRule[]
managedRules managedRules 구조를 설명합니다. managedRulesDefinition (필수)
policySettings 정책에 대한 PolicySettings입니다. PolicySettings

WebApplicationFirewallScrubbingRules

이름 묘사
matchVariable 로그에서 스크러빙할 변수입니다. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames'(필수)
선택자 matchVariable이 컬렉션인 경우 이 규칙이 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. 문자열
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 규칙이 적용되는 컬렉션의 요소를 지정합니다. 'Equals'
'EqualsAny'(필수)
상태 로그 스크러빙 규칙의 상태를 정의합니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 유형을 배포합니다.

템플렛 묘사
NAT 게이트웨이 및 Application Gateway 사용하여 AKS 클러스터

Azure
배포
이 샘플에서는 아웃바운드 연결을 위한 NAT 게이트웨이와 인바운드 연결을 위한 Application Gateway를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
Application Gateway 수신 컨트롤러 사용하여 AKS 클러스터

Azure
배포
이 샘플에서는 Application Gateway, Application Gateway 수신 컨트롤러, Azure Container Registry, Log Analytics 및 Key Vault를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
WAF 및 방화벽 정책 사용하여 Application Gateway

Azure
배포
이 템플릿은 방화벽 정책과 함께 구성된 WAF를 사용하여 Application Gateway를 만듭니다.
Azure Application Gateway Azure WAF v2 만들기

Azure 배포
이 템플릿은 백 엔드 풀에 두 개의 Windows Server 2016 서버가 있는 Azure Application Gateway에 Azure Web Application Firewall v2를 만듭니다.
Application Gateway 원본 사용하여 Front Door 표준/프리미엄

Azure
배포
이 템플릿은 Front Door 표준/프리미엄 및 Application Gateway 인스턴스를 만들고 NSG 및 WAF 정책을 사용하여 트래픽이 Front Door 원본을 통과했는지 확인합니다.
컨테이너 인스턴스 및 Application Gateway 사용하여 Front Door

Azure
배포
이 템플릿은 컨테이너 그룹 및 Application Gateway를 사용하여 Front Door 표준/프리미엄을 만듭니다.

Terraform(AzAPI 공급자) 리소스 정의

ApplicationGatewayWebApplicationFirewallPolicies 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.

  • 리소스 그룹

각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.

리소스 형식

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 리소스를 만들려면 템플릿에 다음 Terraform을 추가합니다.

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"
  name = "string"
  location = "string"
  body = jsonencode({
    properties = {
      customRules = [
        {
          action = "string"
          groupByUserSession = [
            {
              groupByVariables = [
                {
                  variableName = "string"
                }
              ]
            }
          ]
          matchConditions = [
            {
              matchValues = [
                "string"
              ]
              matchVariables = [
                {
                  selector = "string"
                  variableName = "string"
                }
              ]
              negationConditon = bool
              operator = "string"
              transforms = [
                "string"
              ]
            }
          ]
          name = "string"
          priority = int
          rateLimitDuration = "string"
          rateLimitThreshold = int
          ruleType = "string"
          state = "string"
        }
      ]
      managedRules = {
        exclusions = [
          {
            exclusionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
          }
        ]
        managedRuleSets = [
          {
            ruleGroupOverrides = [
              {
                ruleGroupName = "string"
                rules = [
                  {
                    action = "string"
                    ruleId = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        logScrubbing = {
          scrubbingRules = [
            {
              matchVariable = "string"
              selector = "string"
              selectorMatchOperator = "string"
              state = "string"
            }
          ]
          state = "string"
        }
        maxRequestBodySizeInKb = int
        mode = "string"
        requestBodyCheck = bool
        requestBodyEnforcement = bool
        requestBodyInspectLimitInKB = int
        state = "string"
      }
    }
  })
  tags = {
    {customized property} = "string"
  }
}

속성 값

ExclusionManagedRule

이름 묘사
ruleId 관리되는 규칙의 식별자입니다. string(필수)

ExclusionManagedRuleGroup

이름 묘사
ruleGroupName 제외를 위한 관리되는 규칙 그룹입니다. string(필수)
규칙 제외될 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 제외됩니다. ExclusionManagedRule[]

ExclusionManagedRuleSet

이름 묘사
ruleGroups 규칙 집합에 적용할 규칙 그룹을 정의합니다. ExclusionManagedRuleGroup[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

GroupByUserSession

이름 묘사
groupByVariables group by 절 변수 목록입니다. GroupByVariable[] (필수)

GroupByVariable

이름 묘사
variableName 사용자 세션 절 변수입니다. 'ClientAddr'
'GeoLocation'
'None'(필수)

ManagedRuleGroupOverride

이름 묘사
ruleGroupName 재정의할 관리되는 규칙 그룹입니다. string(필수)
규칙 사용하지 않도록 설정할 규칙 목록입니다. 지정하지 않으면 그룹의 모든 규칙이 비활성화됩니다. ManagedRuleOverride[]

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'Block'
'로그'
ruleId 관리되는 규칙의 식별자입니다. string(필수)
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'Enabled'

ManagedRulesDefinition

이름 묘사
제외 정책에 적용되는 제외입니다. OwaspCrsExclusionEntry[]
managedRuleSets 정책과 연결된 관리되는 규칙 집합입니다. ManagedRuleSet[] (필수)

ManagedRuleSet

이름 묘사
ruleGroupOverrides 규칙 집합에 적용할 규칙 그룹 재정의를 정의합니다. ManagedRuleGroupOverride[]
ruleSetType 사용할 규칙 집합 형식을 정의합니다. string(필수)
ruleSetVersion 사용할 규칙 집합의 버전을 정의합니다. string(필수)

MatchCondition

이름 묘사
matchValues 일치 값입니다. string[] (필수)
matchVariables 일치 변수 목록입니다. MatchVariable[] (필수)
negationConditon 이것이 부정 조건인지 여부입니다. bool
연산자 일치시킬 연산자입니다. 'Any'
'BeginsWith'
'Contains'
'EndsWith'
'Equal'
'GeoMatch'
'그레이터탄'
'GreaterThanOrEqual'
'IPMatch'
'LessThan'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntityDecode'
'소문자'
'RemoveNulls'
'Trim'
'대문자'
'UrlDecode'
'UrlEncode'

MatchVariable

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
variableName 일치 변수입니다. 'PostArgs'
'QueryString'
'RemoteAddr'
'RequestBody'
'RequestCookies'
'RequestHeaders'
'RequestMethod'
'RequestUri'(필수)

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

이름 묘사
위치 리소스 위치입니다. 문자열
이름 리소스 이름 문자열

제약 조건:
최대 길이 = (필수)
속성 웹 애플리케이션 방화벽 정책의 속성입니다. webApplicationFirewallPolicyPropertiesFormat
태그 리소스 태그 태그 이름 및 값의 사전입니다.
리소스 종류 "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"

OwaspCrsExclusionEntry

이름 묘사
exclusionManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. ExclusionManagedRuleSet[]
matchVariable 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'RequestHeaderNames'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. 'Contains'
'EndsWith'
'Equals'
'EqualsAny'
'StartsWith'(필수)

PolicySettings

이름 묘사
customBlockResponseBody 작업 유형이 차단된 경우 고객은 응답 본문을 재정의할 수 있습니다. 본문은 base64 인코딩에서 지정해야 합니다. 문자열

제약 조건:
최대 길이 =
패턴 = ^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$
customBlockResponseStatusCode 작업 유형이 차단된 경우 고객은 응답 상태 코드를 재정의할 수 있습니다. int

제약 조건:
최소값 = 0
fileUploadEnforcement WAF에서 파일 업로드 제한을 적용할 수 있는지 여부입니다. bool
fileUploadLimitInMb WAF의 경우 최대 파일 업로드 크기(Mb)입니다. int

제약 조건:
최소값 = 0
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 경우 최대 요청 본문 크기(Kb)입니다. int

제약 조건:
최소값 = 8
모드 정책의 모드입니다. '검색'
'방지'
requestBodyCheck WAF가 요청 본문을 확인할 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용할 수 있는지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 KB의 최대 검사 제한입니다. int
상태 정책의 상태입니다. '사용 안 함'
'Enabled'

PolicySettingsLogScrubbing

이름 묘사
scrubbingRules 스크러빙을 위해 로그에 적용되는 규칙입니다. webApplicationFirewallScrubbingRules[]
상태 로그 스크러빙 구성의 상태입니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'

ResourceTags

이름 묘사

WebApplicationFirewallCustomRule

이름 묘사
행동 작업 유형입니다. '허용'
'Block'
'Log'(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
이름 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열

제약 조건:
최대 길이 =
우선권 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 앞에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책이 적용되는 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. 'FiveMins'
'OneMin'
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. 'Invalid'
'MatchRule'
'RateLimitRule'(필수)
상태 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 기본값은 지정되지 않은 경우 사용으로 설정됩니다. '사용 안 함'
'Enabled'

WebApplicationFirewallPolicyPropertiesFormat

이름 묘사
customRules 정책 내의 사용자 지정 규칙입니다. webApplicationFirewallCustomRule[]
managedRules managedRules 구조를 설명합니다. managedRulesDefinition (필수)
policySettings 정책에 대한 PolicySettings입니다. PolicySettings

WebApplicationFirewallScrubbingRules

이름 묘사
matchVariable 로그에서 스크러빙할 변수입니다. 'RequestArgNames'
'RequestCookieNames'
'RequestHeaderNames'
'RequestIPAddress'
'RequestJSONArgNames'
'RequestPostArgNames'(필수)
선택자 matchVariable이 컬렉션인 경우 이 규칙이 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. 문자열
selectorMatchOperator matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 규칙이 적용되는 컬렉션의 요소를 지정합니다. 'Equals'
'EqualsAny'(필수)
상태 로그 스크러빙 규칙의 상태를 정의합니다. 기본값은 Enabled입니다. '사용 안 함'
'Enabled'