リンク・エンドポイントの作成と管理

リンク・エンドポイントの作成と管理

リンク・エンドポイントの作成と管理

Satellite エンドポイントを作成して、IBM Cloud Satellite ロケーションと、そのロケーションの外部で実行されるサービス、サーバー、またはアプリケーションとの間のネットワークを管理します。

ロケーション外のリソースに接続するための cloud エンドポイントの作成

Satellite ロケーション内のソースが、ロケーション外で実行されるサービス、サーバー、またはアプリに接続できるように、タイプが cloud のエンドポイントを作成します。

開始する前に、以下があることを確認してください。

ソース・クライアント
自分のロケーションに接続した Satellite クラスターまたはホスト。 Satellite クラスターの作成方法について詳しくは、Satellite クラスターの作成を参照してください。 ホストを使用するには、ホストをご使用のロケーションに接続します。ただし、そのホストを Satellite コントロール・プレーンや Satellite クラスターに割り当てないでください。 ホストを割り当てると、ホストへの SSH アクセスを削除するブートストラッピング・プロセスが開始されます。
宛先リソース
ロケーションの外部で実行されるが、IBM Cloud内からアクセス可能なサービス、サーバー、またはアプリ。 例えば、プライベート・サービス・エンドポイントは IBM Cloud ネットワーク内からルーティング可能であるため、IBM Cloud サービスにプライベート・サービス・エンドポイントを使用できます。 IBM Cloud の外部で実行されるサービスに接続する場合は、IBM Cloud ネットワーク内からこのサービスにアクセスできる必要があります。
許可
IBM Cloud Satellite の Link リソースに対する管理者 IBM Cloud IAM プラットフォーム・ロール。 詳しくは、ユーザー許可の確認を参照してください。

コンソールを使用した cloud エンドポイントの作成

Satellite ロケーション内のソースが、ロケーション外で実行されるサービス、サーバー、またはアプリに接続できるように、コンソールを使用して cloud エンドポイントを作成します。

  1. Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。
  2. **「概要」タブで、ロケーションの状況が「正常」**であることを確認します。
  3. **「Link エンドポイント」タブで「エンドポイントの作成」**をクリックします。
  4. ロケーションの外部で実行されるサービス、サーバー、またはアプリのエンドポイントを作成するには、**「Cloud」**を選択します。
  5. エンドポイント名、宛先リソースの完全修飾ドメイン・ネーム (FQDN) または IP アドレス、および宛先リソースが着信要求を listen するポートを入力します。 IP アドレスまたは FQDN は、パブリック IP アドレス、または IBM Cloud 内でアクセス可能なプライベート IP アドレス (プライベート・サービス・エンドポイントなど) に解決される必要があります。
  6. ソースが宛先 FQDN または IP アドレスへの接続に使用する必要のあるプロトコルを選択します。 このプロトコルは、宛先リソースのポートと一致する必要があります。 詳しくは、エンドポイントのプロトコルを参照してください。
    • TLS プロトコルまたは HTTPS プロトコルを選択し、宛先の証明書のサーバー・サイド認証を必要とする場合は、**「宛先証明書の検証」**チェック・ボックスを選択します。
    • TLS プロトコルまたは HTTPS プロトコルを選択し、宛先リソースがまだ開発中である場合は、**「証明書のアップロード」**をクリックして自己署名証明書ファイルを追加できます。 この ssl.crt ファイルには、リソースのホスト名用の Base64 エンコードの公開証明書が含まれている必要があります。ssl.key 証明書秘密鍵は含めないでください。 OpenSSL, を使用してテスト用の自己署名証明書を作成するには、この 自己署名証明書( SSL )のチュートリアルを参照してください。
    • TLS または HTTPS プロトコルを選択し、リソース接続の TLS ハンドシェークに別のホスト名を提供できるようにする場合は、サーバー名標識 (SNI) を入力します。
  7. 非アクティブ・タイムアウトを設定するなど、オプションの接続設定を構成します。 1~600秒の範囲で値を選択してください。 デフォルト値は 60 秒です。
  8. 「作成」 をクリックします。 Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。
  9. エンドポイントのテーブル行で、Satellite Link コネクターのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。
  10. アドレスを使用して、ロケーション内のソースから宛先に接続します。

