Code Engine でサービス・エンドポイントを使用する
すべての IBM Cloud® Code Engine プロジェクトは、 IBM Cloud® サービス・エンドポイントとの統合を提供している。 このサポートにより、 クラシック・インフラストラクチャー Code Engine ワークロードに接続し、 IBM Cloud ネットワーク内にとどまることができる。
Code Engine ワークロードの可視性を制御し、アプリケーションまたは機能をパブリックまたはプライベートのエンドポイントに公開するかどうかを指定できます。 visibility = private 用に構成されたアプリケーションまたは機能は、サービス・エンドポイントを介してアクセスされます。 サービス・エンドポイントを介してアクセスされるアプリケーションや機能は、 IBM ネットワークを離れず、 IBM Cloud ネットワーク内に留まる。
パブリック・エンドポイント
パブリック・ネットワーク上のデプロイメントには、パブリック・エンドポイントを使用して接続します。 プロビジョン時には、すべてのデプロイメントでパブリック・エンドポイントがデフォルト・オプションになります。 デプロイメントに接続するには、インターネットにアクセスできる環境を使用しなければなりません。
プライベート・エンドポイント
プライベート・ネットワーク上のサービス・エンドポイントを使用するデプロイメントでは、パブリック・インターネットからはアクセスできないエンドポイントを利用できます。 すべてのトラフィックは、Code Engine デプロイメント専用のハードウェアにルーティングされ、IBM Cloud プライベート・ネットワーク上に留まります。 このエンドポイントを発着するトラフィックはすべて無料であり、トラフィックが IBM Cloud のままであることを条件に料金は発生しない。 使用環境から IBM Cloud プライベート・ネットワークにアクセスできるようになった後は、インターネット接続がなくてもデプロイメントに接続できます。
Code Engine プライベート・エンドポイントを持つアプリケーション・デプロイメントは、プライベート・ネットワーク内のどのアカウントアクセス可能であり、各インスタンスへのアクセスには認証が必要である。 このアクセスを特定のIPアドレス、IPアドレスの範囲、 IBM Cloud サービス、またはVPCに制限するには、 コンテキスト・ベースの制限ルールを 構成します。
サービス・エンドポイントを使用した Code Engine リソースの安全な管理
-
プライベート・エンドポイントを使用するCode Engineプロジェクトを指定します。 CLI でのみプライベート・エンドポイントを使用するように Code Engine プロジェクトを構成できます。 プロジェクトを作成するには、
--endpoint=privateオプションを指定してibmcloud ce project createコマンドを使用します。ibmcloud ce project create --name myproject --endpoint=privateプロジェクトが
active状況になるまで待ちます。 CLI では、ibmcloud ce project getコマンドを使用してプロジェクトの状況を確認できます。既存の Code Engineプロジェクトでプライベート・エンドポイントを使用する場合は、
--endpoint=privateオプションを指定してibmcloud ce project selectコマンドを使用します。ibmcloud ce project select --name myproject --endpoint=private**
project createコマンドおよびproject select**コマンドでは、--endpointオプションが明示的に指定されていない場合、動作はシステムによって決定されます。 IBM Cloud CLI がprivate.cloud.ibm.comに接続されている場合、Code Engineプロジェクトは--endpointがprivateであるかのように動作します。 IBM Cloud CLI がcloud.ibm.comに接続されている場合、Code Engineプロジェクトは--endpointがpublicであるかのように動作します。 -
新しいプロジェクトを作成せず、既存のプロジェクトを選択し、アプリケーションをプライベート・エンドポイントにのみ表示したい場合は、既存のプロジェクトがプライベート表示可能なアプリケーションをサポートしていることを確認します。
ibmcloud ce project getコマンドを使用して、Application Private Visibility Supportedの出力がtrueに設定されていることを確認します。 値がfalseの場合、IBM サポートへの連絡は、既存のプロジェクト内でこの機能を有効にします。ibmcloud ce project get -n myproject出力例
Getting project 'myproject'... OK Name: myproject ID: abcdabcd-abcd-abcd-abcd-f1de4aab5d5d Status: active Enabled: true Application Private Visibility Supported: false Selected: true Region: us-south Resource Group: default Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f Age: 52d Created: Tue, 28 Sep 2021 05:12:16 -0500 Updated: Tue, 28 Sep 2021 05:12:19 -0500 Quotas: Category Used Limit App revisions 1 60 Apps 1 20 Build runs 1 100 Builds 2 100 Configmaps 2 100 CPU 0 64 Ephemeral storage 0 256G Instances (active) 0 250 Instances (total) 0 2500 Job runs 0 100 Jobs 0 100 Memory 0 256G Secrets 6 100 Subscriptions (cron) 0 100 Subscriptions (IBM Cloud Object Storage) 0 100 Subscriptions (Kafka) 0 100 -
プライベート・エンドポイントからしか見えないアプリケーションや関数を作成する。
--visibility=privateオプションを指定して、ibmcloud ce application createまたはibmcloud ce function createコマンドを使用します。 また、コンソールを使用してアプリケーションや関数を作成または更新し、 アプリの可視性を 設定することもできます。ibmcloud ce application create -n myapp --visibility=private
サービスエンドポイントを使用してアプリケーションに安全にアクセスする
-
Code Engineプロジェクトから、アプリケーションが
visibility=private設定で構成されていることを確認します。 プライベート・エンドポイントを使用したアプリケーションのデプロイを 参照してください。 -
プライベート・ネットワークに公開されている Code Engineアプリケーションの URL を取得します。 URL の形式は次のとおりです
<app>.<uuid>.private.<region>.codeengine.appdomain.cloud。-
Code Engine コンソールから、アプリケーションの [Domain mappings(ドメインマッピング)] タブに移動して、アプリケーションの可視性と使用可能な URL を表示します。
-
Code Engine CLI から、
--option urlオプションを指定してibmcloud ce application getコマンドを使用します。 以下の例では、myappの可視性がvisibility=privateに設定されているため、このコマンドで--option urlを指定すると、プライベート・ネットワークに URL出力される。ibmcloud ce application get -n myapp -output url出力例
http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
-
-
IBM Cloud プライベート・ネットワーク内からアプリケーションを呼び出す(例えば、 IBM Cloud シェルから アプリケーションを呼び出す)。
myappアプリケーションは、単純な Hello World アプリケーションです。 cURL,Hello Worldを使ってmyappアプリケーションを実行すると、 が返される。 例えば、 IBM Cloud シェルから実行する:curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
サービス・エンドポイントを使用した機能への安全なアクセス
-
Code Engine プロジェクトから、あなたの機能が
visibility=private設定で構成されていることを確認します。 プライベート・エンドポイントを使用した機能のデプロイ を参照してください。 -
プライベートネットワークに公開されている Code Engine 関数の URL を取得する。 URL の形式は次のとおりです
<function>.<uuid>.private.<region>.codeengine.appdomain.cloud。-
Code Engine コンソールから、関数の Domain mappings タブに移動し、関数の可視性と使用可能な URL を表示します。
-
Code Engine CLI から
ibmcloud ce function getコマンドを使用します。 以下の例では、myfunctionの可視性がvisibility=privateに設定されているため、このコマンドはプライベート・ネットワークに URLを出力する。ibmcloud ce function get -n myfunction出力例
http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
-