커넥터 엔드포인트 생성 및 관리

커넥터를 생성하고 커넥터 에이전트를 배포한 후에는, ‘ IBM Cloud Satellite ’ 위치와 해당 위치 외부에서 실행되는 서비스, 서버 또는 앱 간의 네트워크를 관리하기 위한 엔드포인트를 생성할 수 있습니다.

CLI를 사용하여 엔드포인트 생성하기

  1. 다음 명령을 실행하여 Satellite 커넥터의 ID를 찾습니다.

    ibmcloud sat connector ls
    
  2. 엔드포인트를 생성하려면 해당 명령어를 실행하십시오.

    ibmcloud sat endpoint create --dest-hostname HOSTNAME --connector-id ID --dest-type location --dest-port PORT --name NAME --source-protocol PROTOCOL [--dest-protocol PROTOCOL] [--sni SNI]
    
    --connector-id ID
    Satellite 커넥터의 ID입니다. 커넥터 ID를 찾으려면 ibmcloud sat connector ls 를 실행하십시오.
    --dest-hostname HOSTNAME
    연결하려는 대상의 완전한 도메인 이름(FQDN) 또는 외부에서 액세스 가능한 IP 주소를 표시하십시오. location 엔드포인트의 경우, 이 값은 Satellite 위치에 있는 제어 플레인 호스트에서 확인 가능해야 하며, Satellite 커넥터의 경우 에이전트가 실행되는 위치에서 접근 가능해야 합니다.
    --dest-port PORT
    대상 자원이 수신 요청을 청취하는 포트를 제공하십시오. 이 포트가 대상 프로토콜과 일치하는지 확인하십시오.
    --dest-protocol PROTOCOL
    대상의 프로토콜을 지정하십시오. 이 옵션을 지정하지 않으면 대상 프로토콜이 소스 프로토콜에서 상속됩니다. 사용 가능한 옵션: TCP, TLS.
    --dest-type TYPE
    대상 리소스가 실행될 위치를 지정하십시오. IBM Cloud (cloud) 또는 Satellite 위치 (location) 중에서 선택할 수 있습니다. 사용 가능한 옵션: location, cloud.
    --name NAME
    엔드포인트의 이름을 제공하십시오.
    --sni SNI
    TLS 또는 HTTPS 소스 프로토콜을 지정하고, TLS 핸드셰이크에 별도의 호스트 이름을 추가하려면 서버 이름 표시기를 지정하십시오.
    --source-protocol PROTOCOL
    소스가 대상 자원을 연결하는 데 사용하는 프로토콜을 제공하십시오. 자세한 정보는 암호화 프로토콜 을 참조하십시오. 사용 가능한 옵션: TCP, TLS, HTTP, HTTPS, HTTP-tunnel.
  3. 엔드포인트가 생성되었는지 확인하십시오.

    ibmcloud sat endpoint ls --connector-id ID
    
  4. --dest-type=cloud 을 지정하여 온클라우드 엔드포인트를 만드는 경우, 소스 애플리케이션의 요청에 대상 포트를 노출하도록 해당 위치의 커넥터 에이전트를 구성해야 합니다. 온클라우드 엔드포인트에 대한 상담원 포트 구성하기 의 단계를 따르세요.

엔드포인트 작성을 위한 예제 명령

HTTPS 소스 프로토콜과 TLS 대상 프로토콜을 사용하여 SNI 호스트명을 지정하는 엔드포인트를 생성하는 명령어 예시입니다.

ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol HTTPS --dest-protocol TLS --sni mydomain.com

TCP 프로토콜을 사용하는 엔드포인트를 생성하는 명령어 예시.

ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol TCP --dest-protocol TCP

온-클라우드 엔드포인트용 에이전트 포트 구성하기

온클라우드 엔드포인트를 사용하면 IBM Cloud 위치 네트워크 외부의 Satellite 리소스에 액세스할 수 있습니다. 여기에는 Satellite 계정에서 액세스할 수 있는 모든 공개 또는 비공개 서비스(예: IBM Cloud IAM용 엔드포인트 또는 비공개 IBM Cloud Object Storage 버킷)가 포함됩니다.

