コネクタのエンドポイントの作成と管理

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

CLI からのエンドポイントの作成

  1. 次のコマンドを実行して、SatelliteコネクタのIDを検索します。

    ibmcloud sat connector ls
    
  2. エンドポイントを作成するコマンドを実行してください。

    ibmcloud sat endpoint create --dest-hostname HOSTNAME --connector-id ID --dest-type location --dest-port PORT --name NAME --source-protocol PROTOCOL [--dest-protocol PROTOCOL] [--sni SNI]
    
    --connector-id ID
    Satellite コネクタのID。 コネクター ID を見つけるには、 ibmcloud sat connector ls を実行します。
    --dest-hostname HOSTNAME
    接続先の宛先の完全修飾ドメイン名 (FQDN) または外部からアクセス可能な IP アドレスを指定します。 location のエンドポイントについては、この値は、 Satellite のロケーションにおけるコントロールプレーンホスト、または Satellite Connectorのエージェントが実行されている場所から解決され、かつそこから到達可能でなければなりません。
    --dest-port PORT
    宛先リソースが着信要求を listen するポートを指定します。 ポートが宛先のプロトコルと一致していることを確認してください。
    --dest-protocol PROTOCOL
    宛先のプロトコルを指定します。 このオプションを指定しない場合、宛先プロトコルはソース・プロトコルから継承されます。 使用可能なオプション: TCPTLS
    --dest-type TYPE
    宛先リソースの実行場所を指定します。 IBM Cloud (cloud )または Satellite の場所(location )のいずれかです。利用可能なオプション: locationcloud
    --name NAME
    エンドポイントの名前を指定します。
    --sni SNI
    TLS または HTTPS のソースプロトコルを指定し、 TLS のハンドシェイクに別のホスト名を追加したい場合は、サーバー名インジケータを指定してください。
    --source-protocol PROTOCOL
    ソースが宛先リソースを接続するために使用するプロトコルを指定します。 詳しくは、 暗号化プロトコル を参照してください。 使用可能なオプション: TCPTLSHTTPHTTPSHTTP-tunnel
  3. エンドポイントが作成されていることを確認してください。

    ibmcloud sat endpoint ls --connector-id ID
    
  4. --dest-type=cloud を指定してオンクラウドエンドポイントを作成する場合、ソースアプリケーションからの要求に対してターゲットポートを公開するようにロケーションの Connector エージェントを構成する必要があります。 Configuring agent port for on-cloud endpoints の手順に従ってください。

エンドポイントを作成するためのコマンド例

HTTPS をソースプロトコル、 TLS を宛先プロトコルとして使用し、SNIホスト名を指定してエンドポイントを作成するコマンド例。

ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol HTTPS --dest-protocol TLS --sni mydomain.com

TCP プロトコルを使用するエンドポイントを作成するためのコマンド例。

ibmcloud sat endpoint create --dest-hostname server1.mydomain.com --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --dest-type location --dest-port 443 --name myendpoint --source-protocol TCP --dest-protocol TCP

オンクラウドエンドポイント用のエージェントポートの設定

オンクラウドエンドポイントは、IBM CloudリソースにSatelliteロケーションネットワークの外でアクセスすることを可能にします。 これには、Satellite アカウントからアクセス可能なパブリックまたはプライベートサービスが含まれます。例えば、IBM Cloud IAM のエンドポイントや、プライベート IBM Cloud Object Storage バケットなどです。

ソースアプリケーションからオンクラウドエンドポイントへの呼び出しは、まずお客様のロケーションで実行されているローカル Connector エージェントに向けられます。 ただし、ソース・アプリケーションがエンドポイントにアクセスする前に、エージェントがリッスンしているエンドポイントのターゲット・ポートがソース・アプリケーションからアクセス可能であることを確認する必要があります。 Docker や Rancher などのコンテナ・プラットフォームでは、エンドポイントのターゲット・ポートを、エージェントが実行されているコンテナの外からクライアントにアクセスできる適切なポートにマッピングする必要があります。 この条件を満たすには、以下の手順に従ってください。

  1. コマンドを実行して、ターゲットポートを取得します。 出力で、アドレス列にリストされているポート番号を見つけてください。

    ibmcloud sat endpoints --connector-id <connector ID>
    

    出力例。 この例では、ターゲットポート番号は 29998 です。

    OK
    ID                                          Name      Destination Type   Address      Status
    A1A1AAaaaAAaA11AAAAAaA11aaaAaaaAaA_aaaaa    test123   cloud              TCP :29998   enabled
    
  2. コンテナ・プラットフォームに適した手順で、ターゲット・ポートをコンテナにマッピングする。 Docker および Rancher を含むほとんどのプラットフォームでは、Connector エージェントを起動するときに -p LISTENPORT:CONTAINERPORT オプションを使用できます。

    例えば、Docker を使って、次のコマンドはエンドポイントのコンテナ内部ターゲットポート 29998 に対してポート 8443 を公開します。

    docker run -d -p 8443:29998 --env-file /root/agent/env-files/env.txt --env LOG_LEVEL=trace -v /root/agent/env-files:/agent-env-files icr.io/ibm/satellite-connector/satellite-connector-agent:latest
    

    また、コンテナ・プラットフォームやオペレーティング・システムと協力して、選択した LISTENPORT への外部トラフィックを許可する必要があるかもしれない。 前の例では、 LISTENPORT8443 となります。

  3. これで、コンテナ・プラットフォームで設定したIPアドレスまたはDNS名から、この例ではポート8443でリソースに到達できるようになった。

