アウトバウンド・コネクティビティ Code Engine
IBM Cloud® Code Engine アウトバウンド接続機能は、 Code Engine プロジェクトの到達可能なエンドポイントの定義をサポートします。
- アウトバウンド接続には、CIDR表記で許可された宛先IPアドレス範囲を使用する。
- Code Engine コンソールまたは CLI を使用して、 Code Engine プロジェクトと IBM Cloud VPC Private Path サービスを 接続します。
コンソールまたはCLIを使用して、アウトバウンド接続を作成できます。
アウトバウンド接続で許可される宛先IPアドレスの範囲
許可された宛先IPアドレス範囲は、アウトバウンドトラフィックが安全であると定義したアドレスに制限されることを保証する。 そのため、インターネットへの不要なアクセスを防ぎ、コンプライアンスとセキュリティを強化することができます。
CIDR範囲の指定は、プロジェクト内部通信、プライベートパス接続、プライベートサービス接続には影響しない。 結果として、CIDR範囲に基づいてアウトバウンドトラフィックを制限しても、 Code Engine プロジェクト内のアプリケーション同士の通信や、接続されたプライベートパスサービスとの通信、 IBM Cloud サービスAPIのプライベートエンドポイントとの通信を妨げることはありません。
ユースケースによって、アウトバウンド接続の仕様を決めることができる。 典型的なユース・ケースは以下のとおりです。
- プロジェクト内のアプリケーション( Code Engine )が外部エンドポイントに到達しないことを想定している場合、ルールなし(つまり、許可されたIPアドレスなし)を指定する。
- すべての可能なエンドポイントを許可するために、単一の許可された宛先IPアドレス範囲(
0.0.0.0/0)を指定する。 デフォルトでは、 allow-all という名前のルールが設定されており、IP 範囲は 0.0.0.0/0 です。 - Code Engine プロジェクト内のワークロードが、指定した範囲のエンドポイント(たとえば、オンプレミスのデータセンター)にのみ到達できるように、許可された宛先 IP アドレス範囲を持つルールを指定します。
プライベート・パス接続
Private Pathは、 Code Engine のような IBM Cloud サービスとVPC間の接続を、セキュリティを損なったりVPCを危険にさらすことなく可能にします。 IBM Cloud サービスがプロバイダーの VPC に接続できるようにする 」を参照してください。
この図は、 Code Engine アプリケーションの VPE ゲートウェイと VPC との接続を使用して、プライベート・パス・サービスを確立する方法を示しています。 まず、 Code Engine アプリケーションは、 Code Engine の VPC 内の VPE ゲートウェイに接続する。 そして、VPEゲートウェイはプロバイダーのVPC内のプライベートパスNLBに接続する。 次に、プライベート・パスNLBはプロバイダーのアプリケーションに接続する。 その後、プロバイダーのアプリケーションがリクエストに応答する。
このプライベート・パスのサービス活動は、 IBM Cloud プライベート・ネットワーク内の単一リージョン(例えば、 us-south )に完全に含まれている。
下図は、プライベート・パスが Code Engine プロジェクトとの接続にどのように役立つかを示す追加例です:
- VPC内のVSI、
- VPC でホストされている OpenShift クラスタ、
- オンプレミス環境またはその他の外部ネットワーク( プライベートパスを使用してクラウドサービスをオンプレミス環境に接続 する方法も参照してください。)
プライベート・サービス・コネクション
IBM Cloud プラットフォームの共通サービスのプライベート・エンドポイントへの接続は、すべての Code Engine プロジェクトの許可された送信先の一部として有効になっている。 有効なプラットフォーム・サービスのセットは、以下の表のように地域によって異なる。
| プラットフォーム・サービス | 地域で利用可能なプライベート・エンドポイント |
|---|---|
| グローバル・サーチ (エンドポイント URL ) とグローバル・タグ (エンドポイント URL ) | au-syd, br-sao, ca-tor, eu-de, eu-es, eu-gb, in-che, jp-osa, jp-tok, us-east, us-south |
| グローバルカタログ( エンドポイント URL ) | au-syd, br-sao, eu-de, jp-osa, us-east, us-south |
アカウント管理 (エンドポイント URL (https://private.accounts.cloud.ibm.com) ) |
eu-de, us-east, us-south |
| 使用量計測( エンドポイント URL ) | eu-de, us-east, us-south |
| エンタープライズ管理( エンドポイント URL ) | eu-de, us-east, us-south |
| リソースコントローラー( エンドポイント URL ) | eu-de, us-east, us-south |
| ユーザー管理( エンドポイント URL ) | eu-de, us-east, us-south |
コンソールを使って許可された送信先を管理する
アウトバウンド接続のための許可された宛先IPアドレス範囲の追加
ワークロードが外部ネットワーク経由で接続できる場所を制限するために、許可された宛先IPアドレスの範囲を作成することができます。
- 「接続」ページに移動してください:
- Code Engine コンソールの Projects ページからプロジェクトを選択します。
- Project settings(プロジェクト設定 )> Connectivity(接続性) > CIDR ranges(CIDR範囲) タブをクリックして、既存の許可された宛先IPアドレス範囲のリストを表示します。
- Add ]をクリックして、許可された宛先IPアドレス範囲を作成します。
- 名前を指定します。
- CIDR表記でIPアドレスの範囲を指定してください。
- 設定を確認してください。
アウトバウンド接続用のプライベートパス接続の追加
Code Engine プロジェクトと VPC の間にプライベート・パス接続を確立できます。
- 「接続」ページに移動してください:
- Code Engine コンソールの Projects ページからプロジェクトを選択します。
- Project settings > Connectivity > Private Path connections タブをクリックすると、既存のプライベートパス接続のリストが表示されます。
- [追加 ] をクリックして、プライベートパス接続を作成します。
- 名前を指定します。
- 接続するプライベート・パスのサービス・インスタンスを名前またはCRNで指定します。
- 名前で、ドロップダウンリストからプライベートパスのサービスインスタンスを選択します。
- CRNにより、プライベート・パス・サービス・インスタンスCRNを提供する。
- 隔離ポリシーを選択します:
- Shared- ターゲット VPC と同じ IBM Cloud アカウント、または同じ Enterprise アカウント Family 内のアカウント存在する Code Engine プロジェクト間で、プライベートパス接続を再利用できるようにします。
- Dedicated- このプライベート・パス接続の使用は、 Code Engine プロジェクト 1 つだけに制限されます。
- 設定を確認してください。
VPCへの接続が作成されると、プライベート・パスのサービス・オーナーは接続要求を受け取ります。 所有者は、この接続要求を確認し、許可または拒否することができる。 プライベート・パス接続詳細ビューに表示されるコンシューマー Code Engine account ID および VPE gateway creation timestamp を使用して、プライベート・パス・サービス内で接続要求を識別します。
アウトバウンド接続のための許可された宛先IPアドレス範囲の更新
ワークロードが意図しないエンドポイントに接続できないように、許可される宛先IPアドレスの範囲を変更することができる(例えば、公衆インターネットへの接続)。
- 「接続」ページに移動してください:
- Code Engine コンソールの Projects ページからプロジェクトを選択します。
- Project settings(プロジェクト設定 )> Connectivity(接続性) > CIDR ranges(CIDR範囲) タブをクリックして、既存の許可された宛先IPアドレス範囲のリストを表示します。
- 編集したい許可された宛先IPアドレス範囲の行をクリックします。
- 更新されたIPアドレスの範囲を指定し、変更を保存します。
アウトバウンド接続ルールを更新する際は、以下の点に注意してください:
-
許可された宛先IPアドレスの範囲は競合せず、加算される。 複数の範囲を定義する場合、許可される宛先は、範囲を追加する順序が結果の許可される宛先に影響しないように、指定されたすべての範囲の連合を作成します。 既存の範囲によってすでにカバーされている2つ目の範囲を追加した場合、システムは冗長であるとしてその作成を拒否します。
-
IPアドレス範囲
0.0.0.0/0を指定すると、既存のルールがすべて削除され、完全な接続性が開放される。 -
アウトバウンド接続のルールを制限した後、ワークロードがそのルールを理解するまでに時間がかかることがあります。 例えば、アウトバウンド接続ルールを更新する前に、あなたのコードで使用されている HTTP クライアントが接続を確立すると、そのエンドポイントへの接続を開くことができます。 アウトバウンド接続ルールがすぐに適用されるようにするには、すべての接続をリセットします。 ワークロードを再デプロイするか、コード内でそのような状況に対処することでリセットできる。
-
Code Engine プロジェクトからのアウトバウンド接続を制限すると、外部からのリクエストができなくなるため、ビルドの実行に失敗するなど、意図しない副作用が発生することがあります。
アウトバウンド接続用のプライベートパス接続の更新
Code Engine プロジェクトと VPC 間のプライベートパス接続を dedicated または shared に変更できます。
- プライベートパス接続は、
shared、ターゲット VPC と同じ IBM Cloud アカウント存在する Code Engine プロジェクト間、または同じアカウント 内のアカウント間で再利用できます。 - プ ラ イ ベー ト パ ス接続の使用を Code Engine プ ロ ジ ェ ク ト 1 つだけに制限す る には、 その分離ポ リ シーを
dedicatedに設定し ます。 dedicatedプライベート・パス接続は、いつでもsharedに変更できる。sharedプライベート・パス接続は、複数の Code Engine プロジェクトで使用されていない場合にのみ、dedicatedに変更できます。
プライベート・パス接続の分離ポリシーを更新する:
- 「接続」ページに移動してください:
- Code Engine コンソールの Projects ページからプロジェクトを選択します。
- Project settings > Connectivity > Private Path connections タブをクリックすると、既存のプライベートパス接続のリストが表示されます。
- 更新したいプライベートパス接続のある行に移動し、3つのドットの行アクションアイコンをクリックし、 Change isolation policy オプションを選択します。
- ダイアログで Changeをクリックして変更を確定する。
アウトバウンド接続で許可された送信先を削除する
アウトバウンド接続のために定義する必要がなくなった場合、以前に定義した許可されたアウトバウンド宛先を削除できます。
許可された宛先IPアドレス範囲を削除すると、プロジェクト内の Code Engine アプリケーション、機能、およびジョブの送信トラフィックがブロックされます。
- 「接続」ページに移動してください:
- Code Engine コンソールの Projects ページからプロジェクトを選択します。
- Project settings(プロジェクト設定 )> Connectivity(接続性) > CIDR ranges(CIDR範囲) タブをクリックすると、既存の許可された宛先IPアドレス範囲のリストが表示され、 Private Path connections(プライベートパス接続) タブをクリックすると、既存のプライベートパス接続のリストが表示されます。
- 削除したい許可された送信先の行に移動し、3つのドットの行アクションアイコンをクリックし、 削除オプションを選択します。
- プロンプトが表示されたら、削除を確認します。
CLIを使用した許可された送信先の管理
CLI コマンドを使用して許可された送信先を操作するには、 IBM Cloud アカウント にログインし、 Code Engine アカウントリソースグループを選択する.
アウトバウンド接続のための許可された宛先IPアドレス範囲の追加
Code Engine 接続アウトバウンドCLIコマンドでは、以下を指定できます。
--name および --cidr の値を指定して、許可される宛先IPアドレスの範囲を設定できます。 以下のCIDRガイドラインに従ってください:
- 予約IP 範囲からIP範囲を使用しないでください。
--name、--cidrの値を重複して使用しないでください。- サポートされていないCIDR名を使用しないでください。
- サポートされていないIPアドレス範囲は使用しないでください。 CIDR表記に従う。
ワークロードが外部ネットワーク経由で接続できる場所を制限するために、許可された宛先IPアドレスの範囲を作成することができます。
-
Code Engine のプロジェクトを選択してください。 以下に例を示します。
ibmcloud ce project select --name myproject -
--name、--cidrオプションを指定して、許可される宛先IPアドレス範囲を作成する。 有効な名前とIPアドレスを入力してください。 これらの例を参考にしてほしい:ibmcloud ce connectivity outbound create --name mycidr1 --cidr 192.68.5.0/24 ibmcloud ce connectivity outbound create --name mycidr2-allow-all --cidr 0.0.0.0/0 ibmcloud ce connectivity outbound create --name mycidr2-allow-all --cidr 0.0.0.0/0 --force
アウトバウンド接続用のプライベートパス接続の追加
Code Engine 接続アウトバウンド CLI コマンドでは、次の値を指定できます。
--name、 --format、 --pps-crn、およびオプションで --isolation-policy の値を指定すると、 Code Engine プロジェクトと VPC の間にプライベートパス接続が確立されます。
-
Code Engine のプロジェクトを選択してください。 以下に例を示します。
ibmcloud ce project select --name myproject -
--name、--format、--pps-crnを指定して、アウトバウンド接続用のプライベートパス接続を作成する。 有効な名前、形式、CRNを記入してください。--isolation-policyを指定する場合は、sharedまたはdedicatedを指定してください。 これらの例を参考にしてほしい:ibmcloud ce connectivity outbound create --name my-pps-connection --format pps --pps-crn crn:v1:bluemix:public:is:eu-de:a/abcdefabcdefabcdefabcd1234567890::private-path-service-gateway:r010-2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f6f ibmcloud ce connectivity outbound create --name my-pps-connection-2 --format pps --pps-crn crn:v1:bluemix:public:is:eu-de:a/abcdefabcdefabcdefabcd1234567890::private-path-service-gateway:r010-2b2b2b2b-3c3c-4d4d-5e5e-6f6f6f6f6f5e --isolation-policy dedicated
VPCへの接続が作成されると、プライベート・パスのサービス・オーナーは接続要求を受け取ります。 所有者は、この接続要求を確認し、許可または拒否することができる。 プライベート・パス接続詳細ビューに表示されるコンシューマー Code Engine account ID および VPE gateway creation timestamp を使用して、プライベート・パス・サービス内で接続要求を識別します。
アウトバウンド接続で許可された既存の接続先を表示する
許可された特定の送信先を表示するには、名前を指定する。 以下に例を示します。
ibmcloud ce connectivity outbound get --name my-allowed-destination
許可されたすべての送信先を表示するには、以下を実行する:
ibmcloud ce connectivity outbound list
許可された送信先の選択されたフォーマットを表示するには、次のように実行する:
ibmcloud ce connectivity outbound list --format cidr,pps
ibmcloud ce connectivity outbound list --format cidr
ibmcloud ce connectivity outbound list --format pps
アウトバウンド接続のための許可された宛先IPアドレス範囲の更新
ワークロードが意図しないエンドポイントに接続できないように、許可される宛先IPアドレスの範囲を変更することができる(例えば、パブリックインターネットへの接続)。
--name 、 --cidr オプションを指定して、許可された宛先IPアドレス範囲を更新する。 有効な名前とIPアドレスを入力してください。 これらの例を参考にしてほしい:
ibmcloud ce connectivity outbound update --name mycidr1 --cidr 192.68.5.0/24
ibmcloud ce connectivity outbound update --name mycidr2-allow-all --cidr 0.0.0.0/0
Are you sure you want to update an allowed destination IP address range with '0.0.0.0/0'?, It will remove all other entries [y/N]>
ibmcloud ce connectivity outbound update --name mycidr2-allow-all --cidr 0.0.0.0/0 --force
アウトバウンド接続ルールを更新する際は、以下の点に注意してください:
-
許可された宛先IPアドレスの範囲は競合せず、加算される。 複数の範囲を定義する場合、許可される宛先は、範囲を追加する順序が結果の許可される宛先に影響しないように、指定されたすべての範囲の連合を作成します。 既存の範囲によってすでにカバーされている2つ目の範囲を追加した場合、システムは冗長であるとしてその作成を拒否します。
-
IPアドレス範囲
0.0.0.0/0を指定すると、既存のルールがすべて削除され、完全な接続性が開放される。 -
アウトバウンド接続ルールを制限した後でも、ワークロードがルールに対応するまでに時間がかかることがあります。 例えば、アウトバウンド接続ルールを更新する前に、あなたのコードで使用されている HTTP クライアントが接続を確立すると、そのエンドポイントへの接続を開くことができます。 アウトバウンド接続ルールがすぐに適用されるようにするには、すべての接続をリセットします。 ワークロードを再デプロイするか、コード内でそのような状況に対処することでリセットできる。
-
Code Engine プロジェクトからのアウトバウンド接続を制限すると、外部からのリクエストができなくなるため、ビルドの実行に失敗するなど、意図しない副作用が発生することがあります。
アウトバウンド接続用のプライベートパス接続の更新
Code Engine プロジェクトと VPC 間のプライベートパス接続を dedicated または shared に変更できます。
- プライベートパス接続は、
shared、ターゲット VPC と同じ IBM Cloud アカウント存在する Code Engine プロジェクト間、または同じアカウント 内のアカウント間で再利用できます。 - プ ラ イ ベー ト パ ス接続の使用を、 Code Engine プ ロ ジ ェ ク ト 1 つに限定す る には、 その
--isolation-policyをdedicatedに設定し ます。 dedicatedプライベート・パス接続は、いつでもsharedに変更できる。sharedプライベート・パス接続は、複数の Code Engine プロジェクトで使用されていない場合にのみ、dedicatedに変更できます。
プライベート・パス接続を更新するには、 --name と --isolation-policy オプションを指定する。 これらの例を参考にしてほしい:
ibmcloud ce connectivity outbound update --name my-pps-connection --isolation-policy dedicated
ibmcloud ce connectivity outbound update --name my-pps-connection --isolation-policy shared
アウトバウンド接続で許可された送信先を削除する
アウトバウンド接続のために定義する必要がなくなった場合、以前に定義した許可されたアウトバウンド宛先を削除できます。
許可された宛先IPアドレス範囲を削除すると、プロジェクト内の Code Engine アプリケーション、機能、およびジョブの送信トラフィックがブロックされます。
許可された送信先を確認付きで削除するには、名前を指定します。 以下に例を示します。
ibmcloud ce connectivity outbound delete --name my-allowed-destination
許可された送信先を強制的に(つまり、確認なしで)削除するには、以下を実行する:
ibmcloud ce connectivity outbound delete --name my-allowed-destination --force