ユニットをテナントに関連付ける

このクイックスタートでは、デプロイされた VM ユニットをテナント リソースに関連付け、テナントが所有する専用のテナント プロジェクトに VM をプロビジョニングするように SaaS サービスを変更します。

このアプローチにより、リソースの分離が強化され、テナントごとにリソースを個別に管理し、SaaS サービスに優れたセキュリティとコンプライアンスを提供できます。

App Lifecycle Manager を使用して VM をデプロイするクイックスタートのシナリオを基に、デプロイされた VM ユニットをテナント リソースに関連付け、テナントが所有する専用プロジェクトに VM をプロビジョニングするように変更します。

  1. App Lifecycle Manager でテナント リソースを作成します。
  2. VM をテナント リソースに関連付けます。
  3. App Lifecycle Manager と Terraform 構成を構成して、リソースを別のテナント プロジェクトにデプロイします。
  4. クロス プロジェクトのデプロイ時に発生する一般的な権限と API の有効化の問題に対処します。

このクイックスタートを完了すると、複数のテナントを含む SaaS サービスの基盤が作成されます。この基盤では、テナントを作成してユニットに関連付けることで、テナント レベルの構成とポリシーを設定できます。

始める前に

テナントを作成したり、テナントをユニットに関連付けたりする前に、App Lifecycle Manager エコシステムの基本について理解し、SaaS サービスを作成しておく必要があります。

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

  2. App Lifecycle Manager を使用して VM をデプロイする。これには、Terraform 構成、Artifact Registry リポジトリ、SaaS サービス、ユニットの種類、ユニット、コンポーネント(terraform-files.zip を含む)の作成が含まれます。

    • クイックスタートの始める前にセクションに記載されている API が、プロデューサー プロジェクトで有効になっていることを確認します。
    • プロデューサー プロジェクト内で必要なサービス アカウントと IAM ロールが付与されていることを確認します。これには、ユーザーが作成したサービス アカウントと、プロデューサー プロジェクトの service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.com アカウントに付与された権限が含まれます。
  3. プロデューサー プロジェクトテナント プロジェクトは、テナント リソースを作成して関連付ける前に作成する必要があります。詳細については、テナント プロジェクトを設定するをご覧ください。

テナント リソースを作成して関連付ける

テナントを使用してユニット リソースをグループ化できます。顧客を表すプロデューサー プロジェクトの SaaS サービスにテナント リソースを作成します。

  1. Google Cloud コンソールで、[App Lifecycle Manager] > [テナント] に移動します。

    [テナント] に移動

  2. [作成] をクリックします。

  3. [テナントを作成] ページの [テナント名] ボックスに「vm-quickstart-tenant」と入力します。

  4. [SaaS サービス] ボックスで、vm-quickstart-saas-offering を選択します。

  5. [リージョン] プルダウンで、us-central1 を選択します。

  6. [ユニットを追加] をクリックします。[新しいユニット] セクションが表示されます。

  7. [単位] プルダウンで、projects/YOUR-PROJECT-NAME/locations/us-central1/units/vm-quickstart-unit 単位を選択します。

  8. [完了] をクリックして、vm-quickstart-unit リソースを vm-quickstart-tenant リソースに関連付けます。

  9. [作成] をクリックして、テナント リソースを作成します。vm-quickstart-tenant リソースを作成し、vm-quickstart-unit リソースに関連付けました。この関連付けは、主にGoogle Cloud コンソール内の組織タグとして機能し、どのユニットがどのテナントに属しているかを特定するのに役立ちます。

テナント リリースを作成する

  1. Google Cloud コンソールで、[App Lifecycle Manager] > [リリース] に移動します。

    [リリース] に移動

  2. [リリース] ページで、[作成] をクリックします。

  3. [リリースを作成] ページの [リリース名] ボックスに「vm-quickstart-tenant-release」と入力します。

  4. [単位の種類] ボックスで、[vm-quickstart-unit-kind] を選択します。[Next] をクリックします。

  5. [ブループリントの選択] ステップで、[Artifact Registry から既存のイメージを選択する] 切り替えをクリックします。

  6. [ストア ブループリント] ステップで、[参照] をクリックし、vm-quickstart-tenant-blueprint に関連付けられたアーティファクトを選択します。[次へ] をクリックします。

  7. [作成] をクリックします。vm-quickstart-tenant-release リソースが正常に作成されました。

