다음을 통해 공유


Microsoft.Network 애플리케이션GatewayWebApplication방화벽정책 2024-05-01

Bicep 리소스 정의

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

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

리소스 형식

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

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-05-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: {
      exceptions: [
        {
          exceptionManagedRuleSets: [
            {
              ruleGroups: [
                {
                  ruleGroupName: 'string'
                  rules: [
                    {
                      ruleId: 'string'
                    }
                  ]
                }
              ]
              ruleSetType: 'string'
              ruleSetVersion: 'string'
            }
          ]
          matchVariable: 'string'
          selector: 'string'
          selectorMatchOperator: 'string'
          valueMatchOperator: 'string'
          values: [
            'string'
          ]
        }
      ]
      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'
                  sensitivity: 'string'
                  state: 'string'
                }
              ]
            }
          ]
          ruleSetType: 'string'
          ruleSetVersion: 'string'
        }
      ]
    }
    policySettings: {
      customBlockResponseBody: 'string'
      customBlockResponseStatusCode: int
      fileUploadEnforcement: bool
      fileUploadLimitInMb: int
      jsChallengeCookieExpirationInMins: 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'
  }
}

속성 값

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

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

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

예외 항목

이름 묘사
예외관리규칙셋 예외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 예외 조건을 평가하는 변수 '리모트애드r'
'요청 헤더'
'RequestURI'(필수)
선택자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 키를 식별합니다. 문자열
선택자 일치 연산자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 선택기에서 작동합니다. '포함하다'
'엔드위드'
'같음'
'시작과 함께'
valueMatch연산자 matchVariable에 허용되는 값에 대해 작동합니다. '포함하다'
'엔드위드'
'같음'
'아이피마치'
'StartsWith'(필수)
matchVariable에 허용되는 값 문자열[]

제외관리규칙

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

제외관리규칙그룹

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

제외ManagedRuleSet

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

GroupByUserSession

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

GroupByVariable (그룹별)

이름 묘사
변수 이름 사용자 세션 절 변수입니다. '클라이언트 주소'
'지리적 위치'
'None'(필수)

ManagedRuleGroupOverride

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

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'블록'
'제이제이챌렝지'
'로그'
ruleId입니다 관리되는 규칙의 식별자입니다. string(필수)
민감 규칙이 일치할 때 적용할 재정의 민감도를 설명합니다. '높음'
'낮음'
'중간'
'없음'
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'사용'

ManagedRules정의

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

관리 규칙 집합

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

매치컨디션

이름 묘사
matchValues 일치 값입니다. string[] (필수)
match변수 일치 변수 목록입니다. MatchVariable[] (필수)
부정Conditon 이것이 부정 조건인지 여부입니다. 부울
연산자 일치시킬 연산자입니다. '어떤'
'비긴즈위즈'
'포함하다'
'엔드위드'
'평등'
'지오매치'
'그레이터탄'
'보다 크거나 같음'
'아이피마치'
'레스 댄'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntity디코딩'
'소문자'
'nulls 제거'
'트림'
'대문자'
'URL 디코딩'
'url인코딩'

Match변수

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
변수 이름 일치 변수입니다. '포스트인수'
'쿼리 문자열'
'리모트애드r'
'요청 본문'
'요청 쿠키'
'요청 헤더'
'요청 방법'
'RequestUri'(필수)

OwaspCrsExclusionEntry

이름 묘사
제외ManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'요청 헤더 이름'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
선택자 일치 연산자 matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. '포함하다'
'엔드위드'
'같음'
'이퀄스애니'
'StartsWith'(필수)

정책 설정

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

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

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

제약 조건:
최소값 = 0
js챌린지쿠키만료InMins 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. 정수

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

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

PolicySettings로그 스크러빙

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

리소스태그

이름 묘사

WebApplicationFirewallCustomRule (영문)

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

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

WebApplicationFirewallPolicyProperties형식

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

WebApplicationFirewall스크러빙규칙

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

사용 예제

Azure 확인된 모듈

다음 Azure 확인된 모듈 사용하여 이 리소스 유형을 배포할 수 있습니다.

모듈 묘사
Application Gateway WAF(웹 애플리케이션 방화벽) 정책 APPLICATION Gateway WAF(웹 애플리케이션 방화벽) 정책용 AVM 리소스 모듈

Azure 빠른 시작 샘플

다음 Azure 빠른 시작 템플릿에는 이 리소스 유형을 배포하기 위한 Bicep 샘플이 포함되어 있습니다.

