必要なポートとIPアドレスを許可リストに追加する

仮想プライベートクラウド

この許可リストに関する情報は、VPCクラスターごとに異なります。 クラシック・クラスターの許可リストに関する情報については、「 クラシック・クラスターの許可リストに必要なポートとIPアドレスを開く」を 参照してください。

企業の許可リストでポートを開く

企業のネットワークポリシーにより、プロキシや許可リストを通じてローカルシステムからパブリックエンドポイントへのアクセスが制限されている場合は、ローカルシステムから ibmcloudibmcloud oc、および ibmcloud cr コマンドoc コマンド、および calicoctl コマンド へのアクセスを許可する必要があります。

許可リスト経由で、 ibmcloudibmcloud oc、および ibmcloud cr の各コマンドを実行する

企業のネットワークポリシーにより、プロキシや許可リストを通じてローカルシステムからパブリックエンドポイントへのアクセスが制限されている場合、 ibmcloudibmcloud oc 、および ibmcloud cr コマンドを実行するには、 IBM Cloud、 Red Hat OpenShift on IBM Cloud、および IBM Cloud Container Registry への TCP アクセスを許可する必要があります。

  1. 許可リストで、ポート443の cloud.ibm.com へのアクセスを許可してください。

  2. この API エンドポイントから IBM Cloud にログインして、接続を確認します。

    ibmcloud login -a https://cloud.ibm.com/
    
  3. 許可リストで、ポート443の containers.cloud.ibm.com へのアクセスを許可してください。

  4. 接続を確認します。 アクセスが正しく構成されている場合は、以下のようなメッセージが出力に表示されます。

    curl https://containers.cloud.ibm.com/global/v1/versions
    

    出力例

    {"kubernetes":[{"major":1,"minor":19,"patch":16,"default":false,"end_of_service":""},{"major":1,"minor":20,"patch":13,"default":false,"end_of_service":""},{"major":1,"minor":21,"patch":7,"default":true,"end_of_service":""},{"major":1,"minor":22,"patch":4,"default":false,"end_of_service":""}],"openshift":[{"major":3,"minor":11,"patch":542,"default":false,"end_of_service":"2022-06-06T12:00:00+0000"},{"major":4,"minor":6,"patch":47,"default":false,"end_of_service":""},{"major":4,"minor":7,"patch":37,"default":false,"end_of_service":""},{"major":4,"minor":8,"patch":21,"default":true,"end_of_service":""}]}
    
  5. 許可リストで、使用予定の IBM Cloud Container Registry リージョン へのポート443でのアクセスを許可してください。 グローバル・レジストリーには IBM 提供のパブリック・イメージが保管され、リージョン・レジストリーにはユーザー独自のプライベート・イメージまたはパブリック・イメージが保管されます。 許可リストがIPアドレスベースの場合、 この表 を確認することで、 IBM Cloud Container Registry のリージョナルサービスエンドポイントへのアクセスを許可した際に、どのIPアドレスが許可されているかを確認できます。

  6. 接続を確認します。 米国東部および米国南部のリージョンのレジストリーの例を以下に示します。 アクセスが正しく構成されている場合は、出力にその日のメッセージが戻されます。 メッセージがない場合は、204 が返されることに注意してください。

    curl -i https://us.icr.io/api/v1/messages
    

許可リストの背後からの oc コマンドの実行

企業のネットワークポリシーにより、プロキシや許可リストを通じてローカルシステムからパブリックエンドポイントへのアクセスが制限されている場合、 oc コマンドを実行するには、クラスタに対して TCP へのアクセスを許可する必要があります。

クラスターが作成されると、サービス・エンドポイント URL 内のポートが 30000 から 32767 の範囲内でランダムに割り当てられます。 作成される可能性があるクラスターに対してポート範囲 30000 から 32767 を開くことを選択するか、特定の既存クラスターに対してアクセスを許可するかを選択できます。

始めに、ibmcloud oc コマンドを実行するためのアクセスを許可します。