소스 애플리케이션에서 온클라우드 엔드포인트로의 호출은 먼저 사용자 위치에서 실행 중인 로컬 커넥터 에이전트로 연결됩니다. 그러나 소스 애플리케이션이 엔드포인트에 액세스하려면 먼저 에이전트가 수신 대기 중인 엔드포인트의 대상 포트가 소스 애플리케이션에서 액세스할 수 있는지 확인해야 합니다. Docker 또는 Rancher와 같은 컨테이너 플랫폼의 경우 엔드포인트의 대상 포트를 에이전트가 실행 중인 컨테이너 외부에서 클라이언트가 액세스할 수 있는 적절한 포트에 매핑해야 합니다. 이 요구 사항을 완료하려면 다음 단계를 따르세요.

  1. 명령을 실행하여 대상 포트를 확인하십시오. 출력에서 주소 열에 나열된 포트 번호를 찾습니다.

    ibmcloud sat endpoints --connector-id <connector ID>
    

    출력 예. 이 예에서 대상 포트 번호는 29998 입니다.

    OK
    ID                                          Name      Destination Type   Address      Status
    A1A1AAaaaAAaA11AAAAAaA11aaaAaaaAaA_aaaaa    test123   cloud              TCP :29998   enabled
    
  2. 컨테이너 플랫폼에 적합한 단계에 따라 대상 포트를 컨테이너에 매핑합니다. Docker 및 Rancher를 포함한 대부분의 플랫폼에서 Connector 에이전트를 시작할 때 -p LISTENPORT:CONTAINERPORT 옵션을 사용할 수 있습니다.

    예를 들어, Docker를 사용하는 경우 다음 명령은 엔드포인트의 컨테이너 내부 대상 포트 8443 에 대한 포트 29998 를 노출합니다.

    docker run -d -p 8443:29998 --env-file /root/agent/env-files/env.txt --env LOG_LEVEL=trace -v /root/agent/env-files:/agent-env-files icr.io/ibm/satellite-connector/satellite-connector-agent:latest
    

    또한 컨테이너 플랫폼 및 운영 체제와 협력하여 선택한 LISTENPORT 으로 외부 트래픽을 허용해야 할 수도 있습니다. 앞서 살펴본 예시에서, LISTENPORT 의 주소는 8443 입니다.

  3. 이제 이 예제에서 포트 8443의 컨테이너 플랫폼에 설정된 IP 주소 또는 DNS 이름에서 리소스에 연결할 수 있습니다.

CLI에서 ACL(액세스 제어 목록) 규칙 만들기

  1. 다음 명령을 실행하여 하나 이상의 서브넷에 대한 ACL 규칙을 만들고 선택적으로 하나 이상의 엔드포인트에 바인딩할 수 있습니다.

    ibmcloud sat acl create --connector-id ID --name NAME --subnet SUBNET [--subnet SUBNET ...] [--endpoint ENDPOINT ...]
    
    --connector-id ID
    Satellite 커넥터의 ID입니다. 커넥터 ID를 찾으려면 ibmcloud sat connector ls 를 실행하십시오.
    --name NAME
    ACL의 이름.
    --subnet SUBNET
    이 ACL에서 허용하는 IP 또는 CIDR 블록입니다. 값은 다음 CIDR에 완전히 포함되어야 합니다: 10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.
    --endpoint ENDPOINT
    이 ACL을 사용하도록 설정할 엔드포인트의 이름 또는 ID입니다.
  2. ACL이 생성되었는지 확인하십시오.

    ibmcloud sat acl ls --connector-id ID
    
  3. 기존 ACL의 엔드포인트 또는 서브넷을 추가하거나 제거할 수도 있습니다.

     ibmcloud sat acl endpoint add --connector-id ID --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...]
     ibmcloud sat acl endpoint rm --connector-id ID --acl-id ID --endpoint ENDPOINT [--endpoint ENDPOINT ...]
     ibmcloud sat acl subnet add --connector-id ID --acl-id ID --subnet SUBNET [--subnet SUBNET ...]
     ibmcloud sat acl subnet rm --connector-id ID --acl-id ID --subnet SUBNET [--subnet SUBNET ...]
    

ACL 생성을 위한 명령 예시

서브넷 10.123.76.192/26 엔드포인트 ' myendpoint'에 액세스하도록 허용하는 ACL 규칙을 만드는 명령 예제 .

ibmcloud sat acl create --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --name myrule --subnet 10.123.76.192/26 --endpoint myendpoint

출력 예

OK
ACL created with ID A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea

새로 생성한 ACL의 ID를 사용하여 다음 명령을 실행하여 두 번째 서브넷인 10.194.127.64/26을 ACL에 추가합니다.

ibmcloud sat acl subnet add --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --acl-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea --subnet 10.194.127.64/26

ACL 목록을 확인하려면 다음 명령을 실행하십시오. myrule ACL은 이제 10.123.76.192/26 과 10.194.127.64/26 두 개의 서브넷을 포함합니다.

