네트워크 액세스 제한

기본적으로 Event Streams 인스턴스는 IBM Cloud® 공용 네트워크를 사용하도록 구성되므로 공용 인터넷을 통해 액세스할 수 있습니다.

필요한 경우 네트워크 유형 또는 컨텍스트 기반 제한사항을 사용하여 다음과 같이 네트워크 연결을 제한할 수 있습니다.

네트워크 유형

IBM Cloud 은 사설 및 공용 네트워킹을 모두 제공합니다. 워크로드가 전적으로 IBM Cloud 내에서 실행되고 있고 서비스에 대한 공개 액세스가 필요하지 않은 경우, Event Streams 인스턴스를 IBM Cloud 사설 네트워크에서만 액세스할 수 있도록 구성할 수도 있습니다. 여기에서는 증가된 격리가 제공되고 공용 트래픽과 연관된 egress 대역폭 비용이 부과되지 않습니다. 인스턴스는 IBM Cloud 공용 및 사설 네트워크를 통해 액세스되도록 구성될 수도 있습니다. 여기서, 워크로드는 위치에 가장 적합한 인터페이스를 사용할 수 있습니다. IBM Cloud의 가상 라우팅 및 전달에서 사설 네트워킹에 대한 추가 정보를 찾을 수 있습니다.

컨텍스트 기반 제한사항 (CBR)

연결이 허용되는 네트워크 위치를 제한하는 액세스 규칙을 정의할 수 있습니다. 예를 들어, 네트워크 유형, IP 범위, VPC 또는 기타 서비스입니다. 자세한 정보는 컨텍스트 기반 제한사항은 무엇입니까?를 참조하십시오.

컨텍스트 기반 제한사항에 대한 감사 이벤트는 컨텍스트 기반 제한사항 IBM Cloud Activity Tracker 이벤트 컨텍스트 기반 제한사항 규칙 이벤트아래에 공개됩니다. CBR 적용과 관련된 Activity Tracker 이벤트는 개인용 엔드포인트에서 사용 불가능합니다.

네트워크 유형 구성

IBM Cloud 사설, 공용 또는 사설 및 공용 네트워크에서 사용할 수 있도록 엔터프라이즈 서비스 인스턴스를 구성할 수 있습니다. 다음 정보는 필수 네트워킹 유형을 선택하고 업데이트하는 방법을 설명합니다. 기본적으로 공용 네트워킹이 선택되어 있습니다.

전제조건

다음 태스크를 완료하십시오.

  • 지원되는 다중 구역 위치 중 하나에서 엔터프라이즈 플랜을 사용하여 서비스 인스턴스를 작성하십시오. 자세한 내용은 요금제 선택하기 를 참조하세요.

  • IBM Cloud 계정에 대해 Virtual Route Forwarding(VRF) 을 사용으로 설정하십시오.

  • 다음 명령을 실행하여 서비스 엔드포인트 연결을 사용 가능하게 하십시오.

    ibmcloud account update --service-endpoint-enable true
    

    필수 구성 요소가 완료되었는지 확인하려면 다음 명령을 실행한 다음 다음 두 속성이 참인지 확인합니다:

    ibmcloud account show
    
    VRF Enabled:                        true
    Service Endpoint Enabled:           true
    

프로비저닝 중에 네트워크 구성 선택

엔터프라이즈 클러스터의 네트워크 구성을 선택하는 옵션이 많이 있습니다.

  1. IBM Cloud 공용 네트워크를 사용하십시오. 공용 인터넷에서 엔드포인트에 액세스할 수 있습니다. 이는 기본값입니다.

  2. IBM Cloud 비공개 네트워크를 사용합니다. 엔드포인트는 공용 인터넷에 표시되지 않습니다.

  3. IBM Cloud 공용 및 사설 네트워크를 사용하십시오. 엔드포인트는 공용 인터넷 및 내부적으로 IBM Cloud내에 모두 표시됩니다.

Event Streams 카탈로그 프로비저닝 페이지를 통해 프로비저닝 시에 이를 선택할 수 있습니다. 서비스 엔드포인트 메뉴 드롭다운을 사용하여 공개(기본값), 비공개 또는 공개 및 비공개 중 하나를 선택합니다.

또는 CLI를 사용하여 Event Streams 서비스를 프로비저닝할 경우 다음 명령을 사용하십시오.

  • 공용 엔드포인트(기본값)를 사용으로 설정하려면 다음을 수행하십시오.

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints public
    
  • 사설 전용 엔드포인트를 사용으로 설정하려면 다음 명령을 실행하십시오.

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints private
    
  • 개인 및 공용 엔드포인트를 사용으로 설정하려면 다음을 수행하십시오.

    ibmcloud resource service-instance-create <instance-name> messagehub ibm.message.hub.enterprise.3nodes.2tb <region> --service-endpoints public-and-private
    

네트워크 구성 업데이트

프로비저닝 후 Enterprise 클러스터에서 사용하는 엔드포인트를 전환할 수도 있습니다. 이렇게 하려면 다음 CLI 명령을 사용하세요:

공용 또는 개인용 엔드포인트에서 공용 및 개인용 엔드포인트로 직접 마이그레이션하려면 다음을 수행하십시오.

ibmcloud resource service-instance-update <instance-name> --service-endpoints public-and-private

공용 및 개인용에서 공용 엔드포인트로 마이그레이션하려면 다음을 수행하십시오.

ibmcloud resource service-instance-update <instance-name> --service-endpoints public

공용 및 사설 엔드포인트에서 사설 엔드포인트로 마이그레이션하려면 다음을 수행하십시오.

ibmcloud resource service-instance-update <instance-name> --service-endpoints private

공용 엔드포인트에서 개인용 엔드포인트로 직접 전환하거나 개인용 엔드포인트에서 공용 엔드포인트로 직접 전환하는 것은 지원되지 않습니다. 이 스위치는 모든 공용 엔드포인트를 사용 안함으로 설정하며 애플리케이션은 클러스터에 대한 액세스 권한을 잃습니다. 이를 방지하려면 먼저 공용 및 비공개 엔드포인트를 모두 사용하도록 설정한 다음, 애플리케이션이 비공개 엔드포인트를 사용하도록 재구성한 다음, 마지막으로 비공개 전용 엔드포인트로 전환하세요.

예를 들어, 공용 엔드포인트에서 사설 엔드포인트로 마이그레이션하려면 다음을 수행하십시오.

먼저 공용 및 개인용 엔드포인트를 모두 사용으로 설정하십시오.

ibmcloud resource service-instance-update <instance-name> --service-endpoints public-and-private

그런 다음 다음과 같이 비공개 엔드포인트와 새 API 키가 포함된 새 자격 증명을 만듭니다:

ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private

그런 다음 새 서비스 키 및 엔드포인트 세부사항으로 인스턴스를 사용하는 애플리케이션을 업데이트하십시오.

마지막으로 애플리케이션을 비공개 엔드포인트로 마이그레이션한 후 다음 명령을 실행하여 공용 엔드포인트를 끕니다:

ibmcloud resource service-instance-update <instance-name> --service-endpoints private

IP 허용 목록 지정 (더 이상 사용되지 않음)

이 기능은 이제 더 이상 사용되지 않습니다. 대신 컨텍스트 기반 제한사항 CBR 구성 을 사용하십시오.

엔터프라이즈 플랜의 인스턴스를 프로비저닝할 때 사설 엔드포인트를 선택하고 특정 VPC가 있는 알려진 VSI에만 액세스를 추가로 제한하려는 경우 CLI를 사용하고 다음과 같이 추가하여 IP 허용 목록을 추가할 수 있습니다.

ibmcloud resource service-instance-create <instance-name> <plan-name> <region> --service-endpoints private -p '{"private_ip_allowlist":["CIDR1","CIDR2"]}' "

여기서 CIDR1, CIDR2는 a.b.c.d/e 형식의 IP 주소입니다. CIDR의 배열에는 임의의 수의 요소가 있을 수 있습니다.

또는 기존 서비스 인스턴스의 IP 허용 목록을 업데이트하려면 다음 단계를 완료하십시오.

  1. 인스턴스에 적용된 원래 IP 허용 목록을 가져옵니다:

    $ibmcloud es init -i <instance-name>
    API Endpoint:		https://mh-cktmqpdbvkfczhmn.us-south.containers.appdomain.cloud
    Service endpoints:	public-and-private
    Private IP allowlist:	"10.243.0.8/32","10.243.128.8/32","10.243.64.4/32"
    Storage size:		4096 GB
    Throughput:		300 MB/s
    OK
    
  2. CIDR을 추가하거나 Private IP allowlist에서 CIDR을 삭제하십시오.

  3. 다음 명령을 실행하여 새 목록과 함께 서비스 인스턴스를 업데이트하십시오.

    ibmcloud resource service-instance-update <instance-name> --service-endpoints private -p '{"private_ip_allowlist":["CIDR1","CIDR2"]}'
    

    여기서 CIDR1, CIDR2는 a.b.c.d/e 형식의 IP 주소입니다

CLI를 사용하여 사설 엔드포인트가 사용으로 설정된 경우 다음에 사설 IP 허용 목록을 업데이트할 때 --service-endpoints private 를 생략할 수 있습니다.

IP 허용 목록을 전환하면 새 목록에 없는 모든 허용 IP 주소가 비활성화됩니다. 해당 주소에서 클러스터에 액세스하는 애플리케이션은 클러스터에 대한 액세스 권한을 잃게 됩니다.

엔드포인트 정보 검색

서비스 인스턴스에 대한 엔드포인트 정보는 네트워크 유형에 특정합니다. 공용 및 사설 네트워킹이 모두 선택된 서비스 인스턴스에는 각각에 대한 엔드포인트가 있습니다.

다음과 같이 service-key-create CLI 명령의 --service-endpoint 옵션을 사용하여 필수 네트워크 유형에 대한 엔드포인트 정보를 검색할 수 있습니다.

ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private

IBM Event Streams 콘솔에 액세스

