プロジェクト間のトラフィック ネットワーク ポリシーを作成する

このページでは、Google Distributed Cloud(GDC)エアギャップでプロジェクト間のトラフィック ネットワーク ポリシーを構成する手順について説明します。

プロジェクト間のトラフィックとは、異なるプロジェクト Namespace のサービスとワークロード間の通信を指しますが、同じ組織内に存在します。

プロジェクト内のサービスとワークロードは、デフォルトで外部のサービスとワークロードから分離されています。ただし、異なるプロジェクト Namespace に属し、同じ組織内のサービスとワークロードは、クロス プロジェクト トラフィック ネットワーク ポリシーを適用することで相互に通信できます。

単一のゾーン内でプロジェクト間のトラフィック制御が必要な場合は、ワークロード レベルのネットワーク ポリシーを作成するをご覧ください。

始める前に

プロジェクト内トラフィック ネットワーク ポリシーを構成するには、次のものが必要です。

プロジェクト間のトラフィック ポリシーを作成する

上り(内向き)または下り(外向き)のプロジェクト間トラフィック ポリシーを定義して、プロジェクト間の通信を管理できます。

GDC ユニバース内のすべてのゾーンに適用されるグローバル クロス プロジェクト ネットワーク ポリシーを作成できます。詳細については、ユニバースとはをご覧ください。

クロス プロジェクト トラフィック用のグローバル上り(内向き)ファイアウォール ルールを作成する

プロジェクトのワークロードまたはサービスが、組織内の別のプロジェクトの他のワークロードからの接続を許可するには、他のプロジェクトのワークロードのインバウンド トラフィックを許可するように上り(内向き)ファイアウォール ルールを構成する必要があります。

このグローバル上り(内向き)ポリシーは、組織内のすべてのゾーンに適用されます。

次の手順に沿って、新しいファイアウォール ルールを作成し、別のプロジェクトのワークロードからの上り(内向き)トラフィックを許可します。

コンソール

  1. 構成するプロジェクトの GDC コンソールで、ナビゲーション メニューの [ネットワーキング] > [ファイアウォール] に移動して、[ファイアウォール] ページを開きます。
  2. アクションバーの [作成] をクリックして、新しいファイアウォール ルールの作成を開始します。
  3. [ファイアウォール ルールの詳細] ページで、次の情報を入力します。

    1. [名前] フィールドに、ファイアウォール ルールの有効な名前を入力します。
    2. [トラフィックの方向] セクションで、[上り(内向き)] を選択して、他のプロジェクトのワークロードからの上り(内向き)トラフィックを許可します。
    3. [ターゲット] セクションで、次のいずれかのオプションを選択します。
      • すべてのユーザー ワークロード: 構成しているプロジェクトのワークロードへの接続を許可します。
      • Service: このファイアウォール ルールが、構成しているプロジェクト内の特定のサービスをターゲットにしていることを示します。
    4. ターゲットがプロジェクト サービスの場合は、[サービス] プルダウン メニューの利用可能なサービスのリストからサービスの名前を選択します。
    5. [From] セクションで、次の 2 つのオプションのいずれかを選択します。
      • すべてのプロジェクト: 同じ組織のすべてのプロジェクトのワークロードからの接続を許可します。
      • 別のプロジェクトすべてのユーザー ワークロード: 同じ組織の別のプロジェクトのワークロードからの接続を許可します。
    6. 別のプロジェクトからのみワークロードを転送する場合は、[プロジェクト ID] プルダウン メニューのプロジェクトのリストから、アクセス可能なプロジェクトを選択します。
    7. ターゲットがすべてのユーザー ワークロードである場合は、[プロトコルとポート] セクションで次のいずれかのオプションを選択します。
      • すべて許可: 任意のプロトコルまたはポートを使用した接続を許可します。
      • 指定したプロトコルとポート: 上り(内向き)ファイアウォール ルールの対応するフィールドで指定したプロトコルとポートのみを使用する接続を許可します。
  4. [ファイアウォール ルールの詳細] ページで、[作成] をクリックします。

これで、同じ組織内の他のプロジェクトのワークロードからの接続が許可されました。ファイアウォール ルールを作成すると、[ファイアウォール] ページの表にルールが表示されます。

API

次のポリシーでは、PROJECT_1 プロジェクトのワークロードが PROJECT_2 プロジェクトのワークロードからの接続と、同じフローの戻りトラフィックを許可します。ポリシーを適用します。

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT_1
  name: allow-inbound-traffic-from-PROJECT_2
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - projectSelector:
        projects:
          matchNames:
          - PROJECT_2