Bicep 파일 묘사
NAT 게이트웨이 및 Application Gateway 사용하여 AKS 클러스터 이 샘플에서는 아웃바운드 연결을 위한 NAT 게이트웨이와 인바운드 연결을 위한 Application Gateway를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
Application Gateway 수신 컨트롤러 사용하여 AKS 클러스터 이 샘플에서는 Application Gateway, Application Gateway 수신 컨트롤러, Azure Container Registry, Log Analytics 및 Key Vault를 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
url 경로 기반 라우팅 대한 Application Gateway 이 템플릿은 Application Gateway를 만들고 URL 경로 기반 라우팅에 대해 구성합니다.
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": "2024-05-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": {
      "exceptions": [
        {
          "exceptionManagedRuleSets": [
            {
              "ruleGroups": [
                {
                  "ruleGroupName": "string",
                  "rules": [
                    {
                      "ruleId": "string"
                    }
                  ]
                }
              ],
              "ruleSetType": "string",
              "ruleSetVersion": "string"
            }
          ],
          "matchVariable": "string",
          "selector": "string",
          "selectorMatchOperator": "string",
          "valueMatchOperator": "string",
          "values": [ "string" ]
        }
      ],
      "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",
                  "sensitivity": "string",
                  "state": "string"
                }
              ]
            }
          ],
          "ruleSetType": "string",
          "ruleSetVersion": "string"
        }
      ]
    },
    "policySettings": {
      "customBlockResponseBody": "string",
      "customBlockResponseStatusCode": "int",
      "fileUploadEnforcement": "bool",
      "fileUploadLimitInMb": "int",
      "jsChallengeCookieExpirationInMins": "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"
  }
}

속성 값

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

이름 묘사
API버전 api 버전 '2024-05-01'
위치 리소스 위치입니다. 문자열
이름 리소스 이름 문자열

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

예외 항목

이름 묘사
예외관리규칙셋 예외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 예외 조건을 평가하는 변수 '리모트애드r'
'요청 헤더'
'RequestURI'(필수)
선택자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 키를 식별합니다. 문자열
선택자 일치 연산자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 선택기에서 작동합니다. '포함하다'
'엔드위드'
'같음'
'시작과 함께'
valueMatch연산자 matchVariable에 허용되는 값에 대해 작동합니다. '포함하다'
'엔드위드'
'같음'
'아이피마치'
'StartsWith'(필수)
matchVariable에 허용되는 값 문자열[]

제외관리규칙

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

제외관리규칙그룹

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

제외ManagedRuleSet

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

GroupByUserSession

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

GroupByVariable (그룹별)

이름 묘사
변수 이름 사용자 세션 절 변수입니다. '클라이언트 주소'
'지리적 위치'
'None'(필수)

ManagedRuleGroupOverride

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

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'블록'
'제이제이챌렝지'
'로그'
ruleId입니다 관리되는 규칙의 식별자입니다. string(필수)
민감 규칙이 일치할 때 적용할 재정의 민감도를 설명합니다. '높음'
'낮음'
'중간'
'없음'
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'사용'

ManagedRules정의

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

관리 규칙 집합

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

매치컨디션

이름 묘사
matchValues 일치 값입니다. string[] (필수)
match변수 일치 변수 목록입니다. MatchVariable[] (필수)
부정Conditon 이것이 부정 조건인지 여부입니다. 부울
연산자 일치시킬 연산자입니다. '어떤'
'비긴즈위즈'
'포함하다'
'엔드위드'
'평등'
'지오매치'
'그레이터탄'
'보다 크거나 같음'
'아이피마치'
'레스 댄'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntity디코딩'
'소문자'
'nulls 제거'
'트림'
'대문자'
'URL 디코딩'
'url인코딩'

Match변수

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
변수 이름 일치 변수입니다. '포스트인수'
'쿼리 문자열'
'리모트애드r'
'요청 본문'
'요청 쿠키'
'요청 헤더'
'요청 방법'
'RequestUri'(필수)

OwaspCrsExclusionEntry

이름 묘사
제외ManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'요청 헤더 이름'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
선택자 일치 연산자 matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. '포함하다'
'엔드위드'
'같음'
'이퀄스애니'
'StartsWith'(필수)

정책 설정

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

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

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

제약 조건:
최소값 = 0
js챌린지쿠키만료InMins 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. 정수

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

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

PolicySettings로그 스크러빙

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

리소스태그

이름 묘사

WebApplicationFirewallCustomRule (영문)

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

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

WebApplicationFirewallPolicyProperties형식

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

WebApplicationFirewall스크러빙규칙

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

사용 예제

Azure 빠른 시작 템플릿

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

템플렛 묘사
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 클러스터를 배포하는 방법을 보여 줍니다.
url 경로 기반 라우팅 대한 Application Gateway

Azure
배포
이 템플릿은 Application Gateway를 만들고 URL 경로 기반 라우팅에 대해 구성합니다.
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@2024-05-01"
  name = "string"
  parent_id = "string"
  location = "string"
  tags = {
    {customized property} = "string"
  }
  body = {
    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 = {
        exceptions = [
          {
            exceptionManagedRuleSets = [
              {
                ruleGroups = [
                  {
                    ruleGroupName = "string"
                    rules = [
                      {
                        ruleId = "string"
                      }
                    ]
                  }
                ]
                ruleSetType = "string"
                ruleSetVersion = "string"
              }
            ]
            matchVariable = "string"
            selector = "string"
            selectorMatchOperator = "string"
            valueMatchOperator = "string"
            values = [
              "string"
            ]
          }
        ]
        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"
                    sensitivity = "string"
                    state = "string"
                  }
                ]
              }
            ]
            ruleSetType = "string"
            ruleSetVersion = "string"
          }
        ]
      }
      policySettings = {
        customBlockResponseBody = "string"
        customBlockResponseStatusCode = int
        fileUploadEnforcement = bool
        fileUploadLimitInMb = int
        jsChallengeCookieExpirationInMins = 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"
      }
    }
  }
}

