Network > Network ACL > API v2 가이드

NHN Cloud Network 서비스는 API 호출 시 인증/인가를 위해 IaaS 토큰을 사용합니다. IaaS 토큰은 NHN Cloud의 OpenStack 기반 인프라 서비스(IaaS)에서 사용하는 인증 토큰입니다. IaaS 토큰 발급 및 사용에 대한 자세한 내용은 IaaS 토큰을 참고하세요.

보안 그룹 API는 network 타입 엔드포인트를 이용합니다. 정확한 엔드포인트는 토큰 발급 응답의 serviceCatalog를 참조합니다.

타입 리전 엔드포인트
network 한국(판교) 리전 https://kr1-api-network-infrastructure.gov-nhncloudservice.com
network 한국(평촌) 리전 https://kr2-api-network-infrastructure.gov-nhncloudservice.com

API 응답에 가이드에 명시되지 않은 필드가 나타날 수 있습니다. 이런 필드는 NHN Cloud 내부 용도로 사용되며 사전 공지 없이 변경될 수 있으므로 사용하지 않습니다.

Network ACL

ACL 목록 보기

GET /v2.0/acls
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
sort_dir Query Enum - 조회할 ACL의 정렬 방향
sort_key에서 지정한 필드를 기준으로 정렬
asc, desc 중 하나
sort_key Query String - 조회할 ACL의 정렬 키
sort_dir에서 지정한 방향대로 정렬
fields Query String - 조회할 ACL의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acls Body Array ACL 목록 객체
acls.id Body UUID ACL ID
acls.tenant_id Body String 테넌트 ID
acls.description Body String ACL 설명
acls.name Body String ACL 이름
acls.create_at Body String ACL 생성 시간
acls.update_at Body String ACL 갱신 시간
예시

{
  "acls": [
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "name": "default",
      "created_at":"2020-11-02T06:51:49Z",
      "updated_at":"2020-11-02T06:51:49Z",
      "revision_number":2
    },
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl2",
      "id": "d3590396-901f-4d90-b8f3-f967831909c2",
      "name": "default2",
      "created_at":"2020-11-05T13:51:43Z",
      "updated_at":"2020-12-10T11:33:12Z",
      "revision_number":2
    }
  ]
}


ACL 보기

GET /v2.0/acls/{aclId}
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
aclId URL UUID O 조회할 ACL ID
fields Query String - 조회할 ACL의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acl Body Array ACL 목록 객체
acl.id Body UUID ACL ID
acl.tenant_id Body String 테넌트 ID
acl.description Body String ACL 설명
acl.name Body String ACL 이름
acl.create_at Body String ACL 생성 시간
acl.update_at Body String ACL 갱신 시간
예시

{
  "acl": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "name": "default",
      "created_at":"2020-11-02T06:51:49Z",
      "updated_at":"2020-11-02T06:51:49Z",
      "revision_number":2
    }
}


ACL 생성

POST /v2.0/acls
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
acl Body Array O ACL 목록 객체
acl.tenant_id Body String - 테넌트 ID
acl.name Body String - ACL 이름(구분을 위해 넣는것을 권장)
acl.description Body String - ACL 설명
예시

{
  "acl": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl",
      "name": "default"
    }
}

응답

이름 종류 형식 설명
acl Body Array ACL 목록 객체
acl.id Body String ACL ID
acl.tenant_id Body String 테넌트 ID
acl.name Body String ACL 이름
acl.description Body String ACL 설명
acl.create_at Body String ACL 생성 시간
acl.update_at Body String ACL 갱신 시간
예시

{
  "acl": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "name": "default",
      "created_at":"2020-11-02T06:51:49Z",
      "updated_at":"2020-11-02T06:51:49Z",
      "revision_number":2
    }
}


ACL 삭제

DELETE /v2.0/acls/{aclId}
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
aclId URL UUID O 삭제할 ACL ID
tokenId Header String O 토큰 ID

응답

이 API는 응답 본문을 반환하지 않습니다.


ACL 수정

기존 ACL을 수정합니다(이름과 설명만 수정 가능합니다).

