비공개 경로 서비스 만들기

서비스 제공자로서 사용자는 이용자 계정 ID를 관리할 책임이 있습니다. 현재 계정 ID 추적 또는 유효성 검증은 지원되지 않습니다. 자세한 정보는 이용자 계정 ID 관리 책임 을 참조하십시오.

서비스 제공업체는 VPC용 비공개 경로 서비스를 통해 호스팅된 IBM Cloud 및 타사 서비스 및 애플리케이션을 위한 비공개 연결을 만들고 관리할 수 있습니다. 콘솔, CLI, API 또는 Terraform을 사용하여 비공개 경로 서비스를 만들 수 있습니다.

시작하기 전에

개인 경로 서비스를 작성하기 전에 다음 전제조건을 검토하십시오.

콘솔, CLI, API 또는 Terraform을 사용하여 IBM Cloud® 비공개 경로 서비스를 만들 수 있습니다.

콘솔에서 비공개 경로 서비스 만들기

IBM Cloud 콘솔을 사용하여 개인 경로 서비스를 작성하려면 다음 단계를 수행하십시오.

  1. 브라우저에서 IBM Cloud 콘솔을 열고 계정에 로그인하십시오.

  2. 탐색 메뉴 아이콘을 선택한 다음 인프라 VPC 아이콘 > 네트워크 > 비공개 경로 서비스를 클릭합니다.

  3. 작성을 클릭하십시오.

  4. 중요한 정보는 체크리스트를 검토하십시오.

  5. 위치 섹션에서 다음 필드가 올바른지 확인하십시오. 그렇지 않으면 편집 아이콘 편집 아이콘 을 클릭하여 업데이트하십시오.

    • 지형: 개인 경로 서비스를 작성할 일반 영역입니다.
    • 지역: 지역: 비공개 경로 서비스를 만들려는 지역입니다.
  6. 세부 정보 섹션에서 다음 정보를 입력합니다:

    • 이름: 개인 경로 서비스의 고유 ID를 입력하십시오 (예: my-privatepath-service).
    • 자원 그룹: 필요한 경우 자원 그룹을 선택하십시오.
    • 태그: 선택적으로 개인 경로 서비스를 그룹화하는 데 도움이 되는 관련 태그를 추가하십시오.
    • 액세스 관리 태그: 선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은 key:value입니다. 자세한 정보는 태그를 사용하여 리소스에 대한 액세스 제어를 참조하십시오.
    • 가상 프라이빗 클라우드: 프라이빗 경로 서비스를 작성할 VPC를 선택하십시오.
  7. 사설 경로 네트워크 부하 분산기 섹션에서 사설 경로 서비스에 대한 사설 경로 NLB를 선택하거나 만들기를 클릭하여 생성합니다. 비공개 경로 NLB를 만들려면 다음 단계를 따르세요:

    다음 을 클릭하여 다음 단계로 이동하거나 왼쪽의 탐색 메뉴를 사용하여 특정 섹션으로 돌아가십시오.

    1. 세부 정보 정의 섹션에서 다음 정보를 입력합니다:

      • 이름: 개인용 경로 NLB의 고유 ID를 입력하십시오 (예: my-privatepath-service).
      • 자원 그룹: 개인용 경로 NLB에 대한 자원 그룹을 선택하십시오.
      • 태그: 선택적으로 개인 경로 NLB를 그룹화하는 데 도움이 되는 관련 태그를 추가하십시오.
      • 액세스 관리 태그: 선택적으로 액세스 제어 관계를 구성하는 데 도움이 되도록 자원에 액세스 관리 태그를 추가하십시오. 액세스 관리 태그의 유일한 지원 형식은 key:value입니다. 자세한 내용은 태그를 사용하여 리소스에 대한 액세스 제어하기를 참조하세요.
      • 서브넷: 개인 경로 NLB를 작성할 서브넷을 선택하십시오.
    2. 선택 사항으로, 백엔드 풀 생성 섹션에서:

      • 이름: 개인용 경로 NLB의 고유 ID를 입력하십시오 (예: my-ppnlb).

      • 로드 밸런싱 알고리즘인 메소드를 선택하십시오. 다음 옵션이 표시됩니다.

        • 라운드 로빈- 각 인스턴스에 차례로 요청을 전달합니다. 모든 인스턴스가 대략 동일한 수의 클라이언트 연결을 수신합니다.
        • 가중 라운드 로빈- 할당된 가중치에 비례하여 각 인스턴스에 요청을 전달합니다. 예를 들어 인스턴스 A, B 및 C가 있고 해당 가중치가 60, 60 및 3으로 설정된 경우, 인스턴스 A 및 B는 동일한 수의 연결을 수신하며 인스턴스 C는 그 절반의 연결을 수신합니다.

        상태 검사 섹션에서 다음을 수행하십시오.

        • 상태 확인 경로- 상태 확인 경로는 상태 확인 프로토콜로 HTTP 을 선택한 경우에만 적용됩니다. 상태 검사 경로는 풀의 인스턴스에 HTTP 상태 검사 요청을 보내기 위해 로드 밸런서가 사용하는 URL을 지정합니다. 기본적으로 상태 검사는 루트 경로(/)로 전송됩니다.
        • 상태 프로토콜 - 로드 밸런서가 풀의 인스턴스에 상태 확인 메시지를 전송하는 데 사용되는 프로토콜입니다.
        • 상태 포트- 로드 밸런서가 상태 확인 요청을 전송하는 포트입니다. 기본적으로 상태 확인은 트래픽이 인스턴스로 전송되는 동일한 포트에서 전송됩니다.
        • 간격 - 두 번의 연속 상태 검사 시도 사이의 간격(초)입니다. 기본적으로 상태 확인은 5초마다 전송됩니다.
        • 시간 초과- 시스템에서 상태 확인 요청의 응답을 기다리는 최대 시간입니다. 기본적으로 로드 밸런서는 2초 동안 응답을 기다립니다.
        • 최대 재시도 횟수 - 로드 밸런서가 인스턴스가 비정상 상태로 선언되기 전에 시도하는 최대 상태 확인 횟수입니다. 기본적으로 두 번의 상태 확인이 실패하고 나면 인스턴스가 비정상 상태로 간주됩니다.

        로드 밸런서는 상태가 좋지 않은 인스턴스에 대한 연결 전송을 중지하지만, 이러한 인스턴스의 상태를 계속 모니터링하고 다시 정상으로 확인되면(즉, 두 번의 연속 상태 확인 시도를 성공적으로 통과하면) 사용을 재개합니다.

      풀의 인스턴스가 건강하지 않은데 애플리케이션이 올바르게 작동하고 있다고 생각되면 상태 프로토콜과 상태 경로 값을 다시 확인하세요. 또한 인스턴스가 연결된 보안 그룹을 검사하여 해당 규칙에서 로드 밸런서와 인스턴스 간의 트래픽을 허용하는지 확인하십시오.

      • 저장 을 클릭하십시오. 다른 백엔드 풀을 작성하려면 이 단계를 반복하십시오.
    3. 선택 사항으로, 구성원 추가 섹션에서 다음 정보를 입력한 다음 추가를 클릭합니다:

      • 백엔드 풀: 서버를 연결할 백엔드 풀을 선택하십시오.

      • 서브넷: 표에서 특정 서브넷을 검색하고, 연결하고자 하는 서브넷 옆에 있는 박스에 체크 표시를 하세요. 포트 열에 선택한 각 서브넷의 포트 번호를 입력하십시오.

      • 구성원 유형: 가상 서버 인스턴스, 예약 IP 또는 애플리케이션 로드 밸런서를 멤버로 추가합니다. 가상 서버 인스턴스의 경우 각 유형을 개별적으로 연결합니다. 예약된 IP 멤버는 베어메탈 서버, 가상 서버 인스턴스의 기본 또는 보조 인터페이스 또는 가상 네트워크 인터페이스에 바인딩될 수 있습니다.

        ALB를 구성원 대상으로 개인 경로 NLB 풀에 연결하면 해당 풀에 다른 구성원을 추가할 수 없습니다.

    4. 선택 사항으로, 프런트엔드 리스너 추가 섹션에서 프런트엔드 리스너를 연결하고자 하는 백엔드 풀을 선택합니다. 그런 다음 리스너 포트 값을 선택하고 저장을 클릭하십시오. 다른 프론트 엔드 리스너를 작성하려면 이 단계를 반복하십시오.

    5. 검토 섹션에서 제출한 정보가 올바른지 확인하십시오. 주문 정보 요약을 검토한 후 작성을 누르십시오.

      비공개 경로 NLB가 생성되는 데 몇 분 정도 걸립니다. 로드 밸런서가 작성되면 테이블에서 해당 상태가 작성 중 에서 활성 으로 변경됩니다.

  8. 서비스 엔드포인트 섹션에서 만들기를 클릭합니다. 비공개 경로 서비스를 연결할 서비스 엔드포인트의 이름을 입력합니다. 그런 다음 FQDN 도메인 이름의 소유권을 확인하고 추가를 클릭합니다. 자세한 내용은 서비스 엔드포인트(FQDN)의 소유권 등록 및 확인을 참조하세요.

  9. 서비스 엔드포인트에 대한 영역 선호도를 활성화 또는 비활성화하려면 선택합니다. 구역 연관관계가 사용으로 설정되면 연결이 작성된 후에 엔드포인트가 구역에 대한 지속성을 유지합니다.

  10. 계정 정책 섹션에서 다음을 수행하십시오.

    • 기본 정책은 각 수신 연결 요청을 검토하고 선별하도록 설정됩니다. 검토 없이 모든 요청을 허용하거나 거부하도록 기본 정책을 변경할 수 있습니다.
    • 기본 정책과 다른 계정 정책을 설정하려면 만들기를 클릭합니다. 정책을 설정할 계정의 계정 ID를 입력합니다. 계정 정책 옵션에서 검토, 허용 또는 거부를 선택합니다.

    개별 계정 정책은 기본 정책보다 우선합니다.

  11. 요약 페이지를 검토한 다음 만들기를 클릭하여 비공개 경로 서비스를 주문합니다.

    프로비저닝이 완료되면 개인용 경로 서비스 상태가 VPC의 개인용 경로 서비스 테이블에 Stable 를 표시합니다.

