Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies

Bicep 리소스 정의

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

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

리소스 형식

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

resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01' = {
  name: 'string'
  location: 'string'
  tags: {
    tagName1: 'tagValue1'
    tagName2: 'tagValue2'
  }
  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'
    }
  }
}

속성 값

ApplicationGatewayWebApplicationFirewallPolicies

이름 Description
name 리소스 이름 string(필수)
위치 리소스 위치. 문자열
tags 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿의 태그를 참조하세요.
properties 웹 애플리케이션 방화벽 정책의 속성입니다. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

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

WebApplicationFirewallCustomRule

이름 Description
action 작업 유형입니다. '허용'
'Block'
'Log'(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
name 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열
priority 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 앞에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책이 적용되는 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. 'FiveMins'
'OneMin'
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. 'Invalid'
'MatchRule'
'RateLimitRule'(필수)
state 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 지정하지 않으면 기본적으로 사용으로 설정됩니다. 'Disabled'
'Enabled'

GroupByUserSession

이름 Description
groupByVariables 절 변수별 그룹 목록입니다. GroupByVariable[] (필수)

GroupByVariable

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

MatchCondition

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

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

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

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

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

PolicySettings

이름 Description
customBlockResponseBody 작업 유형이 차단된 경우 고객은 응답 본문을 재정의할 수 있습니다. base64 인코딩에서 본문을 지정해야 합니다. 문자열
customBlockResponseStatusCode 작업 유형이 차단되면 고객은 응답 상태 코드를 재정의할 수 있습니다. int
fileUploadEnforcement WAF에서 파일 업로드 제한을 적용할 수 있는지 여부입니다. bool
fileUploadLimitInMb WAF의 경우 최대 파일 업로드 크기(Mb)입니다. int
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 최대 요청 본문 크기(Kb)입니다. int
mode 정책의 모드입니다. '검색'
'방지'
requestBodyCheck WAF가 요청 본문을 검사 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용하도록 허용할지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 KB의 최대 검사 제한입니다. int
state 정책의 상태입니다. 'Disabled'
'Enabled'

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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

빠른 시작 템플릿

다음 빠른 시작 템플릿은 이 리소스 종류를 배포합니다.

템플릿 Description
Azure Application Gateway Azure WAF v2 만들기

Azure에 배포
이 템플릿은 백 엔드 풀에 두 개의 Windows Server 2016 서버가 있는 Azure Application Gateway Azure Web Application Firewall v2를 만듭니다.
NAT 게이트웨이 및 Application Gateway 사용하는 AKS 클러스터

Azure에 배포
이 샘플에서는 아웃바운드 연결을 위한 NAT Gateway 및 인바운드 연결에 대한 Application Gateway 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
Application Gateway 원본이 있는 Front Door 표준/프리미엄

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

Azure에 배포
이 템플릿은 컨테이너 그룹을 사용하여 Front Door 표준/프리미엄을 만들고 Application Gateway.
Application Gateway 수신 컨트롤러를 사용하는 AKS 클러스터

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

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

ARM 템플릿 리소스 정의

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

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

리소스 형식

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

{
  "type": "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies",
  "apiVersion": "2023-04-01",
  "name": "string",
  "location": "string",
  "tags": {
    "tagName1": "tagValue1",
    "tagName2": "tagValue2"
  },
  "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"
    }
  }
}

속성 값

ApplicationGatewayWebApplicationFirewallPolicies

이름 Description
형식 리소스 종류 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies'
apiVersion 리소스 api 버전 '2023-04-01'
name 리소스 이름 string(필수)
위치 리소스 위치. 문자열
tags 리소스 태그. 태그 이름 및 값의 사전입니다. 템플릿의 태그를 참조하세요.
properties 웹 애플리케이션 방화벽 정책의 속성입니다. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

이름 Description
customRules 정책 내의 사용자 지정 규칙입니다. WebApplicationFirewallCustomRule[]
managedRules managedRules 구조체에 대해 설명합니다. ManagedRulesDefinition (필수)
policySettings 정책에 대한 PolicySettings입니다. PolicySettings

WebApplicationFirewallCustomRule