PUT /v2.0/acls/{aclId}
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
aclId URL String O ACL ID
acl Body Array O ACL 목록 객체
acl.name Body String - ACL 이름
acl.description Body String - ACL 설명
예시

{
  "acl": 
    {
      "description": "Default acl",
      "name": "default"
    }
}

응답

이름 종류 형식 설명
acl Body Array ACL 목록 객체
acl.id Body String ACL ID
acl.tenant_id Body String 테넌트 ID
acl.name Body String ACL 이름
acl.description Body String ACL 설명
acl.create_at Body String ACL 생성 시간
acl.update_at Body String ACL 갱신 시간
예시

{
  "acl": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "description": "Default acl",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "name": "default",
      "created_at":"2020-11-02T06:51:49Z",
      "updated_at":"2020-11-02T06:51:49Z",
      "revision_number":2
    }
}


ACL Rule 목록 보기

GET /v2.0/acl_rules
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
sort_dir Query Enum - 조회할 ACL Rule의 정렬 방향
sort_key에서 지정한 필드를 기준으로 정렬
asc, desc 중 하나
sort_key Query String - 조회할 ACL Rule의 정렬 키
sort_dir에서 지정한 방향대로 정렬
fields Query String - 조회할 ACL Rule의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acl_rules Body Array ACL Rule 목록 객체
acl_rules.id Body String ACL Rule ID
acl_rules.tenant_id Body String 테넌트 ID
acl_rules.description Body String ACL Rule 설명
acl_rules.create_at Body String ACL Rule 생성 시간
acl_rules.update_at Body String ACL Rule 갱신 시간
acl_rules.acl_id Body String ACL ID
acl_rules.protocol Body String protocol(tcp, udp, icmp)
acl_rules.ethertype Body String IPv4로 고정
acl_rules.src_port_range_min Body Integer src 포트 범위의 최솟값(1~65535)
acl_rules.src_port_range_max Body Integer src 포트 범위의 최댓값(1~65535)
acl_rules.src_ip Body String src ip
acl_rules.dst_ip Body String dst ip
acl_rules.dst_port_range_max Body Integer dst 포트 범위의 최솟값(1~65535)
acl_rules.dst_port_range_min Body Integer dst 포트 범위의 최댓값(1~65535)
acl_rules.policy Body String allow or deny
acl_rules.order Body Integer ACL Rule 적용순서, 숫자가 작을수록 먼저 적용됨(102~32764 사용).
예시

{
  "acl_rules": [
    {
        "remote_group_id":null,
        "protocol":null,
        "description":"default denyrule",
        "ethertype":"IPv4",
        "created_at":"2022-12-16T06:58:54Z",
        "src_port_range_max":null,
        "updated_at":"2022-12-16T06:58:54Z",
        "id":"005a5644-4e43-47fcb3d9-6c1befe12f7b",
        "src_ip":"0.0.0.0/0",
        "dst_port_range_min":null,
        "dst_port_range_max":null,
        "revision_number":0,
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"deny",
        "dst_ip":"0.0.0.0/0",
        "project_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "order":32765,
        "acl_id":"5efaec75-8f07-4f5f-83b1-8b4c11c07e0b",
        "src_port_range_min":null
    },
    {
        "remote_group_id":null,
        "protocol":null,
        "description":"",
        "ethertype":"IPv4",
        "created_at":"2020-11-12T01:23:04Z",
        "src_port_range_max":null,
        "updated_at":"2020-11-12T01:23:04Z",
        "id":"00817eb7-4a3f-45dcbc8d-8f792bc5a05c",
        "src_ip":"0.0.0.0/0",
        "dst_port_range_min":null,
        "dst_port_range_max":null,
        "revision_number":0,
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"allow",
        "dst_ip":"25.0.0.0/0",
        "project_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "order":125,
        "acl_id":"f16c042b-a3c6-4bb2-b10a-12b2edb77b01",
        "src_port_range_min":null
    }
  ]
}


ACL Rule 보기