CLI에서 비공개 경로 서비스 만들기

다음 예제는 CLI를 사용하여 개인 경로 서비스를 작성하는 방법을 보여줍니다.

시작하기 전에 CLI 환경을 설정하십시오.

CLI에서 비공개 경로 서비스를 만들려면 다음 단계를 따르세요:

  1. 다음 명령을 입력하십시오.
ibmcloud is private-path-service-gateway-create
    [--load balancer LOAD_BALANCER]
    [--service-endpoints SERVICE_ENDPOINTS]
    [--default-access-policy | deny | permit | review]
    [--name NAME]
    [--zonal-affinity | true | false]
    [--output JSON] [-q, --quiet]

여기서:

--load-balancer
이 사설 경로 서비스에 대한 로드밸런서의 ID 또는 이름을 나타냅니다.
--service-endpoints
이 비공개 경로 서비스의 정규화된 도메인 이름을 나타냅니다. 대문자는 소문자로 변환됩니다.
--default-access-policy
명시적인 계정 정책이 없는 계정의 바인딩에 사용할 정책을 나타냅니다. deny, permit, review 중 하나입니다. (기본값: deny).
--name
이 비공개 경로 서비스의 이름을 나타냅니다.
--zonal-affinity
는 이 비공개 경로 서비스에 영역 선호도가 있는지 여부를 나타냅니다. 중 하나입니다: false, true.
--output
출력 형식을 지정합니다. JSON만 지원됩니다. JSON 중 하나입니다.
-q, --quiet
상세 출력이 표시되지 않도록 합니다.

