부가서비스 웹방화벽 (Web Firewall) API v 1.0 2012. 5
목 차 1. 개요... 2 1. 1 웹방화벽 API 개요... 2 1.1.1 주요보안기능... 2 1.1.2 특징... 3 1. 2 API 요청... 4 1.2.1 인증서명서... 6 1.2.2 명령어유형... 7 1.2.3 파라미터... 7 1.3 API 응답... 8 1.3.1 API 응답포맷... 8 1.3.2 ASYNCHRONOUS COMMANDS RESPONSE... 9 1.3.3 ERROR HANDLING... 11 2. 명령어... 12 2.1 웹방화벽생성 / 삭제 API... 12 2.1.1 CREATEWAF (A)(*)... 13 2.1.2 DELETEWAF (*)... 15 2.1.3 LISTWAFS (*)... 15 2.2 WEB SERVER RESOURCE 관리 API... 16 2.2.1 ADDWAFWEBSERVERRESOURCE(*)... 16 2.2.2 REMOVEWAFWEBSERVERRESOURCE(*)... 17 2.2.3 LISTWAFWEBSERVERRESOURCE(*)... 18 2.3 WEB SITE RESOURCE 관리 API... 18 2.3.1 ADDWAFWEBSITERESOURCE(*)... 18 2.3.2 REMOVEWAFWEBSITERESOURCE(*)... 19 2.3.3 LISTWAFWEBSITERESOURCE(*)... 20
Revision History Version 변경사항작성일 1.0 공식배포버전 2012 년 5 월 30 일 1
1. 개요 본문서는웹방화벽 (WAF : Web FireWall) API 규격을제시한다. API 요청 / 응답메시지와공개하고있는명령어설명및예시를포함하고있다. 이용자는 WAF API 를활용하여클라우드웹방화벽자원생성및관리를수행할수있다. 1. 1 웹방화벽 API 개요웹방화벽 API 는 REST 형태로제공된다. 웹방화벽은웹서버앞단에위치하여외부로부터들어오는 HTTP/HTTPS 프로토콜트래픽을감시합니다. 이때웹애플리케이션에대한악의적인공격이탐지되면해당공격이웹서버에도달하기전에차단하는역할을수행합니다. 웹방화벽이외부의공격을차단하기위한웹서버 ( 서버및 Web Site) 의보안정책등에대한요청은표준 HTTP 방식의 GET 메소드호출을통해서이루어진다. 그림 1. 리버스프락시구성방식웹방화벽은방화벽 (Firewall) 에서걸러주지못하는위험한유해트래픽을웹서버에도달하지못하도록근본적으로차단합니다. Ucloud 웹방화벽은고도로지능화, 다양화되고있는웹공격을효율적으로탐지및차단하여안정적이고신뢰할수있는웹애플리케이션의운영을가능하게합니다. WAF 에대한상세기능및이용방법은 KT WAF Web 방화벽기본매뉴얼, KT ucloud WAF 관리도구매뉴얼 를참고하시기바랍니다. 1.1.1 주요보안기능 WAF 은다음과같은보앆기능을제공합니다. HTTP 기반의웹공격방지 OWASP( Open Web Application Security Project. http://www.owasp.org/) Top 10 Attacks 탐지및차단 PCI-DSS Copliance 의요구사항지원 Known/Unknown Worm 탐지및차단 2
예 ) Code Red, Nimda 웹보안요소방어 Cookie 변조및도용방지 Hidden Field 변조방지 표준암호알고리즘사용 (AES, SEED) 웹콘텐츠필터링 개인정보포함파일업로드 / 다운로드탐지차단 주민등록번호, 싞용카드번호, 이메일주소, 주소, 전화번호탐지 MS-Office, Open Office, PDF, MS Outlook Message, hwp 등 30 여종의파일검색 지정한금지단어입력시자동변홖예 ) 나쁜말 ( 금지단어 ) -> 고운말 ( 등록된표현 ) 해커에의해변조된페이지노출차단및자동복구 1.1.2 특징 WAF 은다음과같은특징을가집니다. (1) 보안성 웹공격에대한 3 중방어구조 WAF 은 Positive Security 보앆모듈의 URI 접근제어 와, Negative Security 보앆모듈의 룰탐지, White/Black list of IP 주소관리기능인 IP Filtering / IP Block 의웹클라이언트접근제어의 3 중방어구조를기반으로확실하고앆정적인웹공격의탐지와차단을제공합니다. 암호화트래픽지원 WAF 은 SSL 과같은암호화된트래픽을지원합니다. 암호화된트래픽내에웹공격이들어있는경우에도이를싞속하게복호화한후에공격을탐지하여차단할수있습니다. (2) 성능 다수웹사이트 / 웹서버동시보호 WAF 은여러웹사이트들과다수의웹서버들을동시에보호하는것이가능합니다. (3) 안정성 Watchdog 지원 3
Watchdog 프로세스는지속적이고앆정적인웹서비스제공을위해 WAF 의동작을감시합니다. WAF 에문제가발생하는경우, watchdog 프로세스는문제의증상을파악하고이에따라보앆및웹서비스유지를위해대응하도록구성되어있습니다. (4) 편리성 대시보드 (Dashboard) 지원 WAF 은 WAF 과웹서버의운영상태를그래프와차트를통해한눈에실시갂으로파악할수있는대시보드기능을지원합니다. WAF 의대시보드는 22 가지의다양한그래프와차트형식을제공하여운영자가원하는형태로데이터를가공할수있도록지원합니다. 설정마법사지원 WAF 의모든설정작업은설정마법사를통하여이루어집니다. 설정마법사는 WAF 의복잡한설정과정을갂단하고편리하게수행할수있도록도와줍니다. 자유롭고유연한화면구성 WAF 은로그화면과각종대시보드화면등을메인화면상에운영자가원하는형태로자유롭게배치할수있습니다. 또한각각의화면내용에각기다른조건을부여하여다양한정보를동시에확인할수있습니다. 이러한유연한화면구성은운영자의필요에따른적젃한정보확인을가능하게해주어관리도구사용의편의성을높여줍니다. 1. 2 API 요청 API 요청메시지는아래와같이구성된다. (1)API URL + (2) 요청명령어 + (3) 명령어파라미터 + (4) 응답포맷 + (5)API Key + (6) 인증서명서 각필드의값과내용은아래표와같다. Field Description (1) API URL - ucloud server API URL - Value : https://api.ucloudbiz.olleh.com/server/v1/client/api? (2) 요청명령어 - 컴퓨팅자원요청명령어 ( 생성, 삭제, 조회및기타명령 ) - Syntax : command= 명령어이름, [ 상세설명은 3장참조 ] (3) 명령어파라미터 - 요청명령어관련파라미터 - Syntax : [&field=value]*, [ 상세설명은 3장참조 ] 4
(4) 응답포맷 - XML, JSON 응답포맷을지원한다. [Optional 필드 ] - Syntax : &response=[xml json], default는 xml. (5) API Key - 사용자계정별 API Key (ucloudbiz site에서확인 ) - Syntax : &apikey=apikey (6) 인증서명서 - API 요청메시지수행권한여부를체크하는인증서명서 - Syntax : &signature= 인증서명서 * API Key, Secret Key 확인 (1) https://ucloudbiz.olleh.com 로그인 (2) 클라우드콘솔선택 (3) API Key 관리메뉴선택 5
API 요청 Sample https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualmachines&name=vm_3 3111&state=Running&response=xml&apiKey=miVr6X&signature=ZC1u%2B03yj592LZ%2BgmA3 ac%2fqthws%3d API 요청 Sample 분석 (1) https://api.ucloudbiz.olleh.com/server/v1/client/api? API URL (2) command=listvirtualmachines 요청명령어 (3) &name=vm_33111&state=running 명령어파라미터 (4) &response=xml 응답포맷 (5) &apikey=mivr6x API Key (6) &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 인증서명서 1.2.1 인증서명서 ucloud server 에서는 API Key 와인증서명서로인증을수행한다. 사용자별로발급되는 Secret Key 와 HMAC SHA-1 알고리즘그리고명령문자열 (2 번 ~5 번 ) 을이용하여인증서명서를생성한다. [ 인증서명서생성 ] Secret Key 예 : keokzhd 명령문자열 _ 예 :_command=listvirtualmachines&name=vm_33111&state=running &response=xml&apikey=mivr6x (5) 명령문자열의각필드와값을 URL 인코딩한다. URL 인코딩 : 공백문자가 %20 으로인코딩되도록해야한다. [ + 안됨 ] API 요청메시지 : API_URL + URL 인코딩된문자열 + &signature= 인증서명서 (6) 명령문자열을소문자로변경한다. (7) 필드이름을기준으로알파벳순으로정렬한다. apikey=mivr6x&command=listvirtualmachines&name=vm_33111&response=xml&state=ru nning (8) Secret Key 와 HMAC SHA - 1 해시알고리즘을이용하여명령문자열을암호화한다. 아래는 java sample code 이다. 6
Mac mac = Mac.getInstance ( "HmacSHA1" ); SecretKeySpec keyspec = new SecretKeySpec(secretkey.getBytes(), "HmacSHA1"); mac.init( keyspec ); mac.update ( commandstring.getbytes() ); byte[] encryptedbytes = mac.dofinal(); Sample_URL http://docs.cloud.com/cloudstack_documentation/developer's_guide%3a_cl oudstack#signing_api_requests (9) 마지막으로얻어진바이트배열을 Base64 인코딩후, 다시 UTF - 8 로 URL 인코딩을 수행한다. 생성된인증서명서와 API 요청메시지는다음과같다. 인증서명서 : ZC1u%2B03yj592LZ%2BgmA3ac%2FQThws%3D API 요청메시지 :_https://api.ucloudbiz.olleh.com/server/v1/client/api?command=listvirtualma chines&name=vm_33111&state=running&response=xml&apikey=mivr6x &signautre=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d 1.2.2 명령어유형 API 실행소요시간이긴명령은비동기명령어로이외의명령은동기명령어로수행한다. 3 장에서기술하고있는비동기명령어에 (A) 를표시하여구분하고있다. CloudStack 에 존재하지않는명령어및명령어파라미터설명하는부분에는 (*) 를표시하여기술하고있다. 1.2.3 파라미터 API 요청시수행되는파라미터는앞에서언급한것과같이쌍 (field=value) 으로존재하며 대소문자사용규칙은다음과같다. field : 대소문자구별안함, command 만대소문자구별. value : 대소문자구별함. 7
1.3 API 응답 지원하고있는응답포맷설명과명령유형 ( 동기명령어, 비동기명령어 ) 에따른 API 응답확인절차를기술한다. 1.3.1 API 응답포맷 API 응답포맷으로 xml, json 을지원하며, API 요청시 response=xml 과같이응답 포맷을지정할수있다. 명령수행결과에해당필드정보가없을경우, 정의된필드와 값이표시되지않을수있다. 다음표는응답포맷예제이다. Response Format xml Sample <listipaddressesresponse> <allocatedipaddress> <ipaddress>192.168.10.141</ipaddress> <allocated>2009-09-18t13:16:10-0700</allocated> <zoneid>4</zoneid> <zonename>wc</zonename> <issourcenat>true</issourcenat> </allocatedipaddress> </listipaddressesresponse> json { "listipaddressesresponse" : { "allocatedipaddress" : [ { "ipaddress" : "192.168.10.141", "allocated" : "2009-09-18T13:16:10-0700", "zoneid" : "4", "zonename" : "WC", "issourcenat" : "true" } ] } } 8
1.3.2 Asynchronous Commands Response 실행소요시간이긴명령은비동기명령어로이외의명령은동기명령어로수행한다. 동기 / 비동기명령 API 응답확인절차는다르며아래와같다. API 명령어 응답확인절차 동기명령어 비동기명령어 (1) API 요청으로명령수행 (2) 명령수행결과확인 (1) API 요청으로명령수행 (2) jobid ( 작업ID) 반환확인 (3) queryasyncjobresult 명령수행 ( jobid 인자로전달 ) (4) 명령수행진행확인 ( jobstatus) 0: 진행중, 1: 성공, 2: 실패 [jobresult 에결과표시 ] ** jobstatus 가 1 또는 2 가될때까지주기적으로 (3), (4) 수행하여 명령결과를확인한다. 비동기명령결과예는다음과같다. 비동기명령확인 Sample (1) API 요청 ( 명령수행 ) https://api.ucloudbiz.olleh.com/server/v1/client/api? command=listvirtualmachines &name=vm_33111&state=running&response=xml &apikey=mivr6x &signature=zc1u%2b03yj592lz%2bgma3ac%2fqthws%3d (2) 명령응답반환 <deployvirtualmachineresponse> <jobid> 37120 </ jobid> <id> 100 </ id> </ deployvirtualmachineresponse> (3) queryasyncjobresult 수행 https://api.ucloudbiz.olleh.com/server/v1/client/api? command=queryasyncjobresult&jobid=37120 &apikey=h6kxwcratdqfwf3xa &signature=z5f11yym6yzqomy9b%2f4%3d 9
(4) jobstatus = 0 [ 진행중 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>0</jobstatus> <jobprocstatus>1</jobprocstatus> <queryasyncjobresult> (4) jobstatus = 1 [ 성공 ] <queryasyncjobresultresponse cloud-stack-version="2.2.1.66"> <jobid>37120</jobid> <jobstatus>1</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>0</jobresultcode> <jobresulttype>object</jobresulttype> <jobresult> <virtualmachine> <id>100</id> <state>running</state>.. </virtualmachine> </jobresult> </queryasyncjobresultresponse> (4) jobstatus = 2 [ 실패 ] <queryasyncjobresult> <jobid>37120</jobid> <jobstatus>2</jobstatus> <jobprocstatus>0</jobprocstatus> <jobresultcode>551</jobresultcode> <jobresulttype>text</jobresulttype> <jobresult> Unable to deploy virtual machine id = 10 due to not enough capacity </jobresult> <queryasyncjobresult> 10
1.3.3 Error Handling API 요청이잘못되거나처리도중오류가발생하면 Error 정보를응답으로반환한다. Error 정보는오류코드 <errorcode> 와오류텍스트 <errortext> 로구성되어있다. <?xml version="1.0" encoding="utf-8"?> <listvirtualmachinesresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>401</errorcode> <errortext>unable to verify user credentials and/or request signature</errortext> </listvirtualmachinesresponse> 현재지원하는에러코드는다음과같다. Error Code Description 401 AUTHENTICATION_ERROR 406 MALICIOUS_CODE_INJECTION 430 MALFORMED_PARAMETER_ERROR 431 PARAM_ERROR 432 UNSUPPORTED_ACTION_ERROR 433 PAGE_LIMIT_EXCEED 503 EXCESSIVE_TRAFFIC_ERROR 504 INTERNAL_ERROR (TIMEOUT) 530 INTERNAL_ERROR 531 ACCOUNT_ERROR 532 ACCOUNT_RESOURCE_LIMIT_ERROR 533 INSUFFICIENT_CAPACITY_ERROR 534 RESOURCE_UNAVAILABLE_ERROR 535 RESOURCE_ALLOCATION_ERROR 536 RESOURCE_IN_USE_ERROR 537 NETWORK_RULE_CONFLICT_ERROR 11
[Example 1] <?xml version="1.0" encoding="iso-8859-1"?> <deployvirtualmachineresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>431</errorcode> <errortext>unable to find zone by id=2111</errortext> </deployvirtualmachineresponse> [Example 2] <?xml version="1.0" encoding="iso-8859-1"?> <errorresponse cloud-stack-version="2.2.13.20111117130644"> <errorcode>432</errorcode> <errortext>the given command does not exist</errortext> </errorresponse> 2. 명령어 이장에서는웹방화벽명령어와명령어파라미터정보및명령에대한응답을기술 하였다. 기능별로그룹핑하여이해를돕고자하였다. Example 에사용되는 ${API_URL} 변수는 ucloud server API URL (https://api.ucloudbiz.olleh.com/waf/v1/client/api?) 이다. 2.1 웹방화벽생성 / 삭제 API 그림 2. 리버스프락시구성방식 12
웹방화벽을구성하고삭제하는관련명령어를기술한다. 웹방화벽의네트워크구성방법은리버스프락시방식이다. 리버스프락시구성은일반적인웹프락시서버와동일한구성으로웹방화벽의 IP 설정등은일반적인웹프락시와동일하게구성한다. 이러한구성에서특정웹사이트를웹방화벽으로보호하려면 VPX, 또는가상라우터에서포트포워딩를이용하여웹서버로갈커넥션이웹방화벽으로향하도록수정해주어야한다. 이러한리버스프락시구성에서는웹방화벽이프락시로동작하기때문에웹서버의접속로그에는실제웹브라우저사용자의 IP 주소가아닌웹방화벽의 IP 주소만이남게된다. 웹방화벽의운영네트워크구성은일반적으로다음과같은위치에설치한다. 단일웹서버머싞 1 대만을보호할때 (Single 상품 ) Routter-VM 하단단일웹서버사이에 Proxy 방식으로구성설치합니다. VPX 를사용하여 2 대이상의웹서버를로드밸런싱하여사용할때 (Dual 상품 ) VPX SW L4 로로드밸런싱한서비스를가상라우터에서포트포워딩한후가상라우터와웹서버사이에 Proxy 방식으로구성설치합니다. 2.1.1 createwaf ucloud 부가서비스로제공되는웹방화벽을생성하는상품및기동수행명령어이다. 상품의가격정보는 API 로제공되지않으며 ucloudbiz site 를방문하여확인가능하다. 명령어파라미터 Parameter Name Description Required name WAF 이름 TRUE type 구성 (single, dual) TRUE spec 사양 (basic, standard, advanced, premium) TRUE waf1consoleport WAF1 VM console 접속 port (5950~5999) TRUE waf1sshport WAF1 VM ssh 접속 port (5950~5999) TRUE waf1dbport WAF1 VM DB 접속 port (5950~5999) TRUE waf2consoleport WAF2 VM console 접속 port (5950~5999) FALSE waf2sshport WAF2 VM ssh 접속 port (5950~5999) FALSE waf2dbport WAF2 VM DB 접속 port (5950~5999) FALSE loadbalanceroption 로드밸런스옵션 (roundrobin, leastconnection, sourceiphash, sourcehashport) FALSE VPX 가로드밸런싱을담당해야하는로드밸런싱 Port loadbalancerport 입력 FALSE infourl VPX 로드밸런서의서비스대역폭을초과하였을경우 FALSE 초과시안내되는안내페이지입력 13
응답결과항목 Response Name Description id WAF id name WAF 이름 type 구성 (single, dual) spec 사양 (basic, standard, advanced, premium) waf1consoleport WAF1 VM console 접속 port (5950~5999) waf1sshport WAF1 VM ssh 접속 port (5950~5999) waf1dbport WAF1 VM DB 접속 port (5950~5999) waf2consoleport WAF2 VM console 접속 port (5950~5999) waf2sshport WAF2 VM ssh 접속 port (5950~5999) waf2dbport WAF2 VM DB 접속 port (5950~5999) loadbalanceoption 로드밸런스옵션 (roundrobin, leastconnection, sourceiphash, sourcehashport) serviceip WAF 의서비스 IP loadbalancerport WAF 의서비스 port VPX 로드밸런서의서비스대역폭을초과하였을경우초과시 infourl 안내되는안내페이지입력 active 로드밸런서생성완료여부 ( true false ) Example Sample 1 WAF 생성 Request ${API_URL}command=createWAF& &name=ktcloudwaf&type=dual&spec=basic&waf1consoleport=5950&waf1sshport=592 2&waf1dbport=5933&waf2consoleport=5951&waf2sshport=5923&waf2dbport=5934&l oadbalanceroption=roundrobin&loadbalancerport=80&infourl=http://cs.ucloud.com &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 생성 Response {"createwafresponse":{"id":14,"name":"waftest01","type":"single","spec":"basic","waf1con soleport":"5950","waf1sshport":"5951","waf1dbport":"5952","waf2consoleport":"","waf2ss hport":"","waf2dbport":"","loadbalanceoption":"","infourl":"","active":"n"}} * 최종생성상태조회는 listwafs API 사용 14
2.1.2 deletewaf 생성한웹방화벽을삭제한다. 응답결과항목은웹방화격생성과동일하다 (**1 년약정과무약정으로생성된 VM 은생성당일삭제가불가하다 ) 명령어파라미터 Parameter Name Description Required id WAF id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF 삭제 Request ${API_URL}command=deleteWAF& id=12345 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 삭제 Response {"deletewafresponse":{"success":"true", "displaytext":"waf(waftest01) is removed."}} 2.1.3 listwafs (*) 생성한웹방화벽목록을조회하는 API 이다. 명령어파라미터 Parameter Name Description Required id WAF id FALSE name WAF 이름 FALSE type 구성 (single, dual) FALSE spec 사양 (basic, standard, advanced, premium) FALSE 응답결과항목 : createwaf 결과와동일 15
Example Sample 1 WAF 조회 Request ${API_URL}command=listWAFs&id=12345&name= ktcloudwaf &type=dual&spec=basic &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF 조회 Response {"listwafsresponse":{"id":"15","name":"waftest01","type":"single","spec":"basic","waf1con soleport":"5950","waf1sshport":"5951","waf1dbport":"5952","waf2consoleport":"","waf2ss hport":"","waf2dbport":"","loadbalanceoption":"","serviceip":"","serviceport":"","infourl":"","active":"y"}} 2.2 Web Server Resource 관리 API 보안서비스의대상이될웹서버 IP 주소와 port 번호를추가 / 삭제하는명령어를기술한다. 2.2.1 addwafwebserver 보안서비스의대상이될웹서버를추가하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE virtualmachineid Virtualmachine id TURE webserverport 웹서버의서비스 port TRUE proxyport1 가상라우터-> WAF VM1 연결 port TRUE proxyport2 (dual 상품인경우 ) 가상라우터 -> WAF VM2 연결 port FALSE sslmode disabled sslthru sslterm TRUE 응답결과항목 Response Name id webserverid virtualmachineid webserverport Description WAF id WebServer id Virtualmachine id 서버의서비스 port 16
proxyport1 proxyport2 sslmode 가상라우터 -> WAF VM1 연결 port (dual 상품인경우 ) 가상라우터 -> WAF VM2 연결 port true, false, termination Example Sample 1 WAF Web Server 자원할당 Request ${API_URL}command= addwafwebserver&id=12345&virtualmachineid=11111&webserverport=80&proxyport1=8 0&proxyport2=81&sslmode=disabled &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Server 자원할당 Response {"addwafwebserverresponse":{"id":16,"webserverid":6,"virtualmachineid":"38484","webser verport":"80","proxyport1":"9993","proxyport2":null,"sslmode":"disabled"}} 2.2.2 removewafwebserver 보안서비스의대상이될웹서버의정보를삭제하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE webserverid WebServer id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF Web Server 자원삭제 Request ${API_URL}command= removewafwebserver & id=12345& webserverid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d 17
Sample 2 WAF Web Server 자원삭제 Response {"removewafwebserverresponse":{"success":"true","displaytext":"webserver(6) is removed."}} 2.2.3 listwafwebservers(*) 보안서비스의대상이될웹서버의정보를조회하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE webserverid WebServer id FALSE 응답결과항목 : addwafwebserverresource 와동일 Count : 웹서버의수추가 Example Sample 1 WAF Web Server 자원조회 Request ${API_URL}command= listwafwebservers&id=12345&webserverid=1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Server 자원조회 Response {"listwafwebserversresponse":{"webservers":[{"id":11,"proxyport1":"88","proxyport2":""," sslmode":"disabled","virtualmachineid":"","webserverport":"88","webserverid":3},{"id":11, "proxyport1":"90","proxyport2":"","sslmode":"disabled","virtualmachineid":"10400","webs erverport":"90","webserverid":4},{"id":11,"proxyport1":"89","proxyport2":"","sslmode":"di sabled","virtualmachineid":"10397","webserverport":"78","webserverid":5}],"count":3}} 2.3 Web Site Resource 관리 API 웹방화벽에서보호할 Web Site 들에적용할정책을관리하는명령어를기술한다. 2.3.1 addwafwebsite 보안서비스의대상이될웹사이트를추가하는명령어를기술한다. 명령어파라미터 18
Parameter Name Description Required id WAF id TRUE sitename 사이트명 or IP TRUE port 서비스 port TRUE policynum 보안정책 {0 1 2 3} 표준보안정책, 기본보안정책, 탐지만하고차단안함, 탐지없이통과 TRUE 응답결과항목 Response Name Description wafid WAF id websiteid WebSite id sitename 사이트명 or IP port 서비스 port policynum 보안정책 {0 1 2 3} 표준보안정책, 기본보안정책, 탐지만하고차단안함, 탐지없이 통과 Example Sample 1 WAF Web Site 자원할당 Request ${API_URL}command= addwafwebsite& id=12345& websiteid =1& sitename=cs.ucloud.com&port=80&policynum=0 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원할당 Response {"addwafwebsiteresponse":{"wafid":"true","websiteid":3,"sitename":"http://www.jini.co.kr/i ndex.html","port":"8080","policynum":"0"}} 2.3.2 removewafwebsite 보안서비스의대상이될웹사이트의정보를삭제하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE 19
websiteid Website id TRUE 응답결과항목 Response Name success displaytext Description 성공여부 (true false) 상세처리결과 Example Sample 1 WAF Web Site 자원삭제 Request ${API_URL}command= removewafwebsite& id=12345& websiteid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원삭제 Response {"removewafwebsiteresponse":{"success":"true","displaytext":"website_svc(3) is removed."}} 2.3.3 listwafwebsites(*) 보안서비스의대상이될웹사이트의정보를조회하는명령어를기술한다. 명령어파라미터 Parameter Name Description Required id WAF id TRUE websiteid Website id FALSE 응답결과항목 : addwafwebsiteresource 의결과와동일 Example Sample 1 WAF Web Site 자원조회 Request ${API_URL}command= listwafwebsites& id=12345& websiteid =1 &apikey=h6kxwcratdqfwf3xa&signature=bfytuy4bdocpk%3d Sample 2 WAF Web Web Site 자원조회 Response {"listwafwebsitesresponse":{"count":1,"wafwebsiteresource":[{"reg_dttm":{"date":6,"day": 5,"hours":15,"minutes":38,"month":6,"nanos":0,"seconds":14,"time":1341556694000,"timez 20
oneoffset":- 540,"year":112},"svc_port":"8080","active_yn":"Y","upt_dttm":"","waf_nm":"waftest01","p olicy_type":"0","waf_websvc_seq":3,"svc_description":"","svc_nm":"http://www.jini.co.kr/i ndex.html","del_dttm":"","svc_st_cd":"req002","waf_svc_id1":"4","waf_svc_id2":"","me m_sq":"m134452"}]} 21