GET /v2.0/acl_rules/{aclRuleId}
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
aclRuleId URL UUID O 조회할 ACL Rule ID
fields Query String - 조회할 ACL Rule의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acl_rule Body Array ACL Rule 목록 객체
acl_rule.id Body String ACL Rule ID
acl_rule.tenant_id Body String 테넌트 ID
acl_rule.description Body String ACL Rule 설명
acl_rule.create_at Body String ACL Rule 생성 시간
acl_rule.update_at Body String ACL Rule 갱신 시간
acl_rule.acl_id Body String ACL ID
acl_rule.protocol Body String protocol(tcp, udp, icmp)
acl_rule.ethertype Body String IPv4로 고정
acl_rule.src_port_range_min Body Integer src 포트 범위의 최솟값(1~65535)
acl_rule.src_port_range_max Body Integer src 포트 범위의 최댓값(1~65535)
acl_rule.src_ip Body String src ip
acl_rule.dst_ip Body String dst ip
acl_rule.dst_port_range_max Body Integer dst 포트 범위의 최솟값(1~65535)
acl_rule.dst_port_range_min Body Integer dst 포트 범위의 최댓값(1~65535)
acl_rule.policy Body String allow or deny
acl_rule.order Body Integer ACL Rule 적용순서, 숫자가 작을수록 먼저 적용됨(102~32764 사용).
예시

{
  "acl_rule": 
    {
        "remote_group_id":null,
        "protocol":null,
        "description":"default deny rule",
        "ethertype":"IPv4",
        "created_at":"2022-12-16T06:58:54Z",
        "src_port_range_max":null,
        "updated_at":"2022-12-16T06:58:54Z",
        "id":"005a5644-4e43-47fcb3d9-6c1befe12f7b",
        "src_ip":"0.0.0.0/0",
        "dst_port_range_min":null,
        "dst_port_range_max":null,
        "revision_number":0,
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"deny",
        "dst_ip":"0.0.0.0/0",
        "project_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "order":32765,
        "acl_id":"5efaec75-8f07-4f5f-83b1-8b4c11c07e0b",
        "src_port_range_min":null
    }
}


ACL Rule 생성

POST /v2.0/acl_rules
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
acl_rule Body Array O ACL Rule 목록 객체
acl_rule.tenant_id Body String - 테넌트 ID
acl_rule.description Body String - ACL Rule 설명
acl_rule.acl_id Body String O ACL ID
acl_rule.protocol Body String - protocol(tcp, udp, icmp)
acl_rule.ethertype Body String - IPv4로 고정
acl_rule.src_port_range_min Body Integer - src 포트 범위의 최솟값(1~65535)
acl_rule.src_port_range_max Body Integer - src 포트 범위의 최댓값(1~65535)
acl_rule.src_ip Body String O src ip
acl_rule.dst_ip Body String O dst ip
acl_rule.dst_port_range_max Body Integer - dst 포트 범위의 최솟값(1~65535)
acl_rule.dst_port_range_min Body Integer - dst 포트 범위의 최댓값(1~65535)
acl_rule.policy Body String O allow or deny
acl_rule.order Body Integer O ACL Rule 적용순서, 숫자가 작을수록 먼저 적용됨(102~32764 사용).
예시

{
  "acl_rule": 
    {
        "src_ip":"0.0.0.0/0", 
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"deny","dst_ip":"192.168.0.0/24",
        "order":103,
        "acl_id":"5efaec75-8f07-4f5f-83b1-8b4c11c07e0b"
    }
}

응답

이름 종류 형식 설명
acl_rule Body Array ACL Rule 목록 객체
acl_rule.id Body String ACL Rule ID
acl_rule.tenant_id Body String 테넌트 ID
acl_rule.description Body String ACL Rule 설명
acl_rule.create_at Body String ACL Rule 생성 시간
acl_rule.update_at Body String ACL Rule 갱신 시간
acl_rule.acl_id Body String ACL ID
acl_rule.protocol Body String protocol(tcp, udp, icmp)
acl_rule.ethertype Body String IPv4로 고정
acl_rule.src_port_range_min Body Integer src 포트 범위의 최솟값(1~65535)
acl_rule.src_port_range_max Body Integer src 포트 범위의 최댓값(1~65535)
acl_rule.src_ip Body String src ip
acl_rule.dst_ip Body String dst ip
acl_rule.dst_port_range_max Body Integer dst 포트 범위의 최솟값(1~65535)
acl_rule.dst_port_range_min Body Integer dst 포트 범위의 최댓값(1~65535)
acl_rule.policy Body String allow or deny
acl_rule.order Body Integer ACL Rule 적용순서, 숫자가 작을수록 먼저 적용됨(102~32764 사용).
예시

