このドキュメントでは、App Hub でホスト プロジェクトを設定する方法について説明します。
ホスト プロジェクトは、既存の App Hub ユーザー向けにサポートされている以前のアプリケーション設定モデルです。新しい実装では、アプリ管理用フォルダを設定して、フォルダレベルの境界を定義することをおすすめします。フォルダレベルの境界では、Application Design Center や Gemini Cloud Assist など、アプリケーション中心の Google Cloud 機能の完全なセットにアクセスできます。アプリケーション管理に使用できるモデルの主な違いについては、アプリケーション設定モデルを選択するをご覧ください。
ホスト プロジェクトとサービス プロジェクトの概要
ホスト プロジェクトは、App Hub アプリケーションとしてグループ化するサービスとワークロードを含む他のプロジェクトを接続する Google Cloudプロジェクトです。ホスト プロジェクトに接続するプロジェクトは、サービス プロジェクトと呼ばれます。
ホスト プロジェクトは、自身にアタッチすることで、独自のリソースを直接管理できます。ただし、単一プロジェクトの設定には、単一プロジェクト アプローチを使用することをおすすめします。
始める前に
Google Cloud プロジェクトをホスト プロジェクトとして設定し、サービス プロジェクトを接続する前に、次の手順を完了します。
- ホスト プロジェクトとして使用する Google Cloud プロジェクトを特定します。既存のプロジェクトを使用することも、新しいプロジェクトを作成することもできます。
サービス プロジェクトとしてホスト プロジェクトに接続する Google Cloud プロジェクトを特定します。App Hub アプリケーションに登録するサービスとワークロードを含むすべてのプロジェクトを特定する必要があります。他のプロジェクトのリソースは App Hub に表示されません。サービス プロジェクトには次の要件があります。
- サービス プロジェクトは、ホスト プロジェクトと同じ組織に存在する必要があります。
- サービス プロジェクトは、一度に 1 つのホスト プロジェクトにのみ接続できます。
- ホスト プロジェクトは、独自のリソースを管理するためにサービス プロジェクトとして機能できますが、サービス プロジェクトとして他のホスト プロジェクトに接続することはできません。
必要なロール
サービス プロジェクトをホスト プロジェクトに接続するために必要な権限を取得するには、ホスト プロジェクトと、接続する各サービス プロジェクトに対する App Hub 管理者 (roles/apphub.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
ホスト プロジェクトを設定する
Google Cloud プロジェクトをホスト プロジェクトとして構成する手順は次のとおりです。
コンソール
Google Cloud コンソールで、プロジェクト選択ツールを使用して、ホスト プロジェクトとして構成するプロジェクトを選択します。
-
Enable the required API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Google Cloud CLI の最新バージョンがインストールされていることを確認します。
gcloud components updateホスト プロジェクトとして構成する Google Cloud プロジェクトのプロジェクト ID を確認します。
ホスト プロジェクトをコマンドのデフォルト プロジェクトとして設定します。
gcloud config set project HOST_PROJECT_IDHOST_PROJECT_IDは、ホスト プロジェクトとして構成するプロジェクトの ID に置き換えます。ホスト プロジェクトで App Hub API を有効にします。
gcloud services enable apphub.googleapis.com \ --project=HOST_PROJECT_ID
サービス プロジェクトの接続
App Hub アプリケーションに登録するサービスとワークロードを含むサービス プロジェクトをホスト プロジェクトに接続します。
コンソール
Google Cloud コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。
App Hub から [設定] ページに移動します。
[プロジェクトを接続] をクリックします。
次のいずれかの方法で、ホスト プロジェクトに接続するサービス プロジェクトを選択します。
- プロジェクトのリストで、サービス プロジェクトとして関連付けるプロジェクトのチェックボックスをオンにします。
- プロジェクト名をフィルタして、チェックボックスをオンにします。
[選択] をクリックします。
[接続されたサービス プロジェクト] テーブルに、選択したサービス プロジェクトが表示されます。
[閉じる] をクリックします。
gcloud
- サービス プロジェクトとして構成する各 Google Cloud プロジェクトのプロジェクト ID を確認します。
各サービス プロジェクトを接続します。
gcloud apphub service-projects add SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID次のように置き換えます。
SERVICE_PROJECT_ID: 接続するサービス プロジェクトの ID。HOST_PROJECT_ID: ホスト プロジェクトの ID。
ホスト プロジェクトに接続するサービス プロジェクトごとに、上記の手順を繰り返します。
Terraform
Terraform を使用してサービス プロジェクトをホスト プロジェクトに接続するには、google_apphub_service_project_attachment リソースを使用します。次に例を示します。
resource "google_apphub_service_project_attachment" "example" {
service_project_attachment_id = google_project.service_project.project_id
depends_on = [time_sleep.wait_120s]
}
resource "google_project" "service_project" {
project_id ="project-1"
name = "Service Project"
org_id = "123456789"
deletion_policy = "DELETE"
}
resource "time_sleep" "wait_120s" {
depends_on = [google_project.service_project]
create_duration = "120s"
}
サービス プロジェクトをホスト プロジェクトから接続解除するには、サービス プロジェクトを削除するをご覧ください。
App Hub のロールと権限を割り当てる
ホスト プロジェクトとサービス プロジェクトの App Hub ユーザーに適切な App Hub のロールと権限を付与する手順は次のとおりです。
コンソール
Google Cloud コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。
[IAM] ページに移動します。
[ アクセスを許可] をクリックします。アクセス権の付与ペインが開きます。
[新しいプリンシパル] フィールドに、App Hub へのアクセス権を付与するプリンシパルのメールアドレスを入力します。
[ロールを選択] をクリックし、[フィルタ] フィールドに「App Hub」と入力します。
プリンシパルに割り当てる App Hub IAM ロールを選択し、[保存] をクリックします。
ホスト プロジェクトに接続した App Hub サービス プロジェクトごとに、前のプロセスを繰り返して、同じユーザーに同じロールを付与します。
gcloud
ホスト プロジェクトとサービス プロジェクトとして構成した各 Google Cloud プロジェクトのプロジェクト ID を確認します。
ホスト プロジェクトのプリンシパルにアクセス権を付与します。
gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member='user:EMAIL_ADDRESS' \ --role='ROLE_NAME'次のように置き換えます。
HOST_PROJECT_ID: ホスト プロジェクトの ID。EMAIL_ADDRESS: ホスト プロジェクトで App Hub へのアクセス権を取得する必要があるプリンシパルのメールアドレス。この値は、username@yourdomainの形式(例:my.user@example.com)にする必要があります。ROLE_NAME: プリンシパルに割り当てる App Hub IAM ロール(例:roles/apphub.admin)。
ホスト プロジェクトにアタッチした App Hub サービス プロジェクトごとに、同じユーザーに同じロールを付与します。
gcloud projects add-iam-policy-binding SERVICE_PROJECT_ID \ --member='user:EMAIL_ADDRESS' \ --role='ROLE_NAME'SERVICE_PROJECT_IDは、アクセス権を付与するサービス プロジェクトの ID に置き換えます。
VPC Service Controls を設定する
VPC Service Controls の境界でアプリケーションを保護するには、アプリケーションを作成する前に、App Hub のホスト プロジェクトとサービス プロジェクトを境界に追加します。詳細については、App Hub で VPC Service Controls を使用するをご覧ください。
省略可: 指標スコープを構成する
Cloud Monitoring でホスト プロジェクト内のアプリケーションのシステム指標を表示するには、接続されたサービス プロジェクトをホスト プロジェクトの指標スコープに追加します。ホスト プロジェクトは時系列データのスコープ対象プロジェクトとして機能し、データのグラフ作成とモニタリングを可能にします。詳細と構成手順については、指標スコープを構成すると API を使用して指標スコープを構成するをご覧ください。
サービス プロジェクトを削除する
サービス プロジェクトをホスト プロジェクトから切り離す手順は次のとおりです。
コンソール
Google Cloud コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。
App Hub から [設定] ページに移動します。
ホスト プロジェクトから削除するサービス プロジェクトのチェックボックスをオンにします。
[プロジェクトを接続解除] をクリックします。
[接続されたサービス プロジェクト] テーブルが更新され、ホスト プロジェクトに接続されたプロジェクトのみが表示されます。
gcloud
- ホスト プロジェクトから削除するサービス プロジェクトごとに、プロジェクト ID を確認します。
各サービス プロジェクトを削除します。
gcloud apphub service-projects remove SERVICE_PROJECT_ID \ --project=HOST_PROJECT_ID次のように置き換えます。
SERVICE_PROJECT_ID: 削除するサービス プロジェクトの ID。HOST_PROJECT_ID: ホスト プロジェクトの ID。
ホスト プロジェクトから削除するサービス プロジェクトごとに、上記の手順を繰り返します。
サービス プロジェクトをホスト プロジェクトから削除する場合は、以前に指標スコープを構成した場合、ホスト プロジェクトの指標スコープからも削除することを検討してください。詳細については、指標スコープからプロジェクトを削除するをご覧ください。