テナント プロジェクトを作成してユニットをデプロイする

App Lifecycle Manager を使用して VM をデプロイするクイックスタートでは、SaaS サービス構成を含む同じプロジェクトに App Lifecycle Manager リソースをプロビジョニングします。

このクイックスタートでは、リソース プロビジョニングをプロデューサー プロジェクトではなく、テナント プロジェクトに転送します。

ユニットのプロビジョニング時に、変更された変数 tenant_project_idtenant_project_number を渡す必要があります。

  1. terraform-vm.zip ファイルをデプロイするテナント プロジェクトを作成します。

    gcloud projects create quickstart-tenant-project --name="SaaS Tenant A Project"
    
  2. テナント プロジェクトで API を有効にして IAM ロールを付与します。テナント プロジェクトにユニットをデプロイするには、Compute Engine API を有効にして、テナント プロジェクトに IAM ロールを付与する必要があります。

テナント プロジェクトで API を有効にする

Google Cloud コンソールを使用して、テナント プロジェクトで Compute Engine API を有効にします。

  1. プロジェクト セレクタに移動します。

    プロジェクト セレクタに移動

  2. [プロジェクトを選択] をクリックします。

  3. [quickstart-tenant-project] を選択します。

  4. Compute Engine API を有効にします。

    API を有効にするために必要なロール

    API を有効にするには、serviceusage.services.enable 権限を含む Service Usage 管理者 IAM ロール(roles/serviceusage.serviceUsageAdmin)が必要です。詳しくは、ロールを付与する方法をご覧ください。

    API の有効化

  5. プロジェクトに次のロール(複数の場合あり)が割り当てられていることを確認します。 roles/compute.admin

    ロールを確認する

    1. Google Cloud コンソールで、[IAM] ページに移動します。

      IAM に移動
    2. プロジェクトを選択します。
    3. [プリンシパル] 列で、自分または自分が所属するグループの行をすべて確認します。所属するグループについては、管理者にお問い合わせください。

    4. 自分のメールアドレスを含む行の [ロール] 列で、ロールのリストに必要なロールが含まれているかどうか確認します。

    ロールを付与する

    1. Google Cloud コンソールで、[IAM] ページに移動します。

      IAM に移動
    2. プロジェクトを選択します。
    3. [ アクセスを許可] をクリックします。
    4. [新しいプリンシパル] フィールドに、ユーザー ID を入力します。 これは通常、Google アカウントのメールアドレスです。

    5. [ロールを選択] をクリックし、ロールを検索します。
    6. 追加のロールを付与するには、 [別のロールを追加] をクリックして各ロールを追加します。
    7. [保存] をクリックします。

テナント プロジェクト変数を使用してユニットをプロビジョニングする

プロデューサー プロジェクトから、テナント プロジェクトの入力変数を使用して新しいユニットをプロビジョニングします。

  1. プロジェクト セレクタに移動します。

    プロジェクト セレクタに移動

  2. [プロジェクトを選択] をクリックします。

  3. プロデューサー プロジェクトを選択します。

  4. Google Cloud コンソールで、[App Lifecycle Manager] > [Units] に移動します。

    [ユニット] に移動

  5. vm-quickstart-unit リソースを選択します。

  6. [PROVISION] をクリックします。

  7. vm-quickstart-tenant-release リソースを選択します。

  8. テナント プロジェクトで権限を付与したアクチュエーション サービス アカウントを選択します。

  9. [入力変数] セクションで、次の操作を行います。

    • tenant_project_id 変数は、variables.tf で定義したとおりに表示されます。
    • [テナント プロジェクト ID] ボックスに「quickstart-tenant-project」と入力します。
  10. [PROVISION] をクリックします。

App Lifecycle Manager は、指定された動作用のサービス アカウントを使用して Infrastructure Manager をトリガーします。Infrastructure Manager は tenant_project_id 変数を読み取り、そのテナント プロジェクト内に VM を作成します。

クリーンアップ

このページで使用したリソースについて、 Google Cloud アカウントに課金されないようにするには、次の手順を実施します。

  1. Google Cloud コンソールで [リソースの管理] ページに移動します。

    [リソースの管理] に移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. プロンプトでプロジェクト ID を入力し、[シャットダウン] をクリックします。

次のステップ