{
  "acl_rule": 
    {
        "remote_group_id":null,
        "protocol":null,
        "description":"",
        "ethertype":"IPv4",
        "created_at":"2022-12-16T06:58:54Z",
        "src_port_range_max":null,
        "updated_at":"2022-12-16T06:58:54Z",
        "id":"005a5644-4e43-47fcb3d9-6c1befe12f7b",
        "src_ip":"0.0.0.0/0",
        "dst_port_range_min":null,
        "dst_port_range_max":null,
        "revision_number":0,
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"deny",
        "dst_ip":"192.168.0.0/24",
        "project_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "order":103,
        "acl_id":"5efaec75-8f07-4f5f-83b1-8b4c11c07e0b",
        "src_port_range_min":null
    }
}


ACL Rule 삭제

DELETE /v2.0/acl_rules/{aclRuleId}
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
aclRuleId URL UUID O 삭제할 ACL Rule ID
tokenId Header String O 토큰 ID

응답

이 API는 응답 본문을 반환하지 않습니다.


ACL Rule 수정

기존 ACL Rule을 수정합니다(설명만 수정 가능 합니다).

PUT /v2.0/acl_rules/{aclRuleId}
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
aclRuleId URL UUID O 삭제할 ACL Rule ID
acl_rule Body Array O ACL Rule 목록 객체
acl_rule.description Body String O ACL Rule 설명
예시

{
  "acl_rule": 
    {
      "description": "acl_rule1"
    }
}

응답

이름 종류 형식 설명
acl_rule Body Array ACL Rule 목록 객체
acl_rule.id Body String ACL Rule ID
acl_rule.tenant_id Body String 테넌트 ID
acl_rule.description Body String ACL Rule 설명
acl_rule.create_at Body String ACL Rule 생성 시간
acl_rule.update_at Body String ACL Rule 갱신 시간
acl_rule.acl_id Body String ACL ID
acl_rule.protocol Body String protocol(tcp, udp, icmp)
acl_rule.ethertype Body String IPv4로 고정
acl_rule.src_port_range_min Body Integer src 포트 범위의 최솟값(1~65535)
acl_rule.src_port_range_max Body Integer src 포트 범위의 최댓값(1~65535)
acl_rule.src_ip Body String src ip
acl_rule.dst_ip Body String dst ip
acl_rule.dst_port_range_max Body Integer dst 포트 범위의 최솟값(1~65535)
acl_rule.dst_port_range_min Body Integer dst 포트 범위의 최댓값(1~65535)
acl_rule.policy Body String allow or deny
acl_rule.order Body Integer ACL Rule 적용순서, 숫자가 작을수록 먼저 적용됨(102~32764 사용).
예시

{
  "acl_rule": 
    {
        "remote_group_id":null,
        "protocol":null,
        "description":"default deny rule",
        "ethertype":"IPv4",
        "created_at":"2022-12-16T06:58:54Z",
        "src_port_range_max":null,
        "updated_at":"2022-12-16T06:58:54Z",
        "id":"005a5644-4e43-47fc-b3d9-6c1befe12f7b",
        "src_ip":"0.0.0.0/0",
        "dst_port_range_min":null,
        "dst_port_range_max":null,
        "revision_number":0,
        "tenant_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "policy":"deny",
        "dst_ip":"0.0.0.0/0",
        "project_id":"43b53d88b7a54d3aa5472bd800f1cbce",
        "order":32765,
        "acl_id":"5efaec75-8f07-4f5f-83b1-8b4c11c07e0b",
        "src_port_range_min":null
    }
}