명령 예제

  • 허용 정책 및 구역 선호도를 사용하여 정책 기반 개인 경로 서비스를 작성하십시오. ibmcloud is private-path-service-gateway-create --load-balancer my-cli-nlb --service-endpoints cli.domain.com --default-access-policy permit --name cli-ppsg-1 --zonal-affinity true

  • 거부 정책 및 구역 선호도를 사용하여 정책 기반 개인 경로 서비스를 작성하십시오. ibmcloud is private-path-service-gateway-create --load-balancer r006-d-439744e1-81d7-43fb-95d5-2356774240bb --service-endpoints clidemo.domain.com --default-access-policy deny --name cli-ppsg-2 --zonal-affinity true

API로 비공개 경로 서비스 만들기

API를 사용하여 비공개 경로 서비스를 만들려면 다음 단계를 따르세요:

  1. API 환경을 설정하십시오.

  2. API 명령에 사용할 변수에 다음 값을 저장하십시오.

    • loadBalancerId-먼저 로드 밸런서를 가져온 후 변수를 채우십시오.

      export loadBalancerId=<your_loadbalancer_id>
      
  3. 모든 변수가 시작되면 비공개 경로 서비스를 생성합니다:

    curl -X POST -sH "Authorization:${iam_token}" \
    "$vpc_api_endpoint/v1/private_path_service_gateways?version=$api_version&generation=2" \
    -d {
      "default_access_policy": "review",
      "load_balancer": {
        "id": "$loadBalancerId"
      },
      "name": "my-ppsg",
      "service_endpoints": ["example.com"],
      "zonal_affinity": false
    }'
    