特定のクラスターを対象にアクセスを許可するには、以下のようにします。

  1. IBM Cloud CLI にログインします。 プロンプトが出されたら、IBM Cloud 資格情報を入力します。 統合されたアカウントがある場合は、--sso オプションを含めます。

    ibmcloud login [--sso]
    
  2. default 以外のリソース・グループ内にクラスターがある場合は、そのリソース・グループをターゲットとして設定します。 各クラスターが属するリソース・グループを表示するには、ibmcloud oc cluster ls を実行します。 : リソース・グループに対するビューアー以上の役割が必要です。

    ibmcloud target -g RESOURCE_GROUP_NAME
    
  3. クラスターの名前を取得します。

    ibmcloud oc cluster ls
    
  4. クラスターのサービス・エンドポイント URL を取得します。

    • プライベートのサービス・エンドポイント URL だけが設定されている場合は、その URL を取得します。 権限を持つクラスター・ユーザーは、プライベート・ネットワークでこのエンドポイントからマスターにアクセスできます。
    • パブリック・サービス・エンドポイント URLプライベート・サービス・エンドポイント URL の両方が設定されている場合は、両方の URL を取得します。 権限を持つクラスター・ユーザーは、パブリック・ネットワークのパブリック・エンドポイントからでもプライベート・ネットワークのプライベート・エンドポイントからでもマスターにアクセスできます。
    ibmcloud oc cluster get --cluster CLUSTER_NAME_OR_ID
    

    出力例

    ...
    Public Service Endpoint URL:    https://c3.<region>.containers.cloud.ibm.com:30426
    Private Service Endpoint URL:   https://c3-private.<region>.containers.cloud.ibm.com:31140
    ...
    
  5. 前の手順で取得したサービス・エンドポイント URL とポートへのアクセスを許可します。 許可リストがIPアドレスベースの場合、 この表 を確認することで、サービスエンドポイントのURLへのアクセスを許可した際に、どのIPアドレスが許可されているかを確認できます。

  6. 接続を確認します。

    • パブリック・クラウド・サービス・エンドポイントが有効な場合:
        curl --insecure <public_service_endpoint_URL>/version
        ```
        コマンド例
        ```sh {: pre}
        curl --insecure https://c3.<region>.containers.cloud.ibm.com:31142/version
        ```
        出力例
        ```json {: screen}
        {
            "major": "1",
            "minor": "7+",
            "gitVersion": "v1.7.4-2+eb9172c211dc41",
            "gitCommit": "eb9172c211dc4108341c0fd5340ee5200f0ec534",
            "gitTreeState": "clean",
            "buildDate": "2017-11-16T08:13:08Z",
            "goVersion": "go1.8.3",
            "compiler": "gc",
            "platform": "linux/amd64"
        }
        ```
    * プライベート・クラウド・サービス・エンドポイントのみが有効な場合にマスターへの接続を確認するには、IBM Cloud プライベート・ネットワークの中で作業しているか、VPN 接続経由でプライベート・ネットワークに接続している必要があります。 **注**: [プライベート・ロード・バランサーを介してマスター・エンドポイントを公開](/docs/openshift?topic=openshift-access_cluster#access_private_se)することで、ユーザーが VPN または IBM Cloud&reg; Direct Link の接続を介してマスターにアクセスできるようにする必要があります。
    ```sh {: pre}
        curl --insecure <private_service_endpoint_URL>/version
        ```
        コマンド例
        ```sh {: pre}
        curl --insecure https://c3-private.<region>.containers.cloud.ibm.com:31142/version
        ```
        出力例
        ```json {: screen}
        {
            "major": "1",
            "minor": "7+",
            "gitVersion": "v1.7.4-2+eb9172c211dc41",
            "gitCommit": "eb9172c211dc4108341c0fd5340ee5200f0ec534",
            "gitTreeState": "clean",
            "buildDate": "2017-11-16T08:13:08Z",
            "goVersion": "go1.8.3",
            "compiler": "gc",
            "platform": "linux/amd64"
        }
        ```
    
  7. オプション: 公開する必要のあるクラスターごとに、上記のステップを繰り返します。

許可リストの背後からの calicoctl コマンドの実行

企業のネットワークポリシーにより、プロキシや許可リストを通じてローカルシステムからパブリックエンドポイントへのアクセスが制限されている場合、 calicoctl コマンドを実行するには、 Calico コマンドに対して TCP へのアクセスを許可する必要があります。

始めに、ibmcloud コマンドoc コマンドを実行するためのアクセスを許可します。

  1. oc コマンドの許可に使用したマスター URL から IP アドレスを取得します。

  2. etcd のポートを取得します。

    oc get cm -n kube-system cluster-info -o yaml | grep etcd_host
    
  3. マスター URL の IP アドレスと etcd ポート経由の Calico ポリシーにおけるアクセスを許可します。

許可リスト内の Red Hat OpenShift イメージ・レジストリーへのアクセスの許可

内部イメージレジストリ用のセキュアな外部ルートを設定する場合またはVPCクラスター内の内部イメージレジストリをバックアップする IBM Cloud Object Storage バケットにアクセスする場合は、企業の許可リストで、内部レジストリおよび IBM Cloud Object Storage のエンドポイントへのアクセスを許可する必要があります。

  1. 内部 Red Hat OpenShift イメージ・レジストリーの外部経路を作成する場合は、*.containers.appdomain.cloud ドメインへのアクセスを許可して、企業ネットワークから image-registry-openshift-image-registry.<cluster_name>-<ID_string>.<region>.containers.appdomain.cloud 経路にアクセスできるようにします。

  2. VPC クラスター: 内部 IBM Cloud Object Storage イメージ・レジストリーをバックアップする Red Hat OpenShift バケットにアクセスする必要がある場合、または他の理由で企業ネットワークから IBM Cloud Object Storage にアクセスする必要がある場合は、*.cloud-object-storage.appdomain.cloud ドメインへのアクセスを許可します。

他のサービスの許可リストやオンプレミスの許可リストで、クラスターからのトラフィックを許可する

ワーカーノードが、許可リストによって保護されているサービスと通信できるようにします。

たとえば、 IBM Cloud の内外で実行されるサービスや、オンプレミスで実行され、許可リストによって保護されているサービスなどがあるかもしれません。 クラスターからそれらのサービスへの着信ネットワーク・トラフィックを許可する必要があります。 サービスの許可リストに、クラスターのVPCサブネットにあるパブリックゲートウェイの外部IPアドレスを追加する必要があります。

許可リストで保護されているサービスからクラスターへのアウトバウンド通信を許可したい場合は、サービスの許可リストにワーカーノードのプライベートIPアドレス、またはクラスターのVPCサブネットのCIDRを追加する必要があります。 VPC クラスターのワーカー・ノードにはプライベート IP アドレスしかないので、VPC クラスターのワーカー・ノードには、IBM Cloud プライベート・ネットワークに接続したシステムからのみ接続できることに注意してください。

開始前に

  1. Red Hat OpenShift クラスターにアクセスします
  2. infrastructure-service CLI プラグインをインストールします。 VPC インフラストラクチャー・コマンドを実行するための接頭部は、ibmcloud is です。
    ibmcloud plugin install infrastructure-service
    

別のサービスでクラスターからの受信を許可する

クラスターから別のサービスへのインバウンド通信を許可するには、そのサービスの許可リスト、またはオンプレミスの許可リストを変更してください。

  1. クラスターが作成されたワーカー・ゾーンVPC を取得します。

    ibmcloud oc cluster get -c <cluster>
    

    出力例

    ...
    Worker Zones:                   us-south-1, us-south-2, us-south-3
    Ingress Subdomain:              vpc-prod.us-south.containers.appdomain.cloud
    Ingress Secret:                 vpc-prod
    Creator:                        -
    Public Service Endpoint URL:    https://c2.us-south.containers.cloud.ibm.com:20267
    Private Service Endpoint URL:   https://c2.private.us-south.containers.cloud.ibm.com:20267
    Pull Secrets:                   enabled in the default namespace
    VPCs:                           ff537d43-a5a4-4b65-9627-17eddfa5237b
    ...
    
  2. 確認したワーカー・ゾーンと VPC について、各ワーカー・ゾーンの VPC サブネットのパブリック・ゲートウェイを有効にしていることを確認します。

  3. 各サブネットのパブリック・ゲートウェイをリストします。 出力で、クラスターが存在するゾーンと VPC について、各サブネットのゲートウェイの浮動 IP アドレスをメモします。

    ibmcloud is public-gateways
    

    出力例

    ID                                     Name                                       Status      Floating IP      VPC              Zone
    5d308ea5-9f32-43b3-aaae-194d5723a3e5   pgw-b9d45630-c053-11e9-b2f8-79328ce05e7e   available   169.XX.XXX.XX    test-vpc         us-south-1
    f8b95e43-a408-4dc8-a489-ed649fc4cfec   pgw-18a3ebb0-b539-11e9-9838-f3f4efa02374   available   169.XX.XXX.XX    prod             us-south-1
    2ba9a280-fffa-4b0c-bdca-7970f09f9b8a   pgw-73b62bc0-b53a-11e9-9838-f3f4efa02374   available   169.XX.XXX.XX    prod             us-south-2
    057ddef6-631f-4b22-89eb-1e99982a54fa   pgw-64c5cae0-0be2-11ea-8f26-e1565e79a36c   available   52.XX.XXX.XXX    prod             us-south-3
    
  4. パブリックゲートウェイのIPアドレスを、サービスの許可リストまたはオンプレミスの許可リストに追加し、インバウンドトラフィックを許可してください。

  5. トラフィックを許可するクラスターごとに、これらのステップを繰り返します。

別のサービスからクラスターへの送信を許可する

別のサービスからクラスターへのアウトバウンド通信を許可するには、そのサービスの許可リスト、またはオンプレミスの許可リストを変更してください。

  1. ワーカー・ノードのサブネットやワーカー・ノードの IP アドレスを取得します。
    • ワーカーノードのサブネット CIDRクラスターのオートスケーラーを 有効にする場合など、クラスター内のワーカーノードの数を頻繁に変更する見込みがある場合は、新しいワーカーノードが追加されるたびに許可リストを更新するのは望ましくないかもしれません。 代わりに、クラスターで使用する VPC サブネットを追加することができます。 ただし、VPC サブネットは、他のクラスターのワーカー・ノードと共有されている可能性があることを忘れないでください。
      1. クラスターが作成されたワーカー・ゾーンVPC を取得します。
        ibmcloud oc cluster get -c <cluster>
        
        出力例
        ...
        Worker Zones:                   us-south-1, us-south-2, us-south-3
        Ingress Subdomain:              vpc-prod.us-south.containers.appdomain.cloud
        Ingress Secret:                 vpc-prod
        Creator:                        -
        Public Service Endpoint URL:    https://c2.us-south.containers.cloud.ibm.com:20267
        Private Service Endpoint URL:   https://c2.private.us-south.containers.cloud.ibm.com:20267
        Pull Secrets:                   enabled in the default namespace
        VPCs:                           ff537d43-a5a4-4b65-9627-17eddfa5237b
        ...
        
      2. クラスターが存在するゾーンと VPC のサブネットについて、サブネットの CIDR をメモします。
        ibmcloud is subnets
        
        出力例
        ID                                     Name             Status      Subnet CIDR        Addresses   ACL                                                          Public Gateway                             VPC              Zone
        5f5787a4-f560-471b-b6ce-20067ac93439   vpc-prod-dal1    available   10.240.0.0/24      183/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-1
        e3c19786-1c54-4248-86ca-e60aab74ed62   vpc-prod-dal2    available   10.240.64.0/24     183/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-2
        2930a068-51cc-4eca-807b-3f296d0891b4   vpc-prod-dal3    available   10.240.128.0/24    249/256     allow-all-network-acl-ff537d43-a5a4-4b65-9627-17eddfa5237b   -                                          prod             us-south-3
        
    • 個々のワーカー・ノード IP アドレス: 1 つのアプリのみを実行する少数のワーカー・ノードがあり、スケーリングする必要がない場合、または 1 つのワーカー・ノードのみを追加する場合は、クラスター内のすべてのワーカー・ノードをリストし、1 次 IP アドレスを書き留めておきます。 それらのワーカー・ノードだけを追加します。 クラスタからワーカーノードを削除したり、ワーカーノードを追加したりする場合は、それに応じて許可リストを更新する必要があります。
        ibmcloud oc worker ls --cluster <cluster_name_or_ID>
        ```
    
  2. サブネットのCIDRまたは個々のワーカーノードのIPアドレスを、サービスの許可リスト、またはオンプレミスのアウトバウンドトラフィック用許可リストに追加してください。
  3. トラフィックを許可するクラスターごとに、これらのステップを繰り返します。

