マネージド Anthos Service Mesh の VPC Service Controls

マネージド Anthos Service Mesh では、リリースが 1.22.1-gke.100 以降の GKE クラスタで、Rapid チャンネルの一般提供(GA)機能として VPC Service Controls(VPC-SC)がサポートされています。

準備

VPC-SC の組織ポリシーとサービス境界は、組織レベルで構成されます。作業を行うユーザーに VPC-SC の管理に必要なロールが付与されていることを確認してください。

VPC-SC サービス境界を設定する

以下の手順に沿ってサービス境界を作成または更新します。

  1. サービス境界にクラスタ プロジェクトとフリート プロジェクトを追加します。サービス メッシュを複数の VPC-SC 境界に分散させることはできません。

  2. 制限付きサービスをサービス境界に追加します。

    サービス境界の許可されたサービスのリストと制限付きサービスのリストに特定のサービスを追加する必要があります。そうすることで、Anthos Service Mesh クラスタがそれらのサービスにアクセスできます。これらのサービスへのアクセスは、クラスタの Virtual Private Cloud(VPC)ネットワーク内でも制限されます。

    これらのサービスを追加しないと、Anthos Service Mesh でエラーが発生するか、Anthos Service Mesh が適切に機能しない場合があります。たとえば、Mesh Configuration API をサービス境界に追加しない場合、インストールは失敗し、ワークロードは Envoy の構成をマネージド コントロール プレーンから受信しません。

    コンソール

    1. サービス境界の更新の手順に沿って境界を編集します。
    2. [VPC サービス境界の編集] ページをクリックします。
    3. [制限付きサービス] の [保護するサービス] で、[サービスを追加] をクリックします。
    4. [制限するサービスの指定] ダイアログで [サービスをフィルタ] をクリックし、「Mesh Configuration API」と入力します。
    5. サービスのチェックボックスをオンにします。
    6. [Mesh Configuration API を追加] をクリックします。
    7. 手順 c~f を繰り返して、以下を追加します。
      • Cloud Service Mesh Certificate Authority API
      • GKE Hub API
      • Cloud IAM API
      • Cloud Monitoring API
      • Cloud Trace API
      • Cloud Monitoring API
      • Google Cloud Resource Manager API
      • Cloud Run API
      • Google Compute Engine API
      • Google Container Registry API
      • Artifact Registry API
      • Google Cloud Storage API
    8. [保存] をクリックします。

    gcloud

    制限付きサービスのリストを更新するには、update コマンドを使用して、追加するサービスをカンマ区切りリストとして指定します。

    gcloud access-context-manager perimeters update PERIMETER_NAME \
      --add-restricted-services=meshconfig.googleapis.com,meshca.googleapis.com,gkehub.googleapis.com,iam.googleapis.com,monitoring.googleapis.com,cloudtrace.googleapis.com,monitoring.googleapis.com,cloudresourcemanager.googleapis.com,run.googleapis.com,compute.googleapis.com,containerregistry.googleapis.com,artifactregistry.googleapis.com,storage.googleapis.com \
      --policy=POLICY_NAME

    ここで

    • PERIMETER_NAME は、更新するサービス境界の名前です。

    • POLICY_NAME は組織のアクセス ポリシーの名前です。例: 330193482019

  3. [VPC のアクセス可能なサービス] をクリックして「すべての制限付きサービス」に設定し、上記の手順で制限したサービスに VPC-SC 境界内から引き続きアクセスできるようにします。

  4. Anthos Service Mesh を境界ネットワークからインストールしない限り、asmcli コマンドを実行する ID にサービス境界へのアクセスを許可する上り(内向き)ルールを追加します。

    詳細については、サービス境界の更新をご覧ください。

VPC-SC 境界にマネージド Anthos Service Mesh をインストールする

マネージド Anthos Service Mesh を構成するの手順に沿って操作します。続いて、コントロール プレーンが正常にプロビジョニングされていることを確認し、VPC-SC 関連のエラーがないことを確かめます。

トラブルシューティング

最新の GKE 1.22 イメージでクラスタを作成できない

VPC-SC の制限された環境で最新の 1.22 イメージを使用してクラスタを作成できないという既知の問題があります。この問題を回避するには、次のように、まずデフォルトの GKE チャンネル イメージでこのクラスタを作成してから、イメージをアップグレードします。

gcloud container clusters create CLUSTER \
  --region REGION \
  --release-channel=rapid \
  --workload-pool=PROJECT_ID.svc.id.goog \
  --project PROJECT_ID
gcloud container clusters upgrade CLUSTER \
  --region REGION \
  --master --cluster-version 1.22 \
  --project PROJECT_ID

コンテナがコンテナ イメージをダウンロードできない

これは、イメージがサービス境界の外側にある場合に発生することがあります。ダウンロードするイメージを境界内にあるバケットに移動するか、境界を更新して下り(外向き)ルールを追加します。通常、下り(外向き)ルールでは、選択した ID に Container Registry APIArtifact Registry APICloud Storage API へのアクセスを許可できます。

ControlPlaneRevision CRD のステータス フィールドに VPC-SC エラーが表示される

次のコマンドを実行してエラーの詳細情報を取得します。

gcloud logging read --project=PROJECT_ID \
'protoPayload.metadata.@type=type.googleapis.com/google.cloud.audit.VpcServiceControlAuditMetadata'

ここで

  • PROJECT_ID は、エラーが発生したプロジェクトのプロジェクト ID です。