リンク・エンドポイントの作成と管理
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 エンドポイントを作成します。
- Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。
- **「概要」タブで、ロケーションの状況が「正常」**であることを確認します。
- **「Link エンドポイント」タブで「エンドポイントの作成」**をクリックします。
- ロケーションの外部で実行されるサービス、サーバー、またはアプリのエンドポイントを作成するには、**「Cloud」**を選択します。
- エンドポイント名、宛先リソースの完全修飾ドメイン・ネーム (FQDN) または IP アドレス、および宛先リソースが着信要求を listen するポートを入力します。 IP アドレスまたは FQDN は、パブリック IP アドレス、または IBM Cloud 内でアクセス可能なプライベート IP アドレス (プライベート・サービス・エンドポイントなど) に解決される必要があります。
- ソースが宛先 FQDN または IP アドレスへの接続に使用する必要のあるプロトコルを選択します。 このプロトコルは、宛先リソースのポートと一致する必要があります。 詳しくは、エンドポイントのプロトコルを参照してください。
- TLS プロトコルまたは HTTPS プロトコルを選択し、宛先の証明書のサーバー・サイド認証を必要とする場合は、**「宛先証明書の検証」**チェック・ボックスを選択します。
- TLS プロトコルまたは HTTPS プロトコルを選択し、宛先リソースがまだ開発中である場合は、**「証明書のアップロード」**をクリックして自己署名証明書ファイルを追加できます。 この
ssl.crt
ファイルには、リソースのホスト名用の Base64 エンコードの公開証明書が含まれている必要があります。ssl.key
証明書秘密鍵は含めないでください。 OpenSSL,を使用してテスト用に自己署名証明書を作成するには、自己署名SSL証明書のチュートリアルを参照してください。 - TLS または HTTPS プロトコルを選択し、リソース接続の TLS ハンドシェークに別のホスト名を提供できるようにする場合は、サーバー名標識 (SNI) を入力します。
- 非アクティブ・タイムアウトを設定するなど、オプションの接続設定を構成します。 1秒から600秒の間で値を選択する。 デフォルト値は
60
秒です。 - 「作成」 をクリックします。 Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。
- エンドポイントのテーブル行で、Satellite Link コネクターのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。
- アドレスを使用して、ロケーション内のソースから宛先に接続します。
CLI での cloud エンドポイントの作成
Satellite ロケーション内のソースが、ロケーション外で実行されるサービス、サーバー、またはアプリに接続できるように、CLI を使用してエンドポイントを作成します。
-
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
-
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 ハンドシェークに追加する場合は、サーバー名標識を含めます。 -
Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。
-
エンドポイントが作成されたことを確認します。 出力で、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
-
アドレスを使用して、ロケーション内のソースから宛先に接続します。
cloud エンドポイントを介した接続のテスト
ご使用のロケーションのソースから宛先リソースに接続するには、エンドポイントに割り当てられている Satellite Link コネクターのホスト名とポートを使用します。 ソースは、以前に作成した Satellite クラスターでも、ご使用のロケーションに割り当てたホストでもかまいません。
割り当て解除されたホストからの接続をテストする例
-
ホストにログインします。 プロンプトが出されたら、ホストにアクセスするためのパスワードを入力します。
ssh root@<ip_address>
-
Satellite Link コネクターのホスト名とポートを使用して、宛先リソースへの接続をテストします。
curl http://<linkconnector_hostname>:<port>
Satellite クラスターからの接続をテストする例
-
クラスターをターゲットにします。 ロケーション・ホスト・ネットワークに接続していない場合は、
--endpoint link
オプションを指定します。ibmcloud oc cluster config --cluster <cluster_name> --admin [--endpoint link]
-
クラスターにサンプル・アプリをデプロイします。 ロケーションからエンドポイントへの接続をテストするには、Satellite クラスターが接続されているネットワークに接続されている必要があります。 このネットワークに接続するには、アプリをデプロイし、アプリにログインしてから、エンドポイントに対して curl 要求を実行します。 以下の例では、クラスターに
nginx
をデプロイします。-
デプロイメントの構成ファイルを作成します。
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
-
クラスター内にアプリをデプロイします。
oc apply -f deployment.yaml
-
クラスターに
nginx
アプリが正常にデプロイされたことを確認します。oc get pods
出力例
NAME READY STATUS RESTARTS AGE nginx-deployment-85ff79dd56-6lrpg 1/1 Running 0 11s
-
-
ポッドにログインします。
oc exec <pod_name> -it bash
-
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 ロケーション内のサービス、サーバー、またはアプリに接続できるように、コンソールを使用してエンドポイントを作成します。
- Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。
- **「概要」タブで、ロケーションの状況が「正常」**であることを確認します。
- **「Link エンドポイント」タブで「エンドポイントの作成」**をクリックします。
- Satellite ロケーション内のサービス、サーバー、またはアプリのエンドポイントを作成するには、**「Satellite ロケーション」**を選択します。
- エンドポイント名、宛先リソースの完全修飾ドメイン・ネーム (FQDN) または IP アドレス、および宛先リソースが着信要求を listen するポートを入力します。 FQDN または IP アドレスは、 Satellite ロケーションのコントロール・プレーン・ホスト、または Satellite コネクターのためにエージェントが実行されるコントロール・プレーン・ホストから解決され、コントロール・プレーン・ホストから到達可能でなければなりません。
- ソースが宛先 FQDN または IP アドレスへの接続に使用する必要のあるプロトコルを選択します。 このプロトコルは、宛先リソースのポートと一致する必要があります。 詳しくは、エンドポイントのプロトコルを参照してください。
- TLS プロトコルまたは HTTPS プロトコルを選択し、宛先の証明書のサーバー・サイド認証を必要とする場合は、**「宛先証明書の検証」**チェック・ボックスを選択します。
- TLS プロトコルまたは HTTPS プロトコルを選択し、宛先リソースがまだ開発中である場合は、**「証明書のアップロード」**をクリックして自己署名証明書ファイルを追加できます。 この
ssl.crt
ファイルには、リソースのホスト名用の Base64 エンコードの公開証明書が含まれている必要があります。ssl.key
証明書秘密鍵は含めないでください。 OpenSSL,を使用してテスト用に自己署名証明書を作成するには、自己署名SSL証明書のチュートリアルを参照してください。 - TLS または HTTPS プロトコルを選択し、リソース接続の TLS ハンドシェークに別のホスト名を提供できるようにする場合は、サーバー名標識 (SNI) を入力します。
- 非アクティブ・タイムアウトを設定するなど、オプションの接続設定を構成します。 1秒から600秒の間で値を選択する。 デフォルト値は
60
秒です。 - 「作成」 をクリックします。 Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。
- エンドポイントのテーブル行で、Satellite Link トンネル・サーバーのホスト名とエンドポイントのポートを**「アドレス」**フィールドにコピーします。
- IBM Cloud プライベート・ネットワークのソース・クライアントから、アドレスを使用して Satellite エンドポイントへの接続をテストします。 例えば、ソース・クライアントに応じて、curl 要求をエンドポイントに送信できます。
curl http://<linkserver_hostname>:<port>
CLI を使用した location エンドポイントの作成
IBM Cloud プライベート・ネットワークに接続されたソースが Satellite ロケーション内のサービス、サーバー、またはアプリに接続できるように、CLI を使用してエンドポイントを作成します。
-
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
-
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 ハンドシェークに追加する場合は、サーバー名標識を含めます。 -
Satellite Link コネクター・コンポーネントがエンドポイントにポートを割り当てるまで数分待ちます。
-
エンドポイントが作成されたことを確認します。 出力で、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
-
IBM Cloud プライベート・ネットワークのソース・クライアントから、アドレスを使用して Satellite エンドポイントへの接続をテストします。 例えば、ソース・クライアントに応じて、curl 要求をエンドポイントに送信できます。
curl http://<linkserver_hostname>:<port>
エンドポイントへのアクセスを制限するアクセス制御リストの設定
エンドポイントにアクセス制御リストを作成することで、どのクライアントが宛先リソースにアクセスできるかを制御する。
ソースが構成されていない場合、クライアントはエンドポイントを使用して宛先リソースに接続できます。 例えば、location エンドポイントの場合、IBM Cloud プライベート・ネットワークに接続されているすべてのクライアントは、このエンドポイントを使用して、Satellite ロケーションで実行される宛先リソースに接続できます。 宛先リソースへのアクセスを制限するには、特定のクライアントの IP アドレスまたはサブネット CIDR のみをエンドポイントのソース・リストに追加します。
現在、ソース・リストは、タイプが location
のエンドポイントに対してのみ作成できます。 タイプが cloud
のエンドポイントのソース・リストを作成することはできません。
コンソールを使ったアクセス制御リストの作成
コンソールからエンドポイントのアクセス制御リストを作成するには、以下の手順を実行します。
- Satellite の**「ロケーション」**ダッシュボードで、ロケーションの名前をクリックします。
- アクセス制御リストタブを選択し、ルールを作成をクリックします。
- ACLルールページで、以下の手順を実行する。
- ルール名を入力します。
- エンドポイントへの接続を許可するクライアントの IPアドレスを入力します。 この値は、単一の IP アドレス、CIDR ブロック、またはコンマ区切りリストにすることができます。 値は以下のCIDRに完全に含まれていなければならない:10.0.0.0/8, 161.26.0.0/16, 166.8.0.0/14, 172.16.0.0/12.
- このルールでアクセスを制御するエンドポイント(または複数のエンドポイント)を選択します。 エンドポイントを経由した宛先へのネットワークトラフィックは、ルールで指定した範囲のIPアドレスを使用するクライアントからのみ許可されます。 エンドポイントを介して宛先リソースに送信される他のクライアントからのネットワーク・トラフィックはブロックされます。
- 作成 をクリックします。
- 既存のACLルールを変更するには、ルールの右端にあるオーバーフローメニューから Edit を選択し、フィールド値を更新し、完了したら Save を押す。
CLIを使用したアクセス制御リストの作成
CLIからエンドポイント用のアクセス制御リストを作成するには、以下の手順を実行します。
-
以下のコマンドを実行して、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 を入力する。 このパラメータを繰り返すことで、複数の値を指定することができる。
-
ACLが作成されたことを確認する。
ibmcloud sat acl ls --location LOCATION
-
また、既存の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 ...]
エンドポイントを使用可能/使用不可にする
エンドポイントをセットアップした後、エンドポイントを使用可能または使用不可にすることにより、エンドポイントを介したネットワーク・トラフィックのフローをいつでも制御できます。
- Locationsダッシュボードから、Satelliteエンドポイントを作成した場所を選択します。
- **「Link エンドポイント」**タブを選択し、使用可能または使用不可にするエンドポイントを見つけます。
- トグルを使用してエンドポイントを使用可能または使用不可にします。 エンドポイントを使用不可にすると、ロケーションと宛先サーバー、サービス、またはアプリの間のネットワーク・トラフィックがすべてのソースでブロックされます。