Code Engine アプリケーションと機能へのインバウンド・トラフィックを、コンテキスト・ベースの制限で制限する
この機能はベータ版であり、評価およびテスト目的でのみご利用いただけます。
IBM Cloud コンテキストベースのルールを使用して、 Code Engine アプリケーションや機能へのアクセスを制限することで、 IBM Cloud® Code Engine アプリケーションや機能へのインバウンドトラフィックを制限できます。 この機能は Code Engine のジョブには対応していません。 コンテキストベースの制限は、アクセスを割り当てる代わりに、アクセス要求が、あなたが設定した許可されたコンテキストから来たものであるかどうかをチェックします。 Code Engine プロジェクト内のアプリケーションや機能への受信トラフィックを制限して、 不要な受信トラフィックからプロジェクトを保護する ことができます。
Code Engine リソースをプライベートエンドポイントでコンテキストベースの制限付きで保護する場合、コンテキストベースのルールでアプリケーションや機能に接続するインバウンドトラフィックを制限するだけでなく、アプリケーションやシークレットのデプロイや更新など、 Code Engine リソースを管理できるユーザーを制限する ことができます。
Code Engine のコンテキストベースの制限は、単一のプロジェクト、リソースグループ全体、または場所(地域)にスコープすることができます。 また、 Code Engine からアクセスできるサービスを制限することもできます。 IBM Cloud コンテキストに基づく制限の詳細については、 コンテキストに基づく制限とはを 参照のこと。
コンテキストベースの制限ルールがリソースグループまたは場所を対象とする場合、制限は既存のプロジェクトに適用されます。 同じ場所またはリソースグループに新しいプロジェクトを作成する場合は、(変更を加えずに)ルールを更新して、新しいプロジェクトに制限を適用する必要があります。 Edit(編集)」をクリックし、「 Apply(適用)」をクリックするだけで、新しいプロジェクトが制限に関連付けられるようになります。
Code Engine リソースにコンテキストベースの制限を作成する
コンテキストベースの制限を作成するには、 コンテキストベースの制限を作成するを 参照してください。 以下の手順は、 Code Engine リソース用に作成するためのものです。
-
Context-based restrictions Rulesのページに 行く。
-
Create(作成)]をクリックして、コンテキストベースの制限の新しいルールを、サービスから順に作成します。
-
を選択します。 Code Engine****を選択し、 Nextをクリックして保護するサービスAPIを選択します。
-
サービスAPIの データプレーンオプションを選択することで、 Code Engine アプリケーションまたは機能のワークロードを保護するためにアクセスを制限します。
データプレーンレベルでワークロードの制限を定義するので、少なくともデータプレーンサービスを選択する。 他のサービスやプラットフォームのAPIを選択することもできる。
次へ] をクリックして、リソースの制限範囲を設定します。
-
単一のプロジェクト、リソースグループ全体、または複数のプロジェクトがある場所(リージョン)に制限を適用します。 このスコープを Resources セクションに適用し、 Reviewをクリックして次に進みます。
-
ルールにコンテキストを追加するには、 Continueをクリックします。
-
Code Engine のデータプレーンAPIは、パブリックなワークロードではなく、プライベートなワークロードに対する制限を提供している。 デフォルトでは、すべてのパブリックワークロードはアクセス可能なままである。 コンテキスト・ベースの制限でプライベートな受信接続を制限し、すべてのパブリック・エンドポイントへのアクセスも維持するには、空のパブリック・コンテキストを作成する必要があります。 この空のパブリック・エンドポイントがないと、ルールのセットアップ・エラーが発生する。 空のパブリック・コンテキストを作成する:
- エンドポイントをオンに設定する。
- 「パブリック」 を選択します。
- ネットワークゾーンは空のままにしておきます。 すべてのパブリック・エンドポイントにアクセスできるように、このセクションでネットワーク・ゾーンが有効になっていないことを確認する。
必要であれば、プライベート・エンドポイントを制限することもできる:
- プロジェクト内のプライベート・エンドポイントへのアクセスをすべて拒否するには、空のパブリック・コンテキストだけが存在し、プライベート・コンテキストが設定されていないことを確認する。
- プロジェクト内のプライベート・ワークロードを制限するには、許可するネットワーク・ゾーンのリストを選択します(たとえば、 Code Engine プロジェクト内のプライベート・ネットワークへのアクセスを VPC に許可できます)。
- IPv6 制限は ではサポートされていません。 Code Engine
-
Continue(続行 )」をクリックして、ルールの詳細を入力する。
-
ルールの名前または説明を入力します。
-
Enforcementには Enabledを選択する。
-
概要を確認し、「 作成 」をクリックする。
プライベートインバウンド接続用のコンテキストベースの制限ルールをテストする
コンテキストベースの制限ルールを作成したら、プライベートアプリケーションや関数を使ってテストすることができます。 アクセスは、許可リストに登録されたIPアドレスにのみ許可される。 リクエストが許可リストにないIPアドレスから来た場合、 RBAC Access Denied
のエラーメッセージが表示されます。 例えば、 9.9.9.9/32
だけを許可した場合、アプリケーションや機能はそのIP範囲からのみアクセス可能となります。
その範囲外ではエラーメッセージが表示される。
VPC(仮想プライベートクラウド)を指すネットワークゾーンを選択した場合は、VPCがプライベートワークロードにアクセスできるように、VPE(仮想プライベートエンドポイント)ゲートウェイも作成する必要があります。 ゲートウェイを作成した後、PDNS解決による一時的な遅延が発生することがあります。 最初は RBAC Access Denied
のエラーメッセージが表示されますが、少し時間が経てばアクセスできるようになります。