CLIからアクセス制御リスト(ACL)ルールを作成する

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

    ibmcloud sat acl create --connector-id ID --name NAME --subnet SUBNET [--subnet SUBNET ...] [--endpoint ENDPOINT ...]
    
    --connector-id ID
    Satellite コネクタのID。 コネクター ID を見つけるには、 ibmcloud sat connector ls を実行します。
    --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 --connector-id ID
    
  3. また、既存のACLに対してエンドポイントやサブネットを追加または削除することもできる。

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

ACL作成コマンド例

サブネット10.123.76.192/26からエンドポイント「myendpoint」へのアクセスを許可するACLルールを作成するコマンドの例。

ibmcloud sat acl create --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --name myrule --subnet 10.123.76.192/26 --endpoint myendpoint

出力例

OK
ACL created with ID A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea

新しく作成したACLのIDを使用して次のコマンドを実行し、2番目のサブネット10.194.127.64/26 をACLに追加する。

ibmcloud sat acl subnet add --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI --acl-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea --subnet 10.194.127.64/26

ACLの一覧を表示するには、次のコマンドを実行してください。 myrule ACLは、2つのサブネット、 10.123.76.192/26 と 10.194.127.64/26 を含む。

ibmcloud sat acl ls --connector-id A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI
OK
ID                                                                      Name        Subnets                             Created
A1B0CDefgHilQ11ubmVjdG1yOiJjb11hnTdlWSRE1dnZla1szbDBsZyI-Source-vbfea   myrule      10.123.76.192/26,10.194.127.64/26   11 minutes ago

コンソールからのエンドポイントの作成

  1. Connector コンソールから、エンドポイントを作成する Connector をクリックします。

  2. User endpoints] タブをクリックし、[ Create endpoint ]をクリックします。

  3. エンドポイントタイプを選択します。

    エージェント・ロケーション
    コネクタエージェントと同じネットワーク上で動作する宛先リソース。
    クラウド
    IBM Cloud で実行される宛先リソース。
  4. 次へ をクリックします。

  5. 「リソースの詳細」 ページで、以下の詳細を入力します。

    エンドポイント名
    エンドポイントに名前を付けてください。
    宛先 FQDN または IP
    接続先の宛先リソースの完全修飾ドメイン・ネームまたは IP アドレスを入力します。
    宛先ポート
    宛先リソースが着信要求を listen するポートを入力します。
  6. 次へ をクリックします。

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

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

  9. オプション: 「ACL ルール」 ページで、 ルール名 を入力し、エンドポイントへの接続を許可するクライアントの IBM Cloud プライベート IP アドレス を入力します。 この値は、単一の IP アドレス、CIDR ブロック、またはコンマ区切りリストにすることができます。 この値は、CIDR 10.0.0.0/8、 161.26.0.0/16、 166.8.0.0/14、 172.16.0.0/12に完全に含まれている必要があります。

    ルールが選択されていない場合、 IBM Cloud のプライベートネットワークに接続されているクライアントであれば、どのクライアントでもこのエンドポイントを使用して、お客様のロケーションで実行されている宛先リソースに接続できます。

  10. 「接続設定」 ページで、非アクティブ・タイムアウトを 1 から 600 の間に設定します。

  11. 「エンドポイントの作成」 をクリックします。

エンドポイント用のアクセス・コントロール・リスト(ACL)ルールの作成

  1. Satellite コンソールから、ACLルールを作成するコネクタをクリックします。

  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に完全に含まれている必要があります。

      ルールが選択されていない場合、 IBM Cloud のプライベートネットワークに接続されているクライアントであれば、どのクライアントでもこのエンドポイントを使用して、お客様のロケーションで実行されている宛先リソースに接続できます。

    3. このルールでアクセスを制御するエンドポイント(または複数のエンドポイント)を選択します。

  4. 作成 をクリックします。