テナント プロジェクトの管理

このページでは、テナント プロジェクトを作成および削除する方法について説明します。

Service Consumer Management API を使用してテナント プロジェクトを作成および構成できます。テナント プロジェクトとは、ある 1 つのサービス ユーザーに専用のマネージド サービス リソースをホストするための Google Cloud プロジェクトのことです。各テナント プロジェクトは、テナンシー ユニットに関連付けられます。

テナンシー ユニットには複数のテナント プロジェクトを含めることができます。それぞれに tag: string 識別子が割り当てられ、これを使用して、プロジェクトの目的を示し、プロビジョニング解除時にそのプロジェクトを参照できます。

作成後、テナント プロジェクトは組織の Google Cloud プロジェクトになります。このプロジェクトは、Google Cloud プロジェクトと同様に管理ツールで操作できます。

テナント プロジェクトの作成

テナント プロジェクトを作成してそれをテナンシー ユニットに追加するには、services.tenancyUnits.addProject メソッドを呼び出します。

次の例では、タグ tag1 を持つ新しいテナント プロジェクトを REST API でテナンシー ユニットに追加します。

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:addProject

呼び出しには次のデータを含めます。

{"tag":"tag1", "project_config":{"folder":"folders/9876543210", "tenant_project_policy":{"policy_bindings":{"role":"roles/owner", "members":"user:bob@example.com"}}, "billing_config":{"billing_account":"billingAccounts/123456-472F22-28F9AA"}}}

この呼び出しは、長時間実行オペレーションを返します。このオペレーションをクエリで使用し、プロジェクトの作成に成功したかどうかを確認します。

新しいテナント プロジェクトには、プロジェクト リーエンが構成されます。リーエンは、偶発的な削除を防ぐ目的でテナント プロジェクトに設定されるプロパティです。リーエンを解除してプロジェクトを削除するには、services.tenancyUnits.removeProject メソッドを呼び出す必要があります。ただし、この保護機能を解除することはおすすめしません。

テナント プロジェクトは、セットアップと構成で指定したフォルダに作成されます。 作成後にプロジェクトを別のフォルダに移動することはおすすめしません。

テナント プロジェクトの構成で指定されている所有者以外に、Service Consumer Management API サービス アカウントがテナント プロジェクトの作成者と所有者になります。ただし、このアカウントを所有者として削除することはおすすめしません。

場合によっては、新しいテナント プロジェクトを作成するのではなく、既存の Google Cloud プロジェクトを更新してテナント プロジェクトにすることもできます既存の Google Cloud プロジェクトをテナンシー ユニットに追加するには、services.tenancyUnits.attachProject メソッドを呼び出します。

テナント プロジェクトの削除

タグ abc が付いているプロジェクトを削除するには、次の例に示すように services.tenancyUnits.removeProject メソッドを呼び出します。

POST https://serviceconsumermanagement.googleapis.com/v1/services/your-service.example.com/projects/12345678901/tenancyUnits/absdef:removeProject

呼び出しには次のデータを含めます。

{"tag":"abc"}

これを実行すると、プロジェクト リーエンが解除され、プロジェクトとその中のすべてのリソースが削除されます。さらに、関連付けられていたメタデータがテナンシー ユニットから削除されます。

これにより、プロジェクトが削除され、そのプロジェクトに関するすべてのメタデータがテナンシー ユニットから削除されます。プロジェクトは削除するがその記録は残しておく場合は、代わりに services.tenancyUnits.deleteProject メソッドを呼び出します。このメソッドは、プロジェクトを削除してメタデータを保持し、そのメタデータに DELETED のステータスを付加します。削除されたプロジェクトの削除を取り消すには、services.tenancyUnits.undeleteProject メソッドを呼び出します。