Terraform으로 비공개 경로 서비스 만들기

다음 예제는 Terraform으로 비공개 경로 네트워크를 프로비저닝하는 예제입니다:

resource "ibm_is_private_path_service_gateway" "ppsg" {
    default_access_policy = "deny"
    load_balancer = ibm_is_lb.ppnlb.id
    service_endpoints = ["my-service.example.com"]
    zonal_affinity = false
    name = "my-example-ppsg"
}

테라폼 리소스에 대한 문서는 테라폼 레지스트리를 참조하세요.

서비스 엔드포인트(FQDN)의 소유권 등록 및 확인

비공개 경로 서비스를 만들 때는 제공한 서비스 엔드포인트(DNS FQDN)을 소유하고 있음을 증명해야 합니다. 이는 DNS 하이재킹 및 FQDN 충돌을 방지하기 위한 것입니다. 소유권은 특정 콘텐츠가 포함된 각 FQDN(서비스 엔드포인트)에 대해 TXT 레코드를 생성하여 확인합니다. 공용 DNS에 TXT 레코드를 만듭니다. 공용 DNS는 비공개 경로 서비스가 생성될 때만 참조됩니다. 비공개 경로 서비스가 생성된 후에는 데이터 경로에 비공개 DNS만 사용됩니다(공용 DNS는 사용되지 않음).

필수 TXT 레코드는 ibm-domain-verification= 접두사로 시작해야 합니다. 접두사 뒤에 비공개 경로 서비스를 만드는 사용자와 연결된 계정 ID의 SHA-256 해시와 일치하는 값이 오면 유효성 검사에 성공한 것입니다. 추가할 TXT 레코드 예시입니다: ibm-domain-verification=252cfc164d3600a79007f25312a6a924288cfc6dbcaeec838ca9048cde664acb

FQDN에 TXT 레코드를 추가하는 방법에 대한 자세한 내용은 사용하는 공용 DNS 서비스에 따라 다릅니다. 자세한 내용은 DNS 서비스 제공업체에 문의하는 것이 좋습니다.

비공개 경로 서비스에 대해 여러 서비스 엔드포인트가 지정된 경우, 모든 엔드포인트에 대해 소유권 유효성 검사가 성공해야 합니다.

다음은 도메인 이름 소유권 유효성 검사를 우회하는 데 사용할 수 있는 최상위 도메인 목록입니다:

  • .intranet
  • .internal
  • .private
  • .corp
  • .home
  • .lan

와일드카드(*) 도메인이 지원됩니다. 예를 들어 "service_endpoints": ["*.service.com"] 를 사용하는 비공개 경로 서비스에는 api1.service.comapi2.service.com 와 같은 모든 하위 도메인이 포함됩니다.

와일드카드 도메인에 유효한 TXT 레코드가 포함되어 있으면 DNS 소유권 유효성 검사가 성공한 것입니다. 이 예제에서는 유효성 검사를 통과하기 위해 유효한 TXT 레코드를 service.com 에 추가하면 됩니다.

다음 단계

  1. 개인 경로 서비스에 대한 연결 확인
  2. 개인 경로 서비스 공개
  3. 이용자에게 연결 정보 전달
  4. 연결 요청 검토계정 정책 작성