속성 값

Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies

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

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

예외 항목

이름 묘사
예외관리규칙셋 예외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 예외 조건을 평가하는 변수 '리모트애드r'
'요청 헤더'
'RequestURI'(필수)
선택자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 키를 식별합니다. 문자열
선택자 일치 연산자 matchVariable이 키-값 쌍(예: RequestHeader)을 가리키는 경우 선택기에서 작동합니다. '포함하다'
'엔드위드'
'같음'
'시작과 함께'
valueMatch연산자 matchVariable에 허용되는 값에 대해 작동합니다. '포함하다'
'엔드위드'
'같음'
'아이피마치'
'StartsWith'(필수)
matchVariable에 허용되는 값 문자열[]

제외관리규칙

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

제외관리규칙그룹

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

제외ManagedRuleSet

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

GroupByUserSession

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

GroupByVariable (그룹별)

이름 묘사
변수 이름 사용자 세션 절 변수입니다. '클라이언트 주소'
'지리적 위치'
'None'(필수)

ManagedRuleGroupOverride

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

ManagedRuleOverride

이름 묘사
행동 규칙이 일치할 때 적용할 재정의 동작에 대해 설명합니다. '허용'
'AnomalyScoring'
'블록'
'제이제이챌렝지'
'로그'
ruleId입니다 관리되는 규칙의 식별자입니다. string(필수)
민감 규칙이 일치할 때 적용할 재정의 민감도를 설명합니다. '높음'
'낮음'
'중간'
'없음'
상태 관리되는 규칙의 상태입니다. 지정하지 않으면 기본값이 Disabled로 설정됩니다. '사용 안 함'
'사용'

ManagedRules정의

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

관리 규칙 집합

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

매치컨디션

이름 묘사
matchValues 일치 값입니다. string[] (필수)
match변수 일치 변수 목록입니다. MatchVariable[] (필수)
부정Conditon 이것이 부정 조건인지 여부입니다. 부울
연산자 일치시킬 연산자입니다. '어떤'
'비긴즈위즈'
'포함하다'
'엔드위드'
'평등'
'지오매치'
'그레이터탄'
'보다 크거나 같음'
'아이피마치'
'레스 댄'
'LessThanOrEqual'
'Regex'(필수)
변환 변환 목록입니다. 다음 중 어느 것을 포함하는 문자열 배열:
'HtmlEntity디코딩'
'소문자'
'nulls 제거'
'트림'
'대문자'
'URL 디코딩'
'url인코딩'

Match변수

이름 묘사
선택자 일치 변수의 선택기입니다. 문자열
변수 이름 일치 변수입니다. '포스트인수'
'쿼리 문자열'
'리모트애드r'
'요청 본문'
'요청 쿠키'
'요청 헤더'
'요청 방법'
'RequestUri'(필수)

OwaspCrsExclusionEntry

이름 묘사
제외ManagedRuleSets 제외와 연결된 관리되는 규칙 집합입니다. 제외관리규칙집합[]
매치변수 (matchVariable) 제외할 변수입니다. 'RequestArgKeys'
'RequestArgNames'
'RequestArgValues'
'RequestCookieKeys'
'RequestCookieNames'
'RequestCookieValues'
'RequestHeaderKeys'
'요청 헤더 이름'
'RequestHeaderValues'(필수)
선택자 matchVariable이 컬렉션인 경우 이 제외가 적용되는 컬렉션의 요소를 지정하는 데 사용되는 연산자입니다. string(필수)
선택자 일치 연산자 matchVariable이 컬렉션인 경우 선택기에서 작동하여 이 제외가 적용되는 컬렉션의 요소를 지정합니다. '포함하다'
'엔드위드'
'같음'
'이퀄스애니'
'StartsWith'(필수)

정책 설정

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

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

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

제약 조건:
최소값 = 0
js챌린지쿠키만료InMins 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. 정수

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

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

PolicySettings로그 스크러빙

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

리소스태그

이름 묘사

WebApplicationFirewallCustomRule (영문)

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

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

WebApplicationFirewallPolicyProperties형식

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

WebApplicationFirewall스크러빙규칙

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

사용 예제

Azure 확인된 모듈

다음 Azure 확인된 모듈 사용하여 이 리소스 유형을 배포할 수 있습니다.

모듈 묘사
Application Gateway WAF(웹 애플리케이션 방화벽) 정책 APPLICATION Gateway WAF(웹 애플리케이션 방화벽) 정책용 AVM 리소스 모듈