Microsoft.Network ApplicationGatewayWebApplicationFirewallPolicies 2024-01-01
- 최신
- 2024-03-01
- 2024-01-01
- 2023-11-01
- 2023-09-01
- 2023-06-01
- 2023-05-01
- 2023-04-01
- 2023-02-01
- 2022-11-01
- 2022-09-01
- 2022-07-01
- 2022-05-01
- 2022-01-01
- 2021-08-01
- 2021-05-01
- 2021-03-01
- 2021-02-01
- 2020-11-01
- 2020-08-01
- 2020-07-01
- 2020-06-01
- 2020-05-01
- 2020-04-01
- 2020-03-01
- 2019-12-01
- 2019-11-01
- 2019-09-01
- 2019-08-01
- 2019-07-01
- 2019-06-01
- 2019-04-01
- 2019-02-01
- 2018-12-01
Bicep 리소스 정의
ApplicationGatewayWebApplicationFirewallPolicies 리소스 종류는 다음을 대상으로 하는 작업으로 배포할 수 있습니다.
- 리소스 그룹 - 리소스 그룹 배포 명령 참조
각 API 버전에서 변경된 속성 목록은 변경 로그참조하세요.
리소스 형식
Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies 리소스를 만들려면 템플릿에 다음 Bicep을 추가합니다.
resource symbolicname 'Microsoft.Network/ApplicationGatewayWebApplicationFirewallPolicies@2024-01-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
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'
}
}
속성 값
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' 'JSChallenge' '로그' |
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 |
jsChallengeCookieExpirationInMins | 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. | int 제약 조건: 최소값 = 5 최대값 = 1440 |
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' 'JSChallenge' '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": "2024-01-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",
"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"
}
}
속성 값
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' 'JSChallenge' '로그' |
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 버전 | '2024-01-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 |
jsChallengeCookieExpirationInMins | 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. | int 제약 조건: 최소값 = 5 최대값 = 1440 |
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' 'JSChallenge' '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@2024-01-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
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"
}
}
속성 값
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' 'JSChallenge' '로그' |
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@2024-01-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 |
jsChallengeCookieExpirationInMins | 웹 애플리케이션 방화벽 JavaScript 챌린지 쿠키 만료 시간(분)입니다. | int 제약 조건: 최소값 = 5 최대값 = 1440 |
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' 'JSChallenge' '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' |