EOF

GLOBAL_API_SERVER は、グローバル API サーバーの kubeconfig パスに置き換えます。詳細については、グローバル API サーバーとゾーン API サーバーをご覧ください。API サーバーの kubeconfig ファイルをまだ生成していない場合は、ログインをご覧ください。

上記のコマンドでは、PROJECT_2 から PROJECT_1 へのアクセスは許可されますが、PROJECT_1 から PROJECT_2 への接続は許可されません。後者の場合は、PROJECT_2 プロジェクトに相互ポリシーが必要です。相互主義ポリシーを適用します。

kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: networking.global.gdc.goog/v1
kind: ProjectNetworkPolicy
metadata:
  namespace: PROJECT_2
  name: allow-inbound-traffic-from-PROJECT_1
spec:
  policyType: Ingress
  subject:
    subjectType: UserWorkload
  ingress:
  - from:
    - projectSelector:
        projects:
          matchNames:
          - PROJECT_1
EOF

PROJECT_1PROJECT_2 との間の接続が許可されるようになりました。

クロス プロジェクト トラフィック用のグローバル下り(外向き)ファイアウォール ルールを作成する

1 つのプロジェクトのワークロードが別のプロジェクトのワークロードからの接続を許可するように、上り(内向き)のプロジェクト間トラフィック ポリシーを付与すると、同じフローの戻りトラフィックも付与されます。したがって、元のプロジェクトに下り(外向き)のプロジェクト間トラフィック ネットワーク ポリシーは必要ありません。

このグローバル下り(外向き)ポリシーは、GDC ユニバース内のすべてのゾーンにのみ適用されます。

たとえば、PROJECT_1 から PROJECT_2 へのトラフィックを許可するポリシーを作成し、データ引き出し保護が無効になっている場合は、PROJECT_2 に上り(内向き)ポリシーを作成し、PROJECT_1 に下り(外向き)ポリシーを作成する必要があります。ただし、返信パケットはポリシーの適用から除外されるため、追加のポリシーは必要ありません。

次の手順に沿って、新しいファイアウォール ルールを作成し、プロジェクト内のワークロードからのアウトバウンド トラフィックを許可します。

  1. 構成するプロジェクトの GDC コンソールで、ナビゲーション メニューの [ネットワーキング] > [ファイアウォール] に移動して、[ファイアウォール] ページを開きます。
  2. アクションバーの [作成] をクリックして、新しいファイアウォール ルールの作成を開始します。
  3. [ファイアウォール ルールの詳細] ページで、次の情報を入力します。

    1. [名前] フィールドに、ファイアウォール ルールの有効な名前を入力します。
    2. [トラフィックの方向] セクションで、[下り(外向き)] を選択して、このファイアウォール ルールがアウトバウンド トラフィックを制御していることを示します。
    3. [ターゲット] セクションで、次のいずれかのオプションを選択します。
      • すべてのユーザー ワークロード: 構成しているプロジェクトのワークロードからの接続を許可します。
      • Service: このファイアウォール ルールが、構成しているプロジェクト内の特定のサービスをターゲットにしていることを示します。
    4. ターゲットがプロジェクト サービスの場合は、[サービス] プルダウン メニューの利用可能なサービスのリストからサービスの名前を選択します。
    5. [宛先] セクションで、次のいずれかのオプションを選択します。
      • すべてのプロジェクト: 同じ組織のすべてのプロジェクトのワークロードへの接続を許可します。
      • [別のプロジェクト] と [すべてのユーザー ワークロード] を選択すると、同じ組織の別のプロジェクトのワークロードへの接続が許可されます。
    6. ワークロードを別のプロジェクトにのみ転送する場合は、[プロジェクト ID] プルダウン メニューのプロジェクトのリストから、アクセス可能なプロジェクトを選択します。
    7. ターゲットがすべてのユーザー ワークロードである場合は、[プロトコルとポート] セクションで次のいずれかのオプションを選択します。
      • すべて許可: 任意のプロトコルまたはポートを使用した接続を許可します。
      • 指定したプロトコルとポート: 下り(外向き)ファイアウォール ルールの対応するフィールドで指定したプロトコルとポートのみを使用する接続を許可します。
  4. [ファイアウォール ルールの詳細] ページで、[作成] をクリックします。

これで、同じ組織内の他のプロジェクトのワークロードへの接続が許可されました。ファイアウォール ルールを作成すると、[ファイアウォール] ページの表にルールが表示されます。