ACL 바인딩 목록 보기

GET /v2.0/acl_bindings
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
sort_dir Query Enum - 조회할 ACL 바인딩의 정렬 방향
sort_key에서 지정한 필드를 기준으로 정렬
asc, desc 중 하나
sort_key Query String - 조회할 ACL 바인딩의 정렬 키
sort_dir에서 지정한 방향대로 정렬
fields Query String - 조회할 ACL 바인딩의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acl_bindings Body Array ACL 바인딩 목록 객체
acl_bindings.id Body String ACL 바인딩 ID
acl_bindings.tenant_id Body String 테넌트 ID
acl_bindings.acl_id Body String Network와 바인딩 되는 ACL ID
acl_bindings.network_id Body String ACL과 바인딩 되는 Network ID
예시

{
  "acl_bindings": [ 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "acl_id":"2a61e4ab-b7f7-4323-a399-7e121996f6bb",
      "network_id":"56abace2-98b5-4767-ae5e-a2e2ab44d49a"
    },
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "id": "edb544dc-377d-4bbd-8516-435ad45b47ad",
      "acl_id":"9b0bb5bd-f457-483f-9adb-987bce2bed89",
      "network_id":"0bb5e696-65cf-49d8-a545-d9d814e3c4b2"
    }
   ]
}


ACL 바인딩 보기

GET /v2.0/acl_bindings/{aclBindingId}
X-Auth-Token: {tokenId}

요청

이 API는 요청 본문을 요구하지 않습니다.

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
aclBindingId URL UUID O 조회할 ACL 바인딩 ID
fields Query String - 조회할 ACL 바인딩의 필드 이름
예) fields=id&fields=name

응답

이름 종류 형식 설명
acl_binding Body Array ACL 바인딩 목록 객체
acl_binding.id Body String ACL 바인딩 ID
acl_binding.tenant_id Body String 테넌트 ID
acl_binding.acl_id Body String Network와 바인딩 되는 ACL ID
acl_binding.network_id Body String ACL과 바인딩 되는 Network ID
예시

{
  "acl_binding": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "acl_id":"2a61e4ab-b7f7-4323-a399-7e121996f6bb",
      "network_id":"56abace2-98b5-4767-ae5e-a2e2ab44d49a"
    }
}


ACL 바인딩 생성

POST /v2.0/acl_bindings
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
tokenId Header String O 토큰 ID
acl_binding Body Array O ACL 바인딩 목록 객체
acl_binding.tenant_id Body String - 테넌트 ID
acl_binding.network_id Body String O Network ID
acl_binding.acl_id Body String O ACL ID
예시

{
  "acl_binding": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "acl_id":"2a61e4ab-b7f7-4323-a399-7e121996f6bb",
      "network_id":"56abace2-98b5-4767-ae5e-a2e2ab44d49a"
    }
}

응답

이름 종류 형식 설명
acl_binding Body Array ACL 바인딩 목록 객체
acl_binding.id Body String ACL 바인딩 ID
acl_binding.tenant_id Body String 테넌트 ID
acl_binding.acl_id Body String Network와 바인딩 되는 ACL ID
acl_binding.network_id Body String ACL과 바인딩 되는 Network ID
예시

{
  "acl_binding": 
    {
      "tenant_id": "19eeb40d58684543aef29cbb5ebfe8f0",
      "id": "877b092c-2a31-4509-8d23-deeb02d95633",
      "acl_id":"2a61e4ab-b7f7-4323-a399-7e121996f6bb",
      "network_id":"56abace2-98b5-4767-ae5e-a2e2ab44d49a"
    }
}


ACL 바인딩 삭제

DELETE /v2.0/acl_bindings/{aclBindingId}
X-Auth-Token: {tokenId}

요청

이름 종류 형식 필수 설명
aclBindingId URL UUID O 삭제할 ACL 바인딩 ID
tokenId Header String O 토큰 ID

응답

이 API는 응답 본문을 반환하지 않습니다.

TOP