Namespace

Namespace (네임스페이스) 참조

네임스페이스는 HTTP API와 Consul CLI를 통해서만 관리돼요. HTTP API는 JSON 형식 정의만 허용하는 반면 CLI는 JSON 또는 HCL을 모두 구문 분석할 수 있어요.

출처: 문서

본문

네임스페이스는 HTTP API와 Consul CLI를 통해서만 관리됩니다. HTTP API는 JSON 형식 정의만 허용하는 반면 CLI는 JSON 또는 HCL을 모두 구문 분석합니다.

필드 (Fields)

  • Name (string: <required>) - 네임스페이스 이름은 유효한 DNS 호스트 이름 레이블이어야 합니다.
  • Description (string: "") - 이 필드는 네임스페이스의 목적에 대한 사람이 읽을 수 있는 설명으로 의도된 것입니다. 내부적으로 사용되지 않습니다.
  • ACLs (object: <optional>) - 이 필드는 네임스페이스의 ACL 구성을 포함하는 중첩 JSON/HCL 객체입니다.
    • PolicyDefaults (array<ACLLink>) - 이 네임스페이스에서 생성된 모든 토큰에 적용할 기본 정책 목록. ACLLink 객체는 ID 및/또는 Name 필드를 포함할 수 있습니다. 정책의 ID가 생략되면 Consul은 네임스페이스 정의를 내부적으로 작성하기 전에 이름을 ID로 해석합니다. 네임스페이스 정의에 연결된 모든 정책은 default 네임스페이스 내에 정의되어야 하며, 네임스페이스를 만들거나 편집하는 데 사용되는 ACL 토큰은 연결된 정책에 대해 acl:write 액세스가 있어야 합니다.
    • RoleDefaults (array<ACLLink>) - 이 네임스페이스에서 생성된 모든 토큰에 적용할 기본 역할 목록. ACLLink 객체는 ID 및/또는 Name 필드를 포함할 수 있습니다. 역할의 ID가 생략되면 Consul은 네임스페이스 정의를 내부적으로 작성하기 전에 이름을 ID로 해석합니다. 네임스페이스 정의에 연결된 모든 역할은 default 네임스페이스 내에 정의되어야 하며, 네임스페이스를 만들거나 편집하는 데 사용되는 ACL 토큰은 연결된 역할에 대해 acl:write 액세스가 있어야 합니다.
  • Meta (map<string|string>: <optional>) - 이 네임스페이스와 연결할 임의의 KV 메타데이터를 지정합니다.

예시 (Examples)

예시 네임스페이스 정의는 다음 형식을 갖습니다.

{
  "Name": "team-1",
  "Description": "Namespace for Team 1",
  "ACLs": {
    "PolicyDefaults": [
      {
        "ID": "77117cf6-d976-79b0-d63b-5a36ac69c8f1"
      },
      {
        "Name": "node-read"
      }
    ],
    "RoleDefaults": [
      {
        "ID": "69748856-ae69-d620-3ec4-07844b3c6be7"
      },
      {
        "Name": "ns-team-2-read"
      }
    ]
  },
  "Meta": {
    "foo": "bar"
  }
}

더 알아보기 (Learn more)