ホスト プロジェクトを設定する(従来)

このドキュメントでは、App Hub でホスト プロジェクトを設定し、 複数プロジェクト境界を作成する方法について説明します。

ホスト プロジェクトは、既存の App Hub ユーザー向けにサポートされている従来のアプリケーション設定モデルです。新しい実装では、 アプリ対応フォルダを設定 してフォルダレベルの境界を定義することをおすすめします。フォルダレベルの境界を使用すると、App Design Center や Gemini Cloud Assist など、アプリケーション中心の Google Cloud 機能の完全なセットにアクセスできます。アプリケーション管理に使用できる モデルの主な違いについては、 アプリケーション設定モデルを選択するをご覧ください。

ホスト プロジェクトとサービス プロジェクトの概要

ホスト プロジェクトは、App Hub アプリケーションとしてグループ化するサービスと ワークロードを含む他のプロジェクトを接続する Google Cloud プロジェクトです。ホスト プロジェクトに接続するプロジェクトは、 サービス プロジェクトと呼ばれます。ホスト プロジェクトとサービス プロジェクトの接続によって、複数プロジェクト 境界が定義されます。

ホスト プロジェクトは、自身に接続することで、独自のリソースを直接管理できます。 ただし、単一プロジェクトの設定では、 単一プロジェクト アプローチを使用することをおすすめします。

始める前に

プロジェクトをホスト プロジェクトとして設定し、サービス プロジェクトを接続する前に、次の手順を完了します。 Google Cloud

  1. ホスト プロジェクトとして使用する Google Cloud プロジェクトを特定します。 既存のプロジェクトを使用することも、 新しいプロジェクトを作成することもできます。
  2. サービス プロジェクトとしてホスト プロジェクトに接続する Google Cloud プロジェクトを特定します。App Hub アプリケーションに登録するサービスとワークロードを含むすべてのプロジェクトを特定する必要があります。他のプロジェクトのリソースは App Hub に表示されません。サービス プロジェクトには次の要件があります。

    • サービス プロジェクトは、ホスト プロジェクトと同じ 組織に存在している必要があります。
    • サービス プロジェクトは、一度に 1 つのホスト プロジェクトにのみ接続できます。
    • ホスト プロジェクトは、自身のリソースを管理するために、自身のサービス プロジェクトとして機能できますが、他のホスト プロジェクトにサービス プロジェクトとして接続することはできません。
    • アプリケーション管理用に構成した フォルダの子孫ではないホスト プロジェクトとサービス プロジェクトを選択します。この分離により、フォルダ内のすべてのリソースが同じタイプの設定モデルで管理されます。

必要なロール

サービス プロジェクトをホスト プロジェクトに接続するために必要な権限を取得するには、ホスト プロジェクトと接続する各サービス プロジェクトに対するApp Hub 管理者 roles/apphub.admin)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

ホスト プロジェクトを設定する

プロジェクトをホスト プロジェクトとして構成する手順は次のとおりです。 Google Cloud

コンソール

  1. コンソールで、プロジェクト選択ツールを使用してプロジェクトを選択します。 Google Cloud

  2. App Hub から [概要] ページに移動します。

    [概要] に移動

  3. [App Hub を設定] をクリックします。

  4. [App Hub を有効にする] ページで、[完全な設定] を選択して複数プロジェクト境界を作成します。

  5. プロジェクト名と ID をメモします。この情報はホスト プロジェクトを識別し、これらの値を使用してアクセス権を付与します。

  6. 有効にする API のリストを確認します。 一部の API には関連費用が発生します。 API の費用について詳しくは、こちらをご覧ください。 または、各 API をクリックして関連する費用を確認してください。

  7. [続行] をクリックします。

  8. [境界を定義] タブで、プロジェクト情報を確認します。

  9. [**プロジェクトを追加**] をクリックして、境界にサービス プロジェクトを追加するか、後で追加します。

  10. [続行] をクリックします。

  11. [**アクセス権の付与**] タブで、プロジェクトの管理者に適切な [IAM ロールと権限] を選択します。 プロダクト全体で推奨されるアプリケーション中心のロールの一覧については、 Google Cloud ユーザーにアプリケーション中心のロールを付与するをご覧ください。

  12. [新しいプリンシパル] ボックスに、プロジェクト内のアプリケーション中心のタスクに対する管理者アクセス権を持つユーザー、グループ、サービス アカウントを入力します。

  13. [ロールを付与] をクリックし、[完了] をクリックします。

後で、[IAM] ページからプリンシパルに追加の IAM ロールを付与できます。詳細については、 コンソールを使用して IAM ロールを付与する Google Cloud をご覧ください

