VPC Service Controls で保護されているプロジェクトでワークロード マネージャーの評価を実行する場合は、コンピューティング ワークロード用エージェントを実行する Compute Engine インスタンスに接続されているサービス アカウントに上り(内向き)ルールと下り(外向き)ルールを構成する必要があります。これらのルールにより、サービス アカウントは VPC Service Controls 境界内の必要な API にアクセスできます。これらのルールを構成しないと、エージェントはワークロード マネージャーにデータを送信できず、評価は失敗します。
詳細については、VPC Service Controls の概要をご覧ください。
始める前に
プロジェクトに VPC Service Controls を設定する前に、次の操作を行います。
- VPC Service Controls の境界を設定する。
- コンピューティング ワークロード用エージェント を実行する Compute Engine インスタンスに接続されているサービス アカウントを特定します。(例:
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com)。これは、 Google Cloud コンソールの [VM インスタンスの詳細] ページで確認できます。 - サービス アカウントに必要なロールがあることを確認します。たとえば、エージェントと SAP ワークロードに必要なロールをご覧ください。
必要なロール
VPC Service Controls 境界内で使用するようにワークロード マネージャーを構成するために必要な権限を取得するには、プロジェクトに対する Access Context Manager 編集者 (roles/accesscontextmanager.policyEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
サービス境界の上り(内向き)ルールと下り(外向き)ルールを作成する
コンピューティング ワークロード用エージェント が必要なサービスと通信できるようにするには、VPC Service Controls 境界で上り(内向き)ルールと下り(外向き)ルールを構成する必要があります。
上り(内向き)ルールの作成方法の詳細については、上り(内向き)ポリシーと下り(外向き)ポリシーの構成をご覧ください。
コンソール
Google Cloud コンソールで、[VPC Service Controls] ページに移動します。
プロジェクトを選択します。
サービス境界の名前をクリックし、[編集] をクリックします。
[上り(内向き)ポリシー] または [下り(外向き)ポリシー] をクリックします。
[上り(内向き)ルールを追加] をクリックします。
[From] セクションで、サービス エージェントの ID を指定します。
- [ID] で、[選択されている ID とグループ] を選択します。
- [ID の追加] をクリックします。
- エージェント サービス アカウントのメールアドレスを入力します。例:
sap-example-svc-acct@example-project-123456.iam.gserviceaccount.com
[To] セクションで、許可するオペレーションを指定します。
- [リソース] で、[すべてのプロジェクト] を選択します。
- [オペレーション] で、[オペレーションを選択] を選択します。
- [オペレーションを追加] をクリックし、[すべてのメソッド] を選択して次のサービスを追加します。
compute.googleapis.comworkloadmanager.googleapis.comsecretmanager.googleapis.com
[完了] をクリックし、[保存] をクリックします。
gcloud
上り(内向き)ルールを追加するには、上り(内向き)ルールを含む YAML ファイルを作成し、--set-ingress-policies フラグを指定して gcloud access-context-manager perimeters update コマンドを使用します。
次の内容で
ingress_policy.yamlという名前の上り(内向き)ポリシー YAML ファイルを作成します。- ingressFrom: identities: - serviceAccount:SERVICE_ACCOUNT_EMAIL sources: - accessLevel: '*' ingressTo: operations: - serviceName: compute.googleapis.com methodSelectors: - method: "*" - serviceName: workloadmanager.googleapis.com methodSelectors: - method: "*" - serviceName: secretmanager.googleapis.com methodSelectors: - method: "*" resources: - "*"SERVICE_ACCOUNT_EMAILは、コンピューティング ワークロード用エージェント を実行する Compute Engine インスタンスに接続されているサービス アカウントのメールアドレスに置き換えます。上り(内向き)ポリシーを境界に追加します。
gcloud access-context-manager perimeters update PERIMETER_NAME \ --set-ingress-policies=ingress_policy.yamlPERIMETER_NAMEは、サービス境界の名前に置き換えます。例:accessPolicies/1234567890/servicePerimeters/example_perimeter
VPC Service Controls の違反のトラブルシューティング
プロジェクトで VPC Service Controls の違反を表示して問題をトラブルシューティングするには、ログ エクスプローラを使用します。
詳細については、VPC Service Controls のトラブルシューティングをご覧ください。