VPCセキュリティグループまたはVPC ACLでポートを開く

クラスタ・ネットワークを保護するために VPCセキュリティ・グループ または VPCアクセス制御リスト(ACL)を 設定する場合は、必要なトラフィックが他の IBM Cloud サービスと通信できるようにルールを作成してください。

公開許可リストで必要なポートを開く

オプション:Ingressサブドメイン監視のための受信ネットワークトラフィックを許可する

Ingressドメインの健全性監視を 使用してサービスエンドポイントの健全性を監視する場合は、監視サービスからのインバウンドアクセスを許可する必要があります。

デフォルトでは、モニタリングヘルスリクエストは HTTPS、ポート443に送信されます。したがって、ポート443をターゲットとする以下のIP範囲からのトラフィックを許可する必要があります。 ヘルスモニターが代わりに HTTP を使用するように設定されている場合、allowlistトラフィックはポート80をターゲットにする必要があります。 さらに、カスタム・ポート( TCP )を使用する場合は、そのポートへの着信トラフィックを許可するようにしてください。

詳細については、 IBM NS1 Connect ドキュメントを 参照のこと。

IBM NS1 Connect IPレンジの監視
  • 163.114.225.0/24
  • 163.114.230.0/24
  • 163.114.231.0/24

Kubernetes Service ネットワークゾーンの IAM 許可リストの更新