gcloud

  1. コンソールで Cloud Shell をアクティブにします。 Google Cloud

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です 。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています 。セッションが初期化されるまで数秒かかることがあります。

  2. 最新バージョンの Google Cloud CLI がインストールされていることを確認します。

    gcloud components update
    
  3. ホスト プロジェクトとして構成する プロジェクトのプロジェクト ID Google Cloud を確認します。

  4. コマンドのデフォルト プロジェクトとしてホスト プロジェクトを設定します。

    gcloud config set project HOST_PROJECT_ID
    

    HOST_PROJECT_ID は、ホスト プロジェクトとして構成するプロジェクトの ID に置き換えます。

  5. ホスト プロジェクトで App Hub API を有効にします。

    gcloud services enable apphub.googleapis.com \
        --project=HOST_PROJECT_ID
    

サービス プロジェクトを追加する

サービス プロジェクトをホスト プロジェクトに接続して、アプリケーション管理境界に追加します。

サービス プロジェクトをホスト プロジェクトに接続して複数プロジェクト境界を作成する手順は次のとおりです。

コンソール

  1. コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。 Google Cloud

    [ようこそ] に移動

  2. App Hub から [境界設定] ページに移動します。

    [境界設定] に移動

  3. [プロジェクトを追加] をクリックします。

  4. ホスト プロジェクトに接続して境界に追加するサービス プロジェクトを、次のいずれかの方法で選択します。

    • プロジェクトのリストで、サービス プロジェクトとして接続するプロジェクトのチェックボックスをオンにします。
    • プロジェクト名をフィルタして、チェックボックスをオンにします。
  5. [選択] をクリックします。

    [境界内のプロジェクト] テーブルに、選択したサービス プロジェクトが表示されます。接続プロセスが完了するまでに時間がかかることがあります。

  6. サービス プロジェクトのリストが完全であることを確認します。

gcloud

  1. サービス プロジェクトとして構成する各 Google Cloud プロジェクトの プロジェクト ID を確認します。
  2. 各サービス プロジェクトを接続します。

    gcloud apphub service-projects add SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    次のように置き換えます。

    • SERVICE_PROJECT_ID: 接続するサービス プロジェクトの ID。
    • HOST_PROJECT_ID: ホスト プロジェクトの ID。
  3. ホスト プロジェクトに接続するサービス プロジェクトごとに、上記の手順を繰り返します。

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 のロールと権限を付与する手順は次の とおりです。

コンソール

  1. コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。 Google Cloud

    [ようこそ] に移動

  2. [IAM] ページに移動します。

    [IAM] に移動

  3. [**アクセスを許可**] をクリックします。 アクセス権の付与 ペインが開きます。

  4. [新しいプリンシパル] フィールドに、App Hub へのアクセス権を付与するプリンシパルのメールアドレスを入力します。

  5. [ロールを選択] をクリックし、[フィルタ] フィールドに「App Hub」と入力します。

  6. プリンシパルに割り当てる App Hub IAM ロール を選択し、[保存]をクリックします。

  7. ホスト プロジェクトに接続した App Hub サービス プロジェクトごとに、上記の手順を繰り返して、同じユーザーに同じロールを付与します。

gcloud

  1. ホスト プロジェクトとサービス プロジェクトとして構成した各 プロジェクトの プロジェクト ID を Google Cloud 確認します。

  2. ホスト プロジェクトのプリンシパルにアクセス権を付与します。

    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)。
  3. ホスト プロジェクトに接続した 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 を使用して指標スコープを構成するをご覧ください。

サービス プロジェクトを削除する

サービス プロジェクトをホスト プロジェクトから接続解除して、 アプリケーション管理境界から削除します。

サービス プロジェクトをホスト プロジェクトから接続解除する手順は次のとおりです。

コンソール

  1. コンソールで、プロジェクト選択ツールを使用してホスト プロジェクトを選択します。 Google Cloud

    [ようこそ] に移動

  2. App Hub から [境界設定] ページに移動します。

    [境界設定] に移動

  3. ホスト プロジェクトから接続解除して境界から削除するサービス プロジェクトのチェックボックスをオンにします。

  4. [プロジェクトを接続解除] をクリックします。

    [境界内のプロジェクト] テーブルが更新され、ホスト プロジェクトに接続されたプロジェクトのみが表示されます。

  5. サービス プロジェクトのリストが更新されていることを確認します。

gcloud

  1. ホスト プロジェクトから削除する各サービス プロジェクトの プロジェクト ID を確認します。
  2. 各サービス プロジェクトを削除します。

    gcloud apphub service-projects remove SERVICE_PROJECT_ID \
        --project=HOST_PROJECT_ID
    

    次のように置き換えます。

    • SERVICE_PROJECT_ID: 削除するサービス プロジェクトの ID。
    • HOST_PROJECT_ID: ホスト プロジェクトの ID。
  3. ホスト プロジェクトから削除するサービス プロジェクトごとに、上記の手順を繰り返します。

ホスト プロジェクトからサービス プロジェクトを削除する場合は、指標スコープを構成している場合は、ホスト プロジェクトの指標スコープからも削除することを検討してください。詳細については、 指標スコープからプロジェクトを削除するをご覧ください。

次のステップ