이름 Description
action 작업 유형입니다. '허용'
'Block'
'Log'(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
name 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열
priority 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 전에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책을 적용할 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. 'FiveMins'
'OneMin'
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. '유효하지 않음'
'MatchRule'
'RateLimitRule'(필수)
state 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 지정하지 않으면 기본값은 사용으로 설정됩니다. '사용 안 함'
'사용'

GroupByUserSession

이름 Description
groupByVariables 절 변수별 그룹 목록입니다. GroupByVariable[] (필수)

GroupByVariable

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

MatchCondition

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

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

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

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

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

PolicySettings

이름 Description
customBlockResponseBody 작업 유형이 차단인 경우 고객은 응답 본문을 재정의할 수 있습니다. 본문은 base64 인코딩에 지정해야 합니다. 문자열
customBlockResponseStatusCode 작업 유형이 차단되면 고객은 응답 상태 코드를 재정의할 수 있습니다. int
fileUploadEnforcement WAF가 파일 업로드 제한을 적용하도록 허용할지 여부입니다. bool
fileUploadLimitInMb WAF의 최대 파일 업로드 크기(Mb)입니다. int
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 경우 최대 요청 본문 크기(Kb)입니다. int
mode 정책의 모드입니다. '검색'
'방지'
requestBodyCheck WAF가 본문 요청을 검사 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용하도록 허용할지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 최대 검사 제한(KB)입니다. int
state 정책의 상태입니다. '사용 안 함'
'사용'

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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

빠른 시작 템플릿

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

템플릿 Description
Azure Application Gateway Azure WAF v2 만들기

Azure에 배포
이 템플릿은 백 엔드 풀에 두 개의 Windows Server 2016 서버가 있는 Azure Application Gateway Azure Web Application Firewall v2를 만듭니다.
NAT 게이트웨이 및 Application Gateway 있는 AKS 클러스터

Azure에 배포
이 샘플에서는 아웃바운드 연결을 위한 NAT Gateway 및 인바운드 연결에 대한 Application Gateway 사용하여 AKS 클러스터를 배포하는 방법을 보여 줍니다.
Application Gateway 원본이 있는 Front Door 표준/프리미엄

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

Azure에 배포
이 템플릿은 컨테이너 그룹 및 Application Gateway 사용하여 Front Door 표준/프리미엄을 만듭니다.
Application Gateway 수신 컨트롤러가 있는 AKS 클러스터

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

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

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

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

  • 리소스 그룹

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

리소스 형식

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

resource "azapi_resource" "symbolicname" {
  type = "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"
  name = "string"
  location = "string"
  parent_id = "string"
  tags = {
    tagName1 = "tagValue1"
    tagName2 = "tagValue2"
  }
  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"
      }
    }
  })
}

속성 값

ApplicationGatewayWebApplicationFirewallPolicies

이름 Description
형식 리소스 종류 "Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2023-04-01"
name 리소스 이름 string(필수)
위치 리소스 위치. 문자열
parent_id 리소스 그룹에 배포하려면 해당 리소스 그룹의 ID를 사용합니다. string(필수)
tags 리소스 태그. 태그 이름 및 값의 사전입니다.
properties 웹 애플리케이션 방화벽 정책의 속성입니다. WebApplicationFirewallPolicyPropertiesFormat

WebApplicationFirewallPolicyPropertiesFormat

이름 Description
customRules 정책 내의 사용자 지정 규칙입니다. WebApplicationFirewallCustomRule[]
managedRules managedRules 구조체에 대해 설명합니다. ManagedRulesDefinition (필수)
policySettings 정책에 대한 PolicySettings입니다. PolicySettings

WebApplicationFirewallCustomRule

이름 Description
action 작업 유형입니다. "허용"
"차단"
"로그"(필수)
groupByUserSession 절별 사용자 세션 식별자 그룹 목록입니다. GroupByUserSession[]
matchConditions 일치 조건 목록입니다. MatchCondition[] (필수)
name 정책 내에서 고유한 리소스의 이름입니다. 이 이름은 리소스에 액세스하는 데 사용할 수 있습니다. 문자열
priority 규칙의 우선 순위입니다. 값이 낮은 규칙은 값이 더 높은 규칙보다 앞에 평가됩니다. int(필수)
rateLimitDuration 속도 제한 정책이 적용되는 기간입니다. ruleType이 RateLimitRule인 경우에만 적용됩니다. "FiveMins"
"OneMin"
rateLimitThreshold ruleType이 RateLimitRule인 경우 적용할 속도 제한 임계값입니다. 1보다 크거나 같아야 합니다. int
ruleType 규칙 유형입니다. "잘못됨"
"MatchRule"
"RateLimitRule"(필수)
state 사용자 지정 규칙이 사용 또는 사용 안 함 상태인지를 설명합니다. 지정하지 않으면 기본적으로 사용으로 설정됩니다. "사용 안 함"
"사용"

GroupByUserSession

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

GroupByVariable

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

MatchCondition

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

MatchVariable

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

ManagedRulesDefinition

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

OwaspCrsExclusionEntry

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

ExclusionManagedRuleSet

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

ExclusionManagedRuleGroup

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

ExclusionManagedRule

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

ManagedRuleSet

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

ManagedRuleGroupOverride

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

ManagedRuleOverride

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

PolicySettings

이름 Description
customBlockResponseBody 작업 유형이 차단된 경우 고객은 응답 본문을 재정의할 수 있습니다. base64 인코딩에서 본문을 지정해야 합니다. 문자열
customBlockResponseStatusCode 작업 유형이 차단되면 고객은 응답 상태 코드를 재정의할 수 있습니다. int
fileUploadEnforcement WAF에서 파일 업로드 제한을 적용할 수 있는지 여부입니다. bool
fileUploadLimitInMb WAF의 경우 최대 파일 업로드 크기(Mb)입니다. int
logScrubbing 중요한 로그 필드를 스크러빙하려면 PolicySettingsLogScrubbing
maxRequestBodySizeInKb WAF의 최대 요청 본문 크기(Kb)입니다. int
mode 정책의 모드입니다. "검색"
"방지"
requestBodyCheck WAF가 요청 본문을 검사 수 있도록 허용할지 여부입니다. bool
requestBodyEnforcement WAF가 요청 본문 제한을 적용하도록 허용할지 여부입니다. bool
requestBodyInspectLimitInKB WAF에 대한 요청 본문 검사에 대한 KB의 최대 검사 제한입니다. int
state 정책의 상태입니다. "사용 안 함"
"사용"

PolicySettingsLogScrubbing

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

WebApplicationFirewallScrubbingRules

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