관리 규칙 세트 배포
CLI, API 또는 Terraform을 사용하여 영역 또는 인스턴스 수준에서 관리되는 규칙 집합을 배포할 수 있습니다.
사용자 지정 동작(기본 구성 외에 실행되는 변경 사항)을 가진 관리 규칙 집합을 재정의하여 배포할 수 있습니다. 자세한 내용은 관리되는 규칙 집합 재정의하기를 참고하세요.
배치 워크플로우
다음 워크플로우를 사용하여 관리 대상 규칙 세트를 구역 레벨의 단계에 배치하십시오.
- 구역 ID를 가져오십시오.
- 구역 나열 규칙 세트 조작을 실행하여 사용 가능한 규칙 세트를 가져오십시오.
- 배포하려는 관리되는 규칙집의 규칙집 ID를 찾습니다.
- 관리 규칙 세트를 배치할 단계를 식별하십시오. 관리되는 규칙 세트가 배포하려는 단계에 속하는지 확인하십시오.
- 관리되는 규칙 집합을 실행하는 영역 수준 단계 진입점 규칙 집합에 규칙을 추가합니다.
콘솔에서 관리되는 규칙 집합 배포하기
CIS 콘솔에서 관리되는 규칙 집합을 배포하려면 다음 단계를 따르세요:
-
CIS 콘솔에서 보안 섹션으로 이동합니다.
-
WAF 탭을 선택합니다.
-
예외 추가를 클릭하여 예외 추가 사이드 패널을 엽니다.
-
관리되는 규칙 예외의 이름을 입력합니다.
-
표현식을 작성하여 일치 조건을 정의합니다:
- 요청 필드를 선택하고 연산자를 선택한 다음 값을 입력합니다.
- 표현식 빌더를 사용하여 표현식을 수동으로 작성할 수도 있습니다
- And 및 Or 연산자를 사용하여 여러 조건을 결합하여 복잡한 논리를 만들 수 있습니다.
-
표현식과 일치하는 요청을 기록할지 여부를 선택합니다.
-
일치하는 요청에 대해 규칙 집합이 어떻게 작동할지 결정합니다:
-
나머지 규칙을 모두 건너뛰거나, 또는
-
관리 규칙 세트에서 특정 규칙 건너뛰기
특정 규칙을 건너뛰도록 선택하는 경우 규칙 찾아보기를 클릭하고 규칙 집합을 선택한 다음 건너뛸 특정 규칙을 선택합니다.
-
-
‘배포’를 클릭하여 구성을 활성화하십시오.
배포 후에는 언제든지 돌아와서 관리되는 규칙 집합 구성을 편집할 수 있습니다.
CLI에서 관리 규칙 세트 배포
CLI에서 관리되는 규칙 세트를 배포할 수 있습니다.
CLI에서 관리되는 규칙 세트 나열
CLI에서 모든 영역 관리 규칙 집합을 나열하려면 다음 단계를 따르세요:
-
CLI 환경을 설정하십시오.
-
CLI에서 계정에 로그인하십시오. 비밀번호를 입력하면, 시스템에서 사용하려는 계정과 지역을 입력하라는 메시지가 표시됩니다:
ibmcloud login --sso -
사용자 정의 규칙을 생성하려면 다음 명령어를 실행하십시오:
ibmcloud cis managed-waf rulesets DNS_DOMAIN_ID [-i, --instance INSTANCE] [--output FORMAT]명령 옵션
DNS_DOMAIN_ID- 도메인의 ID입니다.
-i, --instance- 인스턴스 이름 또는 ID입니다.
--output- 출력 형식을 지정합니다. JSON만 지원됩니다.
CLI에서 배포된 규칙 세트 업데이트
CLI에서 배포된 규칙 집합을 업데이트하려면 다음 단계를 따르세요:
-
CLI 환경을 설정하십시오.
-
CLI에서 계정에 로그인하십시오. 비밀번호를 입력하면, 시스템에서 사용하려는 계정과 지역을 입력하라는 메시지가 표시됩니다:
ibmcloud login --sso -
사용자 정의 규칙을 생성하려면 다음 명령어를 실행하십시오:
ibmcloud cis managed-waf deployment-add-ruleset DNS_DOMAIN_ID RULESET_ID [--match EXPRESSION] [--enabled true|false] [--override-action ACTION] [--override-status STATUS] [--paranoia-level LEVEL] [--override-rules RULE] [-i, --instance INSTANCE] [--output FORMAT]명령 옵션
DNS_DOMAIN_ID- 도메인의 ID입니다.
--match- 규칙이 실행되기 위해 충족되어야 하는 조건들. 일치시킬 값 목록은 필드, 함수 및 표현식 사용을 참조하세요.
--enabled- 규칙이 활성화되어 있는지 여부를 나타냅니다. 기본값은
true입니다. --overide-action- 모든 재정의 항목에 대한 규칙 세트 동작. 유효한 값은
managed_challenge,block,js_challenge,log,challenge입니다. --paranoia-level- OWASP 편집증 수준. 유효한 값은
PL1,PL2,PL3,PL4입니다.CIS OWASP Core Ruleset에서만 사용할 수 있습니다. override-rules- 대체의 규칙 옵션입니다. 예:
--override-rules rule=RULE_ID,action=ACTION,enabled=STATUS. -i, --instance- 인스턴스 이름 또는 ID.
--output- 출력 형식을 지정합니다. JSON만 지원됩니다.
명령 예제
이 예는 규칙 집합 efb7b8c949ac4650a09736fc376e9aee 을 배포하는 방법과 규칙 집합 내에 있는 규칙을 재정의하는 방법을 보여 줍니다. 또한 워드프레스 카테고리로 규칙을 재정의하고 있습니다.
ibmcloud cis managed-waf deployment-add-ruleset $domain efb7b8c949ac4650a09736fc376e9aee --match "(http.cookie eq \"example.com/contact?page=1234\")" --action execute --enabled false --override-action block --override-status false --override-rules rule=5de7edfa648c4d6891dc3e7f84534ffa,action=log,enabled=true --override-rules action=managed_challenge,rule=e3a567afc347477d9702d9047e97d760
API를 이용한 관리 규칙 세트 배포
API를 사용하여 관리되는 규칙 집합을 배포할 수 있습니다.
API에 대한 사용자 지정 규칙 시작점 가져오기
모든 사용자 지정 규칙 API 작업에는 사용자 지정 규칙 단계의 시작점 규칙 집합 RULESET_ID 이 필요합니다. 이 진입점 규칙 집합은 이미 존재하거나 존재하지 않는 경우 만들어야 할 수 있습니다.
사용자 지정 규칙 진입점 규칙 집합을 가져오려면 다음 단계를 따르세요:
- 올바른 변수로 API 환경을 설정하십시오.
- API 명령에 사용할 변수에 다음 값을 저장하십시오.
CRN: 서비스 인스턴스의 전체 URL-인코딩된 클라우드 리소스 이름(CRN)입니다.
ZONE_ID: 도메인 ID.
- 모든 변수가 시작되면 진입점 규칙 집합을 가져옵니다:
curl -X GET "https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/phases/http_request_firewall_managed/entrypoint" \
--header "X-Auth-User-Token: Bearer <API_TOKEN>" \
--header "Content-Type: application/json"
규칙 집합 ID는 성공적인 요청의 응답에 포함됩니다. 앞서 호출한 요청이 404 Not Found 응답을 반환하는 경우, 다음 API를 사용하여 사용자 정의 규칙 단계에 대한 엔트리포인트 규칙 세트를 생성하십시오:
curl -x POST https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets \
--header "X-Auth-User-Token: Bearer <API_TOKEN>" \
--header "Content-Type: application/json" \
--data '{
"name": "Zone-level phase entry point",
"kind": "zone",
"description": "WAF managed rule entrypoint ruleset.",
"phase": "http_request_firewall_managed"
}'
API로 관리되는 규칙 집합 나열하기
API로 관리되는 규칙 집합을 나열하려면 다음 단계를 따르세요:
- 올바른 변수로 API 환경을 설정하십시오.
- API 명령에 사용할 변수에 다음 값을 저장하십시오.
CRN: 서비스 인스턴스의 전체 URL-인코딩된 클라우드 리소스 이름(CRN)입니다.
ZONE_ID: 도메인 ID.
RULESET_ID: 사용자 지정 규칙 진입점 규칙 집합의 ID입니다.
- 모든 변수가 시작되면 영역에서 관리되는 모든 규칙 집합을 나열합니다:
curl -X GET \
https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-H 'x-auth-user-token: Bearer xxxxxx'
API로 엔트리 포인트 규칙 집합 업데이트하기
API로 엔트리 포인트 규칙 집합을 업데이트하려면 다음 단계를 따르세요:
- 올바른 변수로 API 환경을 설정하십시오.
- API 명령에 사용할 변수에 다음 값을 저장하십시오.
CRN: 서비스 인스턴스의 전체 URL-인코딩된 클라우드 리소스 이름(CRN)입니다.
ZONE_ID: 도메인 ID.
RULESET_ID: 사용자 지정 규칙 진입점 규칙 집합의 ID입니다.
- 모든 변수가 시작되면 진입점 규칙 집합을 업데이트합니다:
curl -X PUT \
https://api.cis.cloud.ibm.com/v1/$CRN/zones/$ZONE_ID/rulesets/phases/$RULESET_PHASE/entrypoint \
-H 'content-type: application/json' \
-H 'accept: application/json' \
-H 'x-auth-user-token: Bearer xxxxxx' \
-d '{"rules":[{"action":"execute","action_parameters":{"id":"4814384a9e5d4991b9815dcfc25d2f1f"},"expression":"true","description":"Execute WAF OWASP ruleset"}]}'
여기서:
- $RULESET_PHASE 는 배포될 규칙 세트 단계입니다.
http_request_firewall_managed를 사용하여 관리되는 WAF 규칙 세트를 배포하십시오. - -d는 규칙 집합을 생성하는 데 필요한 속성의 개체입니다.
- 규칙 은 규칙 세트와 함께 배포할 규칙의 배열입니다. 예를 들어, 다음과 같습니다.
- action 은 규칙이 수행할 조치입니다. 사용할 수 있는 조치에 대한 설명은 규칙 조치 를 참조하십시오.
- action_parameters 는 조치가 작동해야 하는 항목을 정의하기 위한 오브젝트입니다.
- id는 실행할 규칙 세트의 ID입니다. 이 ID는
list zone rulesets조작에서 검색됩니다.
- id는 실행할 규칙 세트의 ID입니다. 이 ID는
- 표현식은 규칙이 실행되는 조건입니다.
true를 사용한다는 것은 이 규칙이 항상 실행된다는 것을 의미합니다. - 설명 은 규칙이 달성하는 내용의 요약을 정의합니다.
- 규칙 은 규칙 세트와 함께 배포할 규칙의 배열입니다. 예를 들어, 다음과 같습니다.
Terraform으로 관리형 규칙 집합 배포
Terraform으로 관리되는 규칙 집합 나열하기
다음 예제에서는 Terraform을 사용하여 관리되는 규칙 집합을 나열합니다:
data "ibm_cis_rulesets" "tests" {
cis_id = ibm_cis.instance.id
domain_id = data.ibm_cis_domain.cis_domain.domain_id
}
인자 및 속성에 대한 자세한 내용은 다음을 참조하세요 ibm_cis_rulesets 를 참조하세요.
관리되는 규칙 집합의 모든 규칙 나열하기
다음 예제에서는 Terraform을 사용하여 관리되는 규칙 집합의 모든 규칙을 나열합니다:
resource "ibm_cis_ruleset" "config" {
cis_id = ibm_cis.instance.id
domain_id = data.ibm_cis_domain.cis_domain.domain_id
ruleset_id = "943c5da120114ea5831dc1edf8b6f769"
}
인자 및 속성에 대한 자세한 내용은 다음을 참조하세요 ibm_cis_ruleset 를 참조하세요.
재정의 규칙
다음 예제는 테라폼을 사용하여 규칙을 재정의합니다:
resource "ibm_cis_ruleset_entrypoint_version" "test" {
cis_id = ibm_cis.instance.id
domain_id = data.ibm_cis_domain.cis_domain.domain_id
phase = "http_request_firewall_managed"
rulesets {
description = "Entrypoint ruleset for managed ruleset"
rules {
action = "execute"
description = "Deploy CIS managed ruleset"
enabled = true
expression = "true"
action_parameters {
id = "efb7b8c949ac4650a09736fc376e9aee"
overrides {
action = "block"
enabled = true
override_rules {
rule_id = "var.overriden_rule.id"
enabled = true
action = "block"
}
categories {
category = "wordpress"
enabled = true
action = "block"
}
}
}
}
}
}
인자 및 속성에 대한 자세한 내용은 다음을 참조하세요 ibm_cis_ruleset_entrypoint_version 를 참조하세요.