목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

구성

1. API 키 만들기

2. API 액세스 토큰 생성

3. 대상 목록 관리

모든 대상 목록 가져오기

대상 목록 내의 모든 대상 가져오기

새 대상 목록 만들기

대상 목록에 대상 추가

대상 목록 삭제

대상 목록에서 대상 삭제

문제 해결

관련 정보

소개

이 문서에서는 Secure Access API를 사용하여 curl을 통해 대상 목록을 관리하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 보안 액세스

- 보안 액세스 API

- 컬

- Json

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- 보안 액세스

- 보안 액세스 API

- 컬

- Json

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

구성

1. API 키 만들기

Secure Access Dashboard(보안 액세스 대시보드)로 이동합니다.

- 클릭 Admin > Api Keys > Add

API 키 만들기 1

API 키 만들기 2

- 필요에 따라 원하는 API Key Name , Description (Optional)Expiry Date를 추가합니다

API 키 생성 3

- 아래에서 Key Scope Expand policies(정책 확장)를 선택합니다Policies.

- 선택 Destination Lists 및 Destinations

- 필요한 Scope 경우 변경하고, 그렇지 않은 경우 다음으로 유지 Read/Write

- 클릭 CREATE KEY

API 키 만들기 4

- 및 API Key를 Key Secret 복사한 다음 ACCEPT AND CLOSE

API 키 만들기 5

참고: API 암호를 복사할 수 있는 기회는 하나뿐입니다. Secure Access는 API 암호를 저장하지 않으므로 처음 만든 후에는 검색할 수 없습니다.

2. API 액세스 토큰 생성

API 액세스 토큰을 생성하려면 토큰 권한 부여 요청을 수행합니다.

토큰 권한 부여 요청

API 액세스 토큰을 생성하기 위해 조직에 대해 생성한 Secure Access API 자격 증명을 사용합니다.

- Curl 샘플에서 Secure Access API 키 및 암호를 대체합니다

curl --user key:secret --request POST --url https://api.sse.cisco.com/auth/v2/token -H Content-Type: application/x-www-form-urlencoded -d grant_type=client_credentials

- 생성된 Bearer API 토큰 복사 및 저장

참고: Secure Access OAuth 2.0 액세스 토큰은 1시간(3600초) 후에 만료됩니다. 토큰이 거의 만료될 때까지 액세스 토큰을 새로 고치지 않는 것이 좋습니다.

3. 대상 목록 관리

다음과 같은 여러 가지 방법으로 대상 목록을 관리할 수 있습니다.

모든 대상 목록 가져오기

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request GET --url https://api.sse.cisco.com/policies/v2/destinationlists -H "Authorization: Bearer YourAccessToken" -H "Content-Type: application/json"

샘플 출력의 코드 조각:

{"id":23456789,"organizationId":1234567,"access":"none","isGlobal":false,"name":" Test Block list","thirdpartyCategoryId":null,"createdAt":1694070823,"modifiedAt":1702819637,"isMspDefault":false,"markedForDeletion":false,"bundleTypeId":2,"meta": {"destinationCount":2,"domainCount":2,"urlCount":0,"ipv4Count":0,"applicationCount":0}

이 대상 목록에 특정한 GET, POST 또는 DELETE 요청에 더 사용되는 출력의 "id" 필드 아래에 나열된 destinationListId를 기록해 둡니다.

대상 목록 내의 모든 대상 가져오기

- 이 이전 언급destinationListId 단계, 모든 대상 목록 가져오기를 사용하여 가져오기

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request GET --url https://api.sse.cisco.com/policies/v2/destinationlists/destinationListId/destinations -H "Authorization: Bearer YourAccessToken"

샘플 출력:

{"status":{"code":200,"text":"OK"},"meta":{"page":1,"limit":100,"total":3},"data": [ {"id":"415214","destination":"cisco.com","type":"domain","comment":null,"createdAt":"2024-02-20 09:15:46"},{"id":"7237895","destination":"www.cisco.com","type":"domain","comment":null,"createdAt":"2024-02-20 10:19:51"},{"id":"29275814","destination":"10.10.10.10","type":"ipv4","comment":null,"createdAt":"2024-02-20 09:15:46"},{"id":"71918495","destination":"www.subdomain.cisco.com/resoucre","type":"url","comment":null,"createdAt":"2024-02-20 10:29:02"} ]}

새 대상 목록 만들기

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request POST --url https://api.sse.cisco.com/policies/v2/destinationlists -H "Authorization: Bearer YourAccessToken" -H "Content-Type: application/json" -H "Accept: application/json" -d "{\"access\":\"none\",\"isGlobal\":false,\"name\":\"Destination List Name\"}"

참고: '대상 목록 이름'을 원하는 이름으로 바꾸십시오.

샘플 출력:

{"id":23456789,"organizationId":1234567,"access":"none","isGlobal":false,"name":"API List 1","thirdpartyCategoryId":null,"createdAt":1708417690,"modifiedAt":1708417690,"isMspDefault":false,"markedForDeletion":false,"bundleTypeId":1,"meta":{"destinationCount":0}}

대상 목록에 대상 추가

- 이 이전 언급destinationListId 단계, 모든 대상 목록 가져오기를 사용하여 가져오기

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request POST --url https://api.sse.cisco.com/policies/v2/destinationlists/{destinationListId}/destinations -H "Authorization: Bearer YourAccessToken" -H "Content-Type: application/json" -d "[{\"destination":"cisco.com\"},{\"destination\":\"10.10.10.10\"},{\"destination\":\"www.subdomain.cisco.com\/resource\"}]"

샘플 출력:

{"status":{"code":200,"text":"OK"},"data":{"id":17804929,"organizationId":1234567,"access":"none","isGlobal":false,"name":"API List 1","thirdpartyCategoryId":null,"createdAt":1708417690,"modifiedAt":1708420546,"isMspDefault":false,"markedForDeletion":false,"bundleTypeId":1,"meta": {"destinationCount":3}}}

대상 목록 삭제

- 이 이전 언급destinationListId 단계, 모든 대상 목록 가져오기를 사용하여 가져오기

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request DELETE --url https://api.sse.cisco.com/policies/v2/destinationlists/destinationListId -H "Authorization: Bearer YourAccessToken"

샘플 출력:

{"status":{"code":200,"text":"OK"},"data":[]}

대상 목록에서 대상 삭제

- 이 이전 언급destinationListId 단계, 모든 대상 목록 가져오기를 사용하여 가져오기

- 앞서 언급한 단계 Get all destinations within a destination list를 사용하여 삭제해야 하는 목록 내id 의 특정 대상의 목록을 가져옵니다.

Windows 명령 프롬프트 또는 Mac 터미널을 열어 명령을 실행합니다.

curl -L --location-trusted --request DELETE --url https://api.sse.cisco.com/policies/v2/destinationlists/destinationListId/destinations/remove -H "Authorization: Bearer YourAccessToken" -H "Content-Type: application/json" -H "Accept: application/json" -d "[id1,id2]"

샘플 출력:

{"status":{"code":200,"text":"OK"},"data":{"id":17804929,"organizationId":1234567,"access":"none","isGlobal":false,"name":"API List 1","thirdpartyCategoryId":null,"createdAt":1708417690,"modifiedAt":1708525645,"isMspDefault":false,"markedForDeletion":false,"bundleTypeId":1,"meta":{"destinationCount":2}}}

문제 해결

Secure Access API 엔드포인트는 HTTP 응답 코드를 사용하여 API 요청의 성공 또는 실패를 나타냅니다. 일반적으로 2xx 범위의 코드는 성공을 나타내고, 4xx 범위의 코드는 제공된 정보에서 발생한 오류를 나타내며, 5xx 범위의 코드는 서버 오류를 나타낸다. 문제를 해결하기 위한 접근 방식은 수신된 응답 코드에 따라 달라집니다.

REST API - 응답 코드 1

REST API - 응답 코드 2

API 관련 오류 또는 문제를 해결할 때 유의해야 할 속도 제한은 다음과 같습니다.

- 보안 액세스 API 제한

관련 정보

- Cisco Secure Access 사용 설명서

- Cisco 기술 지원 및 다운로드

- 보안 액세스 API 키 추가

- 개발자 사용 설명서