デフォルトでは、すべてのIPアドレスを使用して IBM Cloud コンソールにログインし、資格情報の作成、更新、削除、表示など、クラスタを管理するためのアクションを実行できます。 IBM Cloud の ID およびアクセス管理 (IAM) のコンソールで、アクセスを許可する IP アドレスを指定して許可リストを作成することができます。すると、それ以外の IP アドレスはすべて制限されます。

IAM allowlistを設定する場合は、 Kubernetes Service を含むネットワークゾーンを含める必要があります。 そうしないと、既存のクラスタが正しく機能しなくなる。 これは、 Kubernetes Service のコントロール・プレーンが、クラスタに必要な IBM サービスをデプロイし管理するために、IAM にコンタクトできる必要があるためです。 IBM allowlistを設定する前に、以下の指示に注意深く従ってください。

許可リストでは、 Red Hat OpenShift on IBM Cloud が Ingress ALB や Red Hat OpenShift Web コンソールなどのコンポーネントを作成またはアクセスできるように、クラスタが配置されている地域の Red Hat OpenShift on IBM Cloud コントロール・プレーンにもネットワーク・ゾーンを設定する必要があります。この場合、すべてのコントロール・プレーン IP アドレスが必要になります。

始めに、以下の手順では、クラスターのリージョンおよびリソース・グループ・インフラストラクチャーの許可に使用される資格情報を持つユーザーの IAM 許可リストを変更する必要があります。 その資格情報の所有者であれば、自分で IAM 許可リストの設定を変更できます。 認証情報の所有者ではないものの、 ユーザー管理サービスに対して 「 IBM Cloud 」IAMプラットフォームのアクセスロールとして「 編集者 」または「 管理者」 が割り当てられている場合は、認証情報の所有者のネットワーク情報を更新することができます。

  1. IBM Cloud コンソールにログインしてください。

  2. Kubernetes Service IP を含むネットワークゾーンを、すべてのリージョン、またはクラスタがあるリージョンだけに作成する。

    1. クラスタが属するアカウント、メニューバーから [管理 ]>[ コンテキストベースの制限]をクリックします。

    2. Network zones > Createをクリックします。

    3. 名前] には、ネットワークゾーンのわかりやすい名前を入力します( us-south-kubernetes-service-network-zone など)。

    4. Allowed IP addresses および Allowed VPCs セクションには値を入力しないでください。

    5. サービスの参照セクションで Kubernetes Service を選択し、 +をクリックします。

    6. Locations(場所)については、フィールドを空のままにして、すべての場所が使用されるようにすることも、1つの地域を指定することもできる。

    7. 次へ 」をクリックし、選択内容を確認してください。

    8. 「作成」 をクリックします。

    9. ゾーンを追加する場合はこれを繰り返す。

  3. ネットワークゾーン名をIAM allowlistに追加する。

    1. メニュー・バーから、「管理」 > **「アクセス (IAM)」をクリックして、「設定」**を選択します。

    2. Restrict IP address access(IPアドレスのアクセスを制限する )]で[ Enable(有効にする)] を選択し、前のステップで設定したネットワークゾーン名を入力します。

    3. **「適用」**をクリックします。