인스턴스에서 공용 네트워킹을 사용할 수 있는 경우 콘솔에 계속 액세스할 수 있습니다(공용 및 공용-비공용 모두 포함).

기술적 제한으로 인해 비공개 전용 네트워크를 선택하고 컨텍스트 기반 제한이 설정되어 있는 경우 콘솔에 액세스할 수 없습니다. 관리 작업을 수행하려면 CLI를 사용하는 것이 좋습니다. 예: ibmcloud es topic-create [--name] TOPIC_NAME [--partitions PARTITIONS] [--config KEY=VALUE[;KEY=VALUE]* ]*

컨텍스트 기반 제한사항 구성

연결이 허용되는 네트워크 위치를 제한하는 규칙을 정의할 수 있습니다. 예를 들어, 네트워크 유형, IP 범위, VPC 또는 기타 서비스를 기준으로 합니다. 자세한 정보는 컨텍스트 기반 제한사항의 개념 을 참조하십시오.

표준 및 엔터프라이즈 플랜 Event Streams 인스턴스 모두에 대해 컨텍스트 기반 제한사항을 정의할 수 있습니다. 컨텍스트 기반 제한사항 규칙이 정의되면 다음 규칙이 적용됩니다.

  • 관리 REST API, REST 생성자 API, 스키마 레지스트리 API및 Kafka 클라이언트 호출은 Event Streams 인스턴스에 대해 작성되는 컨텍스트 기반 제한사항 규칙의 범위 아래에 있습니다.

  • 서비스 인스턴스 자체에 대한 관리 기능 (예: IBM Cloud CLI service-instance-create, service-instance-delete 또는 service-instance-update 명령 또는 이와 동등한 기능) 은 Event Streams 인스턴스에 대해 작성되는 컨텍스트 기반 제한사항 규칙의 범위에 속하지 않습니다.

컨텍스트 기반 제한사항 설정 관리

컨텍스트 기반 제한사항 규칙 작성은 두 단계 프로세스입니다.

  1. 허용된 IP 주소, 허용된 VPC 또는 참조 서비스의 목록으로 네트워크 구역을 작성하십시오. 자세한 정보는 네트워크 구역 작성을 참조하십시오.

  2. Event Streams 리소스에 대해 하나 이상의 네트워크 구역을 지정하는 규칙을 작성하십시오. 규칙 작성에 대한 자세한 정보는 규칙 작성을 참조하십시오.

다음으로 다음 고려 사항에 유의하세요:

  • 액세스를 제한하려면 계정 소유자이거나 모든 계정 관리 서비스에서 관리자 역할의 액세스 정책을 가지고 있어야 합니다.
  • 구역 또는 규칙을 작성하거나 업데이트한 후 변경사항을 적용하는 데 몇 분 (최대 10분) 이 걸릴 수 있습니다.
  • 컨텍스트 기반 제한사항이 적용된 후에는 규칙이 작성된 후에 인증하는 클라이언트에 대해서만 적용됩니다. 기존 클라이언트는 제한 규칙이 적용되도록 재인증해야 합니다.

컨텍스트 기반 제한사항을 사용하여 서비스 (서비스 대 서비스) 간 연결 지원

Event Streams 서비스 인스턴스가 고객 관리 암호화 를 사용하도록 구성된 경우 선택된 IBM Key Management Services에 연결하는 기능도 서비스에 부여되어야 합니다.

계정 관리자는 다음과 같이 이를 설정할 수 있습니다.

  1. Event Streams 서비스에 대한 서비스 참조를 필수 네트워크 구역에 추가하십시오.
  2. 다른 클라우드 서비스에 적용 가능한 컨텍스트 기반 제한사항 규칙을 통해 이 구역에서의 액세스가 허용되는지 확인하십시오.

서비스 참조 작성에 대한 자세한 정보는 서비스 참조를 참조하십시오.

컨텍스트 기반 제한사항 규칙 및 사설 IP 허용 목록의 공존

컨텍스트 기반 제한사항 규칙은 이제 Event Streams 인스턴스에 대해 허용 목록을 구현하기 위한 권장 접근법으로 사설 IP 허용 목록의 사용을 대체합니다. 사설 IP 허용 목록의 사용은 계속 지원되지만 이제 더 이상 사용되지 않습니다.

컨텍스트 기반 제한사항 규칙과 IP 허용 목록이 모두 동일한 Event Streams 인스턴스에 대해 정의된 경우, 컨텍스트 기반 제한사항 규칙이 이전 사설 IP 허용 목록을 대체하므로 IP 허용 목록이 무시됩니다.

사설 IP 허용 목록에서 컨텍스트 기반 제한사항으로 마이그레이션

마이그레이션에 대한 책임은 고객에게 있습니다. 컨텍스트 기반 제한사항 네트워크 구역으로 IP 허용 목록 정의를 다시 작성하고 컨텍스트 기반 제한사항 규칙을 작성하여 서비스 인스턴스에 적용할 수 있습니다. 그런 다음 이전 사설 IP 허용 목록을 삭제할 수 있습니다.