ibmcloud sat acl ls --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI
OK
ID                                                                      Name        Subnets                             Created
A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea   myrule      10.123.76.192/26,10.194.127.64/26   11 minutes ago

콘솔에서 엔드포인트 생성하기

  1. 커넥터 콘솔에서 엔드포인트를 만들려는 커넥터를 클릭합니다.

  2. 사용자 엔드포인트 탭을 클릭한 다음 엔드포인트 만들기를 클릭합니다.

  3. 엔드포인트 유형을 선택합니다.

    에이전트 위치
    커넥터 에이전트와 동일한 네트워크에서 실행되는 대상 리소스.
    클라우드
    IBM Cloud 에서 실행되는 대상 리소스입니다.
  4. 다음을 클릭하십시오.

  5. 자원 세부사항 페이지에서 다음 세부사항을 입력하십시오.

    엔드포인트 이름
    엔드포인트에 이름을 지정하세요.
    대상 FQDN 또는 IP
    연결할 대상 리소스의 완전한 도메인 이름 또는 IP 주소를 입력합니다.
    대상 포트
    수신 요청에 대해 대상 리소스가 청취하는 포트를 입력합니다.
  6. 다음 을 클릭하십시오.

  7. '프로토콜' 페이지에서 소스가 대상 FQDN 또는 IP 주소에 연결할 때 사용해야 하는 프로토콜을 선택합니다. 이 프로토콜은 대상 리소스의 포트와 일치해야 합니다. 자세한 정보는 엔드포인트 프로토콜을 참조하십시오.

    • TLS 또는 HTTPS 프로토콜을 선택했으며 대상의 인증서에 대한 서버 측 인증을 요구하려는 경우에는 대상 인증서 확인 선택란을 선택하십시오.
    • TLS 또는 HTTPS 프로토콜을 선택했으나 대상 리소스가 아직 개발 중인 경우에는 인증서 업로드를 클릭하여 자체 서명 인증서 파일을 추가할 수 있습니다. 이 ssl.crt 파일은 사용자 리소스의 호스트 이름에 대한, Base64로 인코딩된 공용 인증서를 포함해야 하며 개인용 ssl.key 인증서 키를 포함하지 않아야 합니다. OpenSSL, 를 사용하여 테스트용 자체 서명 인증서를 생성하려면, 이 자체 서명 SSL 인증서 튜토리얼을 참조하십시오.
    • TLS 또는 HTTPS 프로토콜을 선택했으며 리소스 연결의 TLS 핸드쉐이크에 별도의 호스트 이름을 제공하려면 서버 이름 표시기(SNI)를 입력하십시오.
  8. 액세스 제어 목록 페이지에서 규칙 작성을 클릭하십시오.

  9. 선택사항: ACL 규칙 페이지에서 규칙 이름 을 입력하고 엔드포인트에 연결할 수 있는 클라이언트의 IBM Cloud 사설 IP 주소 를 입력하십시오. 이 값은 단일 IP 주소, CIDR 블록 또는 쉼표로 구분된 목록일 수 있습니다. 값은 다음 CIDR에 완전히 포함되어야 합니다. 10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.

    규칙이 선택되지 않은 경우, IBM Cloud 사설 네트워크에 연결된 모든 클라이언트는 해당 엔드포인트를 사용하여 사용자의 위치에서 실행되는 대상 리소스에 연결할 수 있습니다.

  10. 연결 설정 페이지에서 비활성 제한시간을 1-600사이로 설정하십시오.

  11. 엔드포인트 작성을 클릭하십시오.

엔드포인트에 대한 ACL(액세스 제어 목록) 규칙 만들기

  1. Satellite 콘솔에서 ACL 규칙을 만들려는 커넥터를 클릭합니다.

  2. 커넥터 개요 페이지에서 액세스 제어 목록 탭을 클릭한 후 규칙 작성을 클릭하십시오.

  3. ACL 규칙 페이지에서 다음 단계를 수행하십시오.

    1. 규칙 이름을 입력하세요.

    2. 엔드포인트에 연결할 수 있는 클라이언트의 IP 주소 를 입력하십시오. 이 값은 단일 IP 주소, CIDR 블록 또는 쉼표로 구분된 목록일 수 있습니다. 값은 다음 CIDR에 완전히 포함되어야 합니다. 10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.

      규칙이 선택되지 않은 경우, IBM Cloud 사설 네트워크에 연결된 모든 클라이언트는 해당 엔드포인트를 사용하여 사용자의 위치에서 실행되는 대상 리소스에 연결할 수 있습니다.

    3. 해당 위치에서 이 규칙으로 액세스를 제어할 엔드포인트(또는 여러 엔드포인트)를 선택합니다.

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