このページでは、Google Distributed Cloud(GDC)エアギャップで組織間のトラフィック ネットワーク ポリシーを構成する手順について説明します。
組織間のトラフィックとは、異なる組織のサービスとワークロード間の通信を指します。
始める前に
組織間のトラフィック ネットワーク ポリシーを構成するには、次のものが必要です。
- 必要な ID とアクセスロール。詳細については、事前定義ロールとアクセスを準備するをご覧ください。
- 既存のプロジェクト。詳細については、プロジェクトを作成するをご覧ください。
- データ漏洩保護を無効にする。
- 次のいずれかのネットワーク構成:
- 共通の Interconnect AttachmentGroup を使用する組織。
- それぞれの外部ピアリング ネットワークを介して接続を使用している組織。
組織間のトラフィック ポリシーを作成する
上り(内向き)または下り(外向き)の組織間トラフィック ポリシーを定義して、異なる組織のサービスとワークロード間の通信を管理できます。
組織間のトラフィックとは、異なる組織のサービスとワークロード間の通信を指します。
組織内のすべてのゾーンのトラフィックに適用されるグローバルな組織間トラフィック プロジェクト ネットワーク ポリシーを作成できます。GDC ユニバースのグローバル リソースの詳細については、マルチゾーンの概要をご覧ください。
サービスとワークロードを別の組織のプロジェクト外の宛先に接続するには、明示的な承認が必要です。組織間のトラフィックを許可するには、データ漏洩保護を無効にする必要があります。
組織間のトラフィック用のグローバル上り(内向き)ファイアウォール ルールを作成する
外部ロードバランサを使用してプロジェクト内のワークロードを公開する場合は、外部クライアント IP アドレスがワークロードにアクセスできるようにする ProjectNetworkPolicy
上り(内向き)ポリシーも作成する必要があります。
このグローバル上り(内向き)ポリシーは、組織内のすべてのゾーンに適用されます。
次の手順に沿って、新しいファイアウォール ルールを作成し、別の組織のプロジェクトのワークロードからのインバウンド トラフィックを許可します。
コンソール
- 構成するプロジェクトの GDC コンソールで、ナビゲーション メニューの [ネットワーキング] > [ファイアウォール] に移動して、[ファイアウォール] ページを開きます。
- アクションバーの [作成] をクリックして、新しいファイアウォール ルールの作成を開始します。
[ファイアウォール ルールの詳細] ページで、次の情報を入力します。
- [名前] フィールドに、ファイアウォール ルールの有効な名前を入力します。
- [トラフィックの方向] セクションで、[上り(内向き)] を選択して、他の組織のワークロードからの上り(内向き)トラフィックを許可します。
- [ターゲット] セクションで、次のいずれかのオプションを選択します。
- すべてのユーザー ワークロード: 構成しているプロジェクトのワークロードへの接続を許可します。
- Service: このファイアウォール ルールが、構成しているプロジェクト内の特定のサービスをターゲットにしていることを示します。
- ターゲットがプロジェクト サービスの場合は、[サービス] プルダウン メニューの利用可能なサービスのリストからサービスの名前を選択します。
- [送信元] セクションで、[組織外] を選択し、[CIDR] フィールドに別の組織の CIDR ブロックを入力して、その組織のネットワークからの接続を許可します。
- ターゲットがすべてのユーザー ワークロードである場合は、[プロトコルとポート] セクションで次のいずれかのオプションを選択します。
- すべて許可: 任意のプロトコルまたはポートを使用した接続を許可します。
- 指定したプロトコルとポート: 上り(内向き)ファイアウォール ルールの対応するフィールドで指定したプロトコルとポートのみを使用する接続を許可します。
[ファイアウォール ルールの詳細] ページで、[作成] をクリックします。
これで、別の組織のプロジェクト ワークロードからの接続が許可されました。ファイアウォール ルールを作成すると、[ファイアウォール] ページの表にルールが表示されます。
API
独自のカスタマイズされた ProjectNetworkPolicy
上り(内向き)ポリシーを構成して適用します。
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
namespace: PROJECT
name: allow-inbound-traffic-from-external
spec:
policyType: Ingress
subject:
subjectType: UserWorkload
ingress:
- from:
- ipBlock:
cidr: CIDR
EOF
次のように置き換えます。
GLOBAL_API_SERVER
: グローバル API サーバーの kubeconfig パス。詳細については、グローバル API サーバーとゾーン API サーバーをご覧ください。API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインをご覧ください。PROJECT
: GDC プロジェクトの名前。CIDR
: 別の組織の CIDR ブロック。
このポリシーは、外部ロードバランサが Direct Server Return(DSR)を使用し、送信元外部 IP アドレスを保持して、戻りパスでロードバランサをバイパスするため、必要です。
組織間のトラフィック用のグローバル下り(外向き)ファイアウォール ルールを作成する
組織外のサービスにデータを転送するには、まずデータ漏洩保護を無効にする必要があります。次に、プロジェクトのワークロードまたはサービスからのアウトバウンド トラフィックを許可するように、下り(外向き)ファイアウォール ルールを構成する必要があります。
このセクションでは、プロジェクト レベルでアウトバウンド トラフィックを有効にする手順について説明します。ワークロード レベルで下り(外向き)接続を管理する方法については、ワークロードからのアウトバウンド トラフィックを管理するをご覧ください。
このグローバル下り(外向き)ファイアウォール ルールは、組織内のすべてのゾーンに適用されます。
次の手順に沿って、新しいファイアウォール ルールを作成し、プロジェクトのワークロードまたはサービスから別の組織のワークロードへのアウトバウンド トラフィックを許可します。
コンソール
- 構成するプロジェクトの GDC コンソールで、ナビゲーション メニューの [ネットワーキング] > [ファイアウォール] に移動して、[ファイアウォール] ページを開きます。
- アクションバーの [作成] をクリックして、新しいファイアウォール ルールの作成を開始します。
[ファイアウォール ルールの詳細] ページで、次の情報を入力します。
- [名前] フィールドに、ファイアウォール ルールの有効な名前を入力します。
- [トラフィックの方向] セクションで、[下り(外向き)] を選択して、このファイアウォール ルールがアウトバウンド トラフィックを制御していることを示します。
- [ターゲット] セクションで、次のいずれかのオプションを選択します。
- すべてのユーザー ワークロード: 構成しているプロジェクトのワークロードからの接続を許可します。
- Service: このファイアウォール ルールが、構成しているプロジェクト内の特定のサービスをターゲットにしていることを示します。
- ターゲットがプロジェクト サービスの場合は、[サービス] プルダウン メニューの利用可能なサービスのリストからサービスの名前を選択します。
- [宛先] セクションで [組織外] を選択し、[CIDR] フィールドに別の組織の CIDR ブロックを入力して、その組織のネットワークへの接続を許可します。
- ターゲットがすべてのユーザー ワークロードである場合は、[プロトコルとポート] セクションで次のいずれかのオプションを選択します。
- すべて許可: 任意のプロトコルまたはポートを使用した接続を許可します。
- 指定したプロトコルとポート: 下り(外向き)ファイアウォール ルールの対応するフィールドで指定したプロトコルとポートのみを使用する接続を許可します。
[ファイアウォール ルールの詳細] ページで、[作成] をクリックします。
これで、別の組織への接続が許可されました。ファイアウォール ルールを作成すると、[ファイアウォール] ページの表にルールが表示されます。
API
組織外のサービスへのアウトバウンド トラフィックを有効にするには、ProjectNetworkPolicy
リソースをカスタマイズします。ただし、データ漏洩防止はデフォルトで有効になっているため、カスタマイズされた ProjectNetworkPolicy
下り(外向き)ポリシーのステータス フィールドに検証エラーが表示され、データプレーンはそれを無視します。この動作は仕様によるものです。
特定のプロジェクトのデータ流出を許可すると、そのプロジェクトからワークロードを転送できます。許可するアウトバウンド トラフィックは、プロジェクトに割り当てられた既知の IP アドレスを使用する送信元ネットワーク アドレス変換(NAT)です。
カスタマイズした下り(外向き)ポリシーを有効にする手順は次のとおりです。
プロジェクト内のすべてのユーザー ワークロードに、独自のカスタマイズされた
ProjectNetworkPolicy
下り(外向き)ポリシーを構成して適用します。次の例を使用します。
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ProjectNetworkPolicy metadata: namespace: PROJECT name: allow-outbound-traffic-to-external spec: subject: subjectType: UserWorkload egress: - to: - ipBlock: cidr: CIDR EOF
このポリシーでは、組織外にある CIDR ブロック内のすべてのホストへの送信トラフィックが許可されます。最初の試行では、意図的で必要なステータス エラーが発生する必要があります。
ステータスに検証エラーが表示されていることを確認します。
組織の IAM 管理者に、データ漏洩防止を無効にするよう依頼します。このアクションにより、構成が有効になり、他のすべてのアウトバウンド トラフィックがブロックされます。
作成した
ProjectNetworkPolicy
を確認し、検証ステータス フィールドのエラーが消え、ステータスReady
がTrue
になっていることを確認します。これは、ポリシーが有効であることを示しています。kubectl --kubeconfig GLOBAL_API_SERVER \ get projectnetworkpolicy allow-outbound-traffic-to-external \ -n PROJECT -o yaml
次のように置き換えます。
GLOBAL_API_SERVER
: グローバル API サーバーの kubeconfig パス。詳細については、グローバル API サーバーとゾーン API サーバーをご覧ください。API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインをご覧ください。PROJECT
: GDC プロジェクトの名前。
このポリシーを適用し、他の下り(外向き)ポリシーを定義していない場合、PROJECT
の他のすべてのアウトバウンド トラフィックは拒否されます。