マネージド Anthos Service Mesh では、リリースが 1.22.1-gke.100 以降の GKE クラスタで、Rapid チャンネルの一般提供(GA)機能として VPC Service Controls(VPC-SC)がサポートされています。Regular チャンネルと Stable チャンネルのプレビュー版の VPC-SC については、マネージド Anthos Service Mesh の VPC Service Controls をご覧ください。
現時点では、新しくプロビジョニングされたコントロール プレーンのみが VPC-SC の一般提供版をサポートしています。Google では、既存のコントロール プレーンを段階的に移行しており、コントロール プレーンが移行されたかどうかを特定する手順を提供する予定です。既存のコントロール プレーンがすでに移行されているかどうかを確認するには、サポートにお問い合わせください。
始める前に
VPC-SC の組織ポリシーとサービス境界は、組織レベルで構成されます。作業を行うユーザーに VPC-SC の管理に必要なロールが付与されていることを確認してください。
組織ポリシーを構成する
新しいマネージド Anthos Service Mesh コントロール プレーンを Rapid チャンネルにプロビジョニングする場合は、以下の一般提供の手順に沿って操作してください。それ以外の場合は、こちらのプレビュー版用の手順に沿って操作してください。
次の手順では、すべての新しいコントロール プレーンが VPC-SC(プレビュー版または一般提供版)をサポートしていることを確認します。ポリシーを設定すると、少なくとも 1.22.1-gke.100(VPC-SC の一般提供版をサポート)を実行しているクラスタに Rapid チャンネルをプロビジョニングできるようになります。ただし、そのようなクラスタで Regular チャンネルをプロビジョニングするには、VPC-SC プレビュー版を明示的にリクエストする必要があります。これがないと、Regular チャンネルで VPC-SC(一般提供)がまだ有効になっていず、ポリシーで禁止されているため、通常のコントロール プレーンが作成されます。
組織管理者は、このセクションの説明に従って組織のポリシーを構成する必要があります。そうしないと、VPC-SC を適用しないコントロール プレーンを誤ってプロビジョニングするおそれがあります。組織または個々のプロジェクトの組織のポリシーを編集し、コンソールまたは以下の gcloud コマンドを使用して「ASM マネージド コントロール プレーンで許可される VPC-SC モード」の制約を「COMPATIBLE」に設定します。
gcloud resource-manager org-policies allow \ meshconfig.allowedVpcscModes COMPATIBLE \ --project=PROJECT_ID
ここで
- PROJECT_ID は、更新するプロジェクトの ID です。
または
gcloud resource-manager org-policies allow \ meshconfig.allowedVpcscModes COMPATIBLE \ --organization=ORGANIZATION_ID
ここで
- ORGANIZATION_ID は、更新する組織の ID です。
VPC-SC サービス境界を設定する
以下の手順でサービス境界を作成または更新します。
サービス境界にクラスタ プロジェクトとフリート プロジェクトを追加します。サービス メッシュを複数の VPC-SC 境界に分散させることはできません。
制限付きサービスをサービス境界に追加します。
サービス境界の許可されたサービスのリストと制限付きサービスのリストに特定のサービスを追加する必要があります。そうすることで、Anthos Service Mesh クラスタがそれらのサービスにアクセスできます。これらのサービスへのアクセスは、クラスタの Virtual Private Cloud(VPC)ネットワーク内でも制限されます。
これらのサービスを追加しないと、Anthos Service Mesh でエラーが発生するか、Anthos Service Mesh が適切に機能しない場合があります。たとえば、Mesh Configuration API をサービス境界に追加しておかないと、Anthos Service Mesh でエラーが発生し、ワークロードは Envoy の構成をマネージド コントロール プレーンから受信できません。
コンソール
- サービス境界の更新の手順に沿って境界を編集します。
- [VPC サービス境界の編集] ページをクリックします。
- [制限付きサービス] の [保護するサービス] で、[サービスを追加] をクリックします。
- [制限するサービスの指定] ダイアログで [サービスをフィルタ] をクリックし、「Mesh Configuration API」と入力します。
- サービスのチェックボックスをオンにします。
- [Mesh Configuration API を追加] をクリックします。
- 手順 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
- [保存] をクリックします。
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
。
[VPC のアクセス可能なサービス] をクリックして「すべての制限付きサービス」に設定し、上記の手順で制限したサービスに VPC-SC 境界内から引き続きアクセスできるようにします。
Anthos Service Mesh を境界ネットワークからインストールしない限り、
asmcli
コマンドを実行する ID にサービス境界へのアクセスを許可する上り(内向き)ルールを追加します。詳細については、サービス境界の更新をご覧ください。
VPC-SC プレビュー版との違い
VPC-SC の一般提供版とプレビュー版の違いは、コントロール プレーンのプロビジョニングの容易さです。VPC-SC の一般提供版が有効になっているコントロール プレーンは、VPC-SC 境界の構成(またはその欠落)を常に適用するため、プロビジョニング時に VPC-SC の情報は必要ありません(明示的な有効化は不要です)。一方、VPC-SC のプレビュー版はプロビジョニング時に明示的に有効にする必要があります。VPC-SC の境界が構成されていない場合、想定どおりに機能しません。
VPC-SC のプレビュー版の手順で VPC-SC 一般提供版の対象となるコントロール プレーンをプロビジョニングすると、VPC-SC 一般提供版が有効になります。
VPC-SC 境界にマネージド Anthos Service Mesh をインストールする
このセクションでは組織の管理者権限は必要ありません。マネージド Anthos Service Mesh を構成するの手順に沿って操作します。続いて、コントロール プレーンが正常にプロビジョニングされていることを確認し、VPC-SC 関連のエラーがないことを確かめます。
トラブルシューティング
コンテナがコンテナ イメージをダウンロードできない
これは、イメージがサービス境界の外側にある場合に発生することがあります。ダウンロードするイメージを境界内にあるバケットに移動するか、境界を更新して下り(外向き)ルールを追加します。通常、下り(外向き)ルールでは、選択した ID に Container Registry API、Artifact Registry API、Cloud 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 です。