限制網路存取權

依預設,Event Streams 實例會配置為使用 IBM Cloud® 公用網路,因此可以透過公用網際網路進行存取。

必要的話,您可以使用網路類型或環境定義型限制來限制網路連線功能,如下所示:

網路類型

IBM Cloud 同時提供專用和公用網路。 如果您的工作負載完全在IBM Cloud內運行,並且不需要對該服務進行公共訪問,則可以將Event Streams實例配置為只能存取透過IBM Cloud專用網路。 這樣可以增加隔離度,而且不會產生與公用資料流量相關聯的輸出頻寬費用。 您也可以將實例配置成可透過 IBM Cloud 公用和專用網路進行存取,而您的工作負載可以使用其位置的最適當介面。 您可以在 IBM Cloud中找到專用網路的進一步相關資訊。

環境定義型限制 (CBR)

您可以定義存取規則,以限制從中接受連線的網路位置。 例如,網路類型、IP 範圍、VPC 或其他服務。 如需相關資訊,請參閱 何謂環境定義型限制

環境定義型限制的審核事件發佈在環境定義型限制 IBM Cloud Activity Tracker 事件 環境定義型限制規則事件下。 與 CBR 強制執行相關的 Activity Tracker 事件在專用端點上無法使用。

配置網路類型

您可以將企業服務實例配置為可在 IBM Cloud 專用、公用或專用及公用網路上使用。 下列資訊說明如何選取及更新所需的網路類型。 依預設會選取公用網路。

必要條件

請確定您已完成下列作業:

  • 使用其中一個受支援多區域位置中的企業方案來建立服務實例。 如需相關資訊,請參閱選擇方案

  • 啟用 IBM Cloud 帳戶的 虛擬路徑轉遞(VRF)

  • 透過執行以下命令啟用服務端點連線:

    ibmcloud account update --service-endpoint-enable true
    

    若要檢查先決條件是否已完成,請執行下列命令,然後檢查以下兩個屬性是否為 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
    

更新網路配置

您也可以在設定後切換企業叢集使用的端點。 為此,請使用以下 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-createservice-instance-deleteservice-instance-update 指令或對等項目) 不在針對 Event Streams 實例建立的環境定義型限制規則的範圍內。

管理環境定義型限制設定

建立環境定義型限制規則是兩個步驟的程序:

  1. 使用容許的 IP 位址清單、容許的 VPC 或參照服務來建立網路區域。 如需相關資訊,請參閱 建立網路區域

  2. 建立針對 Event Streams 資源指定一個以上網路區域的規則。 如需規則建立的相關資訊,請參閱 建立規則

接下來,請注意以下注意事項:

  • 您必須是帳戶擁有者或具有對所有帳戶管理服務具有管理者角色的存取原則,才能限制存取權。
  • 建立或更新區域或規則之後,可能需要幾分鐘 (最多 10 分鐘),變更才會生效。
  • 套用環境定義型限制之後,只會對在建立規則之後進行鑑別的用戶端施行這些限制。 現有用戶端應該重新鑑別要施行的限制規則。

支援服務 (服務至服務) 之間的連線,但有環境定義型限制

如果 Event Streams 服務實例配置為使用 客戶管理的加密,則還必須授與服務連接至所選 IBM 金鑰管理服務的能力。

帳戶的管理者可以設定如下:

  1. 將 Event Streams 服務的服務參照新增至所需的網路區域。
  2. 請確保透過適用於其他雲端服務的環境定義型限制規則,允許從此區域進行存取。

如需建立服務參照的相關資訊,請參閱 服務參照

環境定義型限制規則與專用 IP 允許清單的共存性

環境定義型限制規則現在取代使用專用 IP 允許清單,作為針對 Event Streams 實例實作允許清單的建議方法。 繼續支援使用專用 IP 允許清單,但現在已淘汰。

如果針對相同的 Event Streams 實例同時定義環境定義型限制和 IP 允許清單,則會忽略 IP 允許清單,因為環境定義型限制規則會置換任何先前的專用 IP 允許清單。

從專用 IP 允許清單移轉至環境定義型限制

客戶負責移轉。 您可以重新建立 IP 允許清單定義作為環境定義型限制網路區域,並透過建立環境定義型限制規則將它們套用至服務實例。 然後,您可以刪除先前的專用 IP 允許清單。