CLI での cloud エンドポイントの作成

Satellite ロケーション内のソースが、ロケーション外で実行されるサービス、サーバー、またはアプリに接続できるように、CLI を使用してエンドポイントを作成します。

  1. Satellite ロケーションの ID を取得し、そのロケーションの状況が**「正常」**であることを確認します。

    ibmcloud sat location ls
    

    出力例

    Name               ID                     Status   Ready   Created       Hosts (used/total)   Managed From
    port-antwerp       brlono42051up3k4htu0   normal   yes     2 weeks ago   6 / 7                London
    
  2. cloud エンドポイントを作成します。

    ibmcloud sat endpoint create --location <location_ID> --name <endpoint_name> --dest-type cloud --dest-hostname <FQDN_or_IP> --dest-port <port> [--dest-protocol <destination_protocol>] --source-protocol <source_protocol>  [--sni <sni>]
    
    APIリクエストを理解する
    コンポーネント 説明
    --location <location_ID> 既に取得した Satellite ロケーションの ID を入力します。
    --name <endpoint_name> Satellite エンドポイントの名前を入力します。
    --dest-type cloud cloud と入力して、宛先リソースがロケーションの外部で実行されることを示します。
    --dest-hostname <FQDN_or_IP> 接続先の完全修飾ドメイン名(FQDN)または外部からアクセス可能なIPアドレスを入力してください。 クラウドエンドポイントの場合、この値はパブリックIPアドレス、または IBM Cloud 内でアクセス可能なプライベートIPアドレス(プライベートクラウドサービスエンドポイントなど)に解決される必要があります。
    --dest-port <port> 宛先リソースが着信要求を listen するポートを入力します。 ポートが宛先のプロトコルと一致していることを確認してください。
    --dest-protocol <destination-protocol> オプション: 宛先リソースのプロトコルを入力します。 このオプションを指定しない場合、宛先プロトコルはソース・プロトコルから継承されます。 サポートされるプロトコルは、tcp や tls などです。 詳しくは、エンドポイントのプロトコルを参照してください。
    --source-protocol <source-protocol> ソースが宛先リソースへの接続に使用する必要のあるプロトコルを入力します。 サポートされるプロトコルには、tcp、tls、http、https、http-tunnel などがあります。 詳しくは、エンドポイントのプロトコルを参照してください。
    --sni <sni> オプション。 tls または https ソース・プロトコルを指定し、別個のホスト名を TLS ハンドシェークに追加する場合は、サーバー名標識を含めます。
  3. Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。

  4. エンドポイントが作成されたことを確認します。 出力で、Satellite Link コネクターのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。

    ibmcloud sat endpoint ls --location <location_ID>
    

    出力例

    ID                           Name                                         Destination Type   Address                                                                                                    Status
    c0mnbnkw0jl8si22djkg_cEomQ   openshift-api-c0mpnn4w0bv28oq2dks0           location           TCP  c-02.us-east.link.satellite.cloud.ibm.com:32823                                                       enabled
    c0mnbnkw0jl8si22djkg_6UTZd   satellite-healthcheck-c0mnbnkw0jl8si22djkg   location           HTTP c-02.us-east.link.satellite.cloud.ibm.com:32822                                                       enabled
    c0mnbnkw0jl8si22djkg_GzstO   test-endpoint                                cloud              TLS  nae4dce0eb35957baff66-edfc0a8ba65085c5081eced6816c5b9c-c000.us-east.satellite.appdomain.cloud:30819   enabled
    
  5. アドレスを使用して、ロケーション内のソースから宛先に接続します。

cloud エンドポイントを介した接続のテスト

ご使用のロケーションのソースから宛先リソースに接続するには、エンドポイントに割り当てられている Satellite Link コネクターのホスト名とポートを使用します。 ソースは、以前に作成した Satellite クラスターでも、ご使用のロケーションに割り当てたホストでもかまいません。

割り当て解除されたホストからの接続をテストする例

  1. ホストにログインします。 プロンプトが出されたら、ホストにアクセスするためのパスワードを入力します。

    ssh root@<ip_address>
    
  2. Satellite Link コネクターのホスト名とポートを使用して、宛先リソースへの接続をテストします。

    curl http://<linkconnector_hostname>:<port>
    

Satellite クラスターからの接続をテストする例

  1. クラスターをターゲットにします。 ロケーション・ホスト・ネットワークに接続していない場合は、--endpoint link オプションを指定します。

    ibmcloud oc cluster config --cluster <cluster_name> --admin [--endpoint link]
    
  2. クラスターにサンプル・アプリをデプロイします。 ロケーションからエンドポイントへの接続をテストするには、Satellite クラスターが接続されているネットワークに接続されている必要があります。 このネットワークに接続するには、アプリをデプロイし、アプリにログインしてから、エンドポイントに対して curl 要求を実行します。 以下の例では、クラスターに nginx をデプロイします。

    1. デプロイメントの構成ファイルを作成します。
        apiVersion: apps/v1
        kind: Deployment
        metadata:
          name: nginx-deployment
        spec:
          replicas: 1
          selector:
            matchLabels:
              app: nginx
          template:
            metadata:
              labels:
                app: nginx
            spec:
              containers:
              - name: nginx
                image: nginxinc/nginx-unprivileged
                ports:
                - containerPort: 80
        ```
    2. クラスター内にアプリをデプロイします。
    
    ```sh {: pre}
        oc apply -f deployment.yaml
        ```
    3. クラスターに `nginx` アプリが正常にデプロイされたことを確認します。
    
    ```sh {: pre}
        oc get pods
        ```
        出力例
    
        ```sh {: screen}
        NAME                                READY   STATUS    RESTARTS   AGE
        nginx-deployment-85ff79dd56-6lrpg   1/1     Running   0          11s
        ```
    
  3. ポッドにログインします。

    oc exec <pod_name> -it bash
    
  4. Satellite Link コネクターのホスト名とポートを使用して、宛先リソースへの接続をテストします。

    curl http://<linkconnector_hostname>:<port>
    

ロケーション内のリソースに接続するための location エンドポイントの作成

IBM Cloud プライベート・ネットワークに接続されたソースが Satellite ロケーション内のサービス、サーバー、またはアプリに接続できるように、タイプが location のエンドポイントを作成します。

開始する前に、以下があることを確認してください。

ソース・クライアント

IBM Cloud プライベート・ネットワークにアクセスすることができるサービス、サーバー、またはアプリ。 宛先リソース

Satellite クラスター、または自分のロケーションに接続したホストで実行されるサービス、サーバー、またはアプリ。 Satellite クラスターの作成方法について詳しくは、Satellite クラスターの作成を参照してください。 ホストを使用するには、ホストをご使用のロケーションに接続します。ただし、そのホストを Satellite コントロール・プレーンや Satellite クラスターに割り当てないでください。 ホストを割り当てると、ホストへの SSH アクセスを削除するブートストラッピング・プロセスが開始されます。

許可

IBM Cloud Satellite の Link リソースに対する管理者 IBM Cloud IAM プラットフォーム・ロール。 詳しくは、ユーザー許可の確認を参照してください。

コンソールを使用した location エンドポイントの作成

IBM Cloud プライベート・ネットワークに接続されたソースが Satellite ロケーション内のサービス、サーバー、またはアプリに接続できるように、コンソールを使用してエンドポイントを作成します。

  1. Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。

  2. **「概要」タブで、ロケーションの状況が「正常」**であることを確認します。

  3. **「Link エンドポイント」タブで「エンドポイントの作成」**をクリックします。

  4. Satellite ロケーション内のサービス、サーバー、またはアプリのエンドポイントを作成するには、**「Satellite ロケーション」**を選択します。

  5. エンドポイント名、宛先リソースの完全修飾ドメイン・ネーム (FQDN) または IP アドレス、および宛先リソースが着信要求を listen するポートを入力します。 FQDN または IP アドレスは、 Satellite ロケーションのコントロール・プレーン・ホスト、または Satellite コネクターのためにエージェントが実行されるコントロール・プレーン・ホストから解決され、コントロール・プレーン・ホストから到達可能でなければなりません。

  6. ソースが宛先 FQDN または IP アドレスへの接続に使用する必要のあるプロトコルを選択します。 このプロトコルは、宛先リソースのポートと一致する必要があります。 詳しくは、エンドポイントのプロトコルを参照してください。

    • TLS プロトコルまたは HTTPS プロトコルを選択し、宛先の証明書のサーバー・サイド認証を必要とする場合は、**「宛先証明書の検証」**チェック・ボックスを選択します。
    • TLS プロトコルまたは HTTPS プロトコルを選択し、宛先リソースがまだ開発中である場合は、**「証明書のアップロード」**をクリックして自己署名証明書ファイルを追加できます。 この ssl.crt ファイルには、リソースのホスト名用の Base64 エンコードの公開証明書が含まれている必要があります。ssl.key 証明書秘密鍵は含めないでください。 OpenSSL, を使用してテスト用の自己署名証明書を作成するには、この 自己署名証明書( SSL )のチュートリアルを参照してください。
    • TLS または HTTPS プロトコルを選択し、リソース接続の TLS ハンドシェークに別のホスト名を提供できるようにする場合は、サーバー名標識 (SNI) を入力します。
  7. 非アクティブ・タイムアウトを設定するなど、オプションの接続設定を構成します。 1~600秒の範囲で値を選択してください。 デフォルト値は 60 秒です。

  8. 「作成」 をクリックします。 Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。

  9. エンドポイントのテーブル行で、Satellite Link トンネル・サーバーのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。

  10. IBM Cloud プライベート・ネットワークのソース・クライアントから、アドレスを使用して Satellite エンドポイントへの接続をテストします。 例えば、ソース・クライアントに応じて、curl 要求をエンドポイントに送信できます。

    curl http://<linkserver_hostname>:<port>
    

CLI を使用した location エンドポイントの作成

IBM Cloud プライベート・ネットワークに接続されたソースが Satellite ロケーション内のサービス、サーバー、またはアプリに接続できるように、CLI を使用してエンドポイントを作成します。

  1. Satellite ロケーションの ID を取得し、そのロケーションの状況が**「正常」**であることを確認します。

    ibmcloud sat location ls
    

    出力例

    Name               ID                     Status   Ready   Created       Hosts (used/total)   Managed From
    port-antwerp       brlono42051up3k4htu0   normal   yes     2 weeks ago   6 / 7                London
    
  2. location エンドポイントを作成します。

    ibmcloud sat endpoint create --location <location_ID> --name <endpoint_name> --dest-type location --dest-hostname <FQDN_or_IP> --dest-port <port> [--dest-protocol <destination_protocol>] --source-protocol <source_protocol>
    
    APIリクエストを理解する
    コンポーネント 説明
    --location <location_ID> 既に取得した Satellite ロケーションの ID を入力します。
    --name <endpoint_name> Satellite エンドポイントの名前を入力します。
    --dest-type cloud cloud と入力して、宛先リソースがロケーションの外部で実行されることを示します。
    --dest-hostname <FQDN_or_IP> 接続先の完全修飾ドメイン名(FQDN)または外部からアクセス可能なIPアドレスを入力してください。 ロケーションエンドポイントの場合、この値は、 Satellite のロケーションについてはコントロールプレーンホストから解決され、かつそこから到達可能である必要があります。また、 Satellite コネクタの場合は、エージェントが実行されている場所から解決され、かつそこから到達可能である必要があります。
    --dest-port <port> 宛先リソースが着信要求を listen するポートを入力します。 ポートが宛先のプロトコルと一致していることを確認してください。
    --dest-protocol <destination-protocol> オプション: 宛先リソースのプロトコルを入力します。 このオプションを指定しない場合、宛先プロトコルはソース・プロトコルから継承されます。 サポートされるプロトコルは、tcp や tls などです。 詳しくは、エンドポイントのプロトコルを参照してください。
    --source-protocol <source-protocol> ソースが宛先リソースへの接続に使用する必要のあるプロトコルを入力します。 サポートされるプロトコルには、tcp、tls、http、https、http-tunnel などがあります。 詳しくは、エンドポイントのプロトコルを参照してください。
    --sni <sni> オプション。 tls または https ソース・プロトコルを指定し、別個のホスト名を TLS ハンドシェークに追加する場合は、サーバー名標識を含めます。
  3. Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。

  4. エンドポイントが作成されたことを確認します。 出力で、Satellite Link トンネル・サーバーのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。

    ibmcloud sat endpoint ls --location <location_ID>
    

    出力例

    ID                           Name                                         Destination Type   Address
    c0mnbnkw0jl8si22djkg_cEomQ   openshift-api-c0mpnn4w0bv28oq2dks0           location           TCP  c-02.us-east.link.satellite.cloud.ibm.com:32823
    c0mnbnkw0jl8si22djkg_6UTZd   satellite-healthcheck-c0mnbnkw0jl8si22djkg   location           HTTP c-02.us-east.link.satellite.cloud.ibm.com:32822
    
  5. IBM Cloud プライベート・ネットワークのソース・クライアントから、アドレスを使用して Satellite エンドポイントへの接続をテストします。 例えば、ソース・クライアントに応じて、curl 要求をエンドポイントに送信できます。

    curl http://<linkserver_hostname>:<port>
    

エンドポイントへのアクセスを制限するためのアクセス制御リストの設定

エンドポイントのアクセス制御リストを作成することで、どのクライアントが宛先リソースにアクセスできるかを制御します。

ソースが構成されていない場合、クライアントはエンドポイントを使用して宛先リソースに接続できます。 例えば、location エンドポイントの場合、IBM Cloud プライベート・ネットワークに接続されているすべてのクライアントは、このエンドポイントを使用して、Satellite ロケーションで実行される宛先リソースに接続できます。 宛先リソースへのアクセスを制限するには、特定のクライアントの IP アドレスまたはサブネット CIDR のみをエンドポイントのソース・リストに追加します。

現在、ソース・リストは、タイプが location のエンドポイントに対してのみ作成できます。 タイプが cloud のエンドポイントのソース・リストを作成することはできません。

コンソールを使ったアクセス制御リストの作成

コンソールからエンドポイントのアクセス制御リストを作成するには、以下の手順を実行します。

  1. Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。
  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.
    3. このルールでアクセスを制御するエンドポイント(または複数のエンドポイント)を選択します。 エンドポイントを経由して宛先へのネットワークトラフィックは、ルールで指定した範囲内のIPアドレスを使用するクライアントからのみ許可されます。 エンドポイントを介して宛先リソースに送信される他のクライアントからのネットワーク・トラフィックはブロックされます。
  4. 作成 をクリックします。
  5. 既存のACLルールを変更するには、ルールの右端にあるオーバーフローメニューから Edit を選択し、フィールド値を更新し、完了したら Save を押す。

CLI を使用したアクセス制御リストの作成

CLIからエンドポイント用のアクセス制御リストを作成するには、以下の手順を実行します。

  1. 以下のコマンドを実行して、1つまたは複数のサブネットと、オプションで1つまたは複数のエンドポイントにバインドされたACLルールを作成する。

    ibmcloud sat acl create --location LOCATION --name NAME --subnet SUBNET [--subnet SUBNET ...] [--endpoint ENDPOINT ...]
    
    --location LOCATION
    Satellite の拠点名またはIDを入力してください。
    --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 --location LOCATION
    
  3. また、既存のACLに対してエンドポイントやサブネットを追加または削除することもできる。

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

エンドポイントを使用可能/使用不可にする

エンドポイントをセットアップした後、エンドポイントを使用可能または使用不可にすることにより、エンドポイントを介したネットワーク・トラフィックのフローをいつでも制御できます。

  1. 「 ロケーション」ダッシュボードから、 Satellite エンドポイントを作成したロケーションを選択します。
  2. **「Link エンドポイント」**タブを選択し、使用可能または使用不可にするエンドポイントを見つけます。
  3. トグルを使用してエンドポイントを使用可能または使用不可にします。 エンドポイントを使用不可にすると、ロケーションと宛先サーバー、サービス、またはアプリの間のネットワーク・トラフィックがすべてのソースでブロックされます。