Google Cloud リソース階層を使用すると、クラウド リソースを組織、フォルダ、プロジェクトの親子構造に整理できます。このようにリソースを構造化すると、アセットの所有権を一元化し、継承されたアクセス制御と組織のポリシーを環境全体に適用できます。
リソース階層の仕組み
階層内の最上位リソースを除き、すべてのリソースの親は 1 つだけです。階層は、最上位の組織(ルート)、グループ化のためのフォルダ(省略可)、プロジェクトで構成されます。プロジェクトには、Compute Engine 仮想マシンやストレージ バケットなどの実際のサービス リソースが含まれます。
構造化された階層を使用すると、次の利点があります。
- 所有権: リソースのライフサイクルを直接の親にバインドします。プロジェクトは、作成した従業員個人ではなく組織に属します。従業員が退職しても、プロジェクトはアクティブで安全なままです。
- 継承: アクセス制御と組織のポリシーのアタッチメント ポイントを提供します。これらのポリシーは階層の下位に継承されます。ロールは、組織やフォルダなどの上位レベルで付与できます。これらのロールはすべての子リソースに継承されるため、個々のプロジェクトごとに権限を手動で構成する必要性が軽減されます。
次の図は、 Google Cloud リソース階層を示しています。
組織リソース
組織リソースは、エンティティ(会社など)を表し、Google Cloud リソース階層のルートノードとして機能します。主な機能は次のとおりです。
- 組織は、すべてのフォルダとプロジェクト リソースの親として機能します。
- このレベルで適用されるアクセス制御ポリシー(Identity and Access Management(IAM)ロールなど)と組織ポリシーは、組織内のすべてのリソースに継承されます。
- すべての Google Cloud ユーザーに厳密に必要というわけではありませんが、特定の Resource Manager 機能を使用するには組織リソースが必要です。
Google Workspace アカウントまたは Cloud Identity アカウントとの関連付け
Google Workspace または Cloud Identity のアカウントは、組織リソースにアクセスするための前提条件です。
- Google Workspace アカウントまたは Cloud Identity アカウントには、それぞれ 1 つの組織リソースが関連付けられます。
- Google Workspace アカウントや Cloud Identity アカウントを持つユーザーが Google Cloud プロジェクトを作成すると、組織リソースが自動的にプロビジョニングされます。
次の図は、Google Workspace アカウント、Cloud Identity、 Google Cloud リソース階層の関係を示しています。
Google Workspace 特権管理者はドメインの所有権を確認する責任者で、復旧時の連絡窓口となります。このため、Google Workspace 特権管理者にはデフォルトで IAM ロールの割り当て権限が付与されます。 Google Cloud に関連する Google Workspace 特権管理者の主なロールは、組織管理者の IAM ロールをドメイン内の適切なユーザーに割り当てることです。これにより、ユーザーが一般的に求めている Google Workspace と Google Cloudの管理責任の分離がなされます。
管理対象ユーザーのプロジェクト作成ルール
ドメインに組織リソースが存在する場合、プロジェクトの作成には厳格なルールが適用されます。
- 管理対象ユーザー(アカウント ドメインのメンバー)は、組織内にプロジェクトを作成する必要があります。組織リソースに関連付けられているアカウントは、組織リソースに関連付けられていないプロジェクト リソースを作成できません。
- デフォルトでは、新しいプロジェクトはユーザーに関連付けられている組織に属します。
- ユーザーが適切な権限を持っている場合は、プロジェクトの作成時に別の組織リソースを指定できます。それ以外の場合は、デフォルトでホーム組織に設定されます。
組織リソースのメリット
組織リソースを使用する場合、プロジェクト リソースはそれを作成した従業員ではなく組織に属します。つまり、従業員が退職しても、組織はプロジェクト リソースを保持します。プロジェクト リソースは、 Google Cloudの組織リソースのライフサイクルに沿って管理されます。
また、組織管理者はすべてのリソースを集中的に管理します。このロールを持つユーザーは、社内のすべてのプロジェクト リソースを表示、管理できます。これにより、隠れたプロジェクトや不正な管理者が存在しなくなります。
また、組織レベルでロールを付与することもできます。このロールは、組織リソースの下にあるすべてのプロジェクト リソースとフォルダ リソースに継承されます。たとえば、組織レベルでネットワーク管理者のロールをネットワーク チームに付与することで、個別のプロジェクト リソースすべてに対するロールを付与する代わりに、会社内のすべてのプロジェクト リソースに含まれるすべてのネットワークをこのネットワーク チームが管理できるようになります。
組織リソースは、次の属性で定義されます。
- 組織の固有識別子である組織リソース ID。
- 表示名。Google Workspace または Cloud Identity のプライマリ ドメイン名から生成されます。
- 組織リソースの作成時刻。
- 組織リソースの最終更新時刻。
- 組織リソースのオーナー。Directory API の Google Workspace のお客様 ID です。オーナーは組織リソースの作成時に指定します。変更することはできません。
次のコード スニペットは、組織リソースの構造を示します。
{
"creationTime": "2020-01-07T21:59:43.314Z",
"displayName": "my-organization",
"lifecycleState": "ACTIVE",
"name": "organizations/34739118321",
"owner": {
"directoryCustomerId": "C012ba234"
}
}
新しい組織リソース用の最初の許可ポリシーは、Google Workspace ドメインの全体にプロジェクト作成者ロールと請求先アカウント作成者ロールを付与します。これにより、ユーザーは組織リソースの存在前と同様にプロジェクト リソースと請求先アカウントを作成できます。組織リソースの作成時には、他のリソースは作成されません。許可ポリシー、拒否ポリシー、組織のポリシーは階層から継承されます。階層内の各リソースで有効なポリシーは、リソースに直接適用されるポリシーと、祖先から継承されたポリシーを組み合わせたものになります。
フォルダ リソース
フォルダ リソースは、組織リソースとプロジェクト リソースの間のオプションのグループ化メカニズムです。フォルダを使用するには、組織リソースが必要です。フォルダ リソースとその子プロジェクト リソースは、組織リソースの下にあります。
フォルダ リソースを使用すると、プロジェクト間の分離境界を作成できます。組織リソース内のサブ組織として機能します。フォルダ リソースは、社内のさまざまな法人、部門、チームをモデル化できます。たとえば、最初のレベルのフォルダで、組織の主要部門を表すことができます。フォルダ内にはプロジェクトや他のフォルダを作成できるので、サブフォルダで異なるチームを表すことができます。さらに、各チームのフォルダにサブフォルダを追加し、アプリケーションを表すことができます。フォルダ リソースの使用方法については、フォルダを作成するをご覧ください。
組織リソースにフォルダ リソースがあり、適切な表示権限がある場合は、 Google Cloud コンソールにリソースが表示されます。詳細な手順については、フォルダの表示、更新、削除をご覧ください。
フォルダリソースを使用すると、管理権限を委任できます。たとえば、部門の各責任者に、その部門のすべての Google Cloud リソースに対する完全なオーナー権限を付与できます。同様に、フォルダリソースによってリソースに対するアクセス権を制限できます。これにより、ある部門のユーザーに、その部門のフォルダリソース内に限り Google Cloudリソースへのアクセスとリソースの作成を許可できます。
次のコード スニペットはフォルダ リソースの構造を示します。
{
"createTime": "2030-01-07T21:59:43.314Z",
"displayName": "Engineering",
"lifecycleState": "ACTIVE",
"name": "folders/634792535758",
"parent": "organizations/34739118321"
}
組織リソースやプロジェクト リソースと同様に、フォルダ リソースは許可ポリシー、拒否ポリシー、組織のポリシーの継承ポイントとして機能します。フォルダ リソースに付与された IAM ロールは、そのフォルダ内のすべてのプロジェクト リソースとフォルダ リソースに継承されます。
プロジェクト リソース
プロジェクト リソースは、基本的な構成エンティティです。組織リソースとフォルダ リソースには、複数のプロジェクトを含めることができます。 Google Cloudを使用するには、プロジェクト リソースが必要です。これは、すべてのGoogle Cloud サービスの作成、有効化、使用、API の管理、課金の有効化、共同編集者の追加と削除、権限の管理に不可欠です。
すべてのプロジェクト リソースは、次のものから構成されます。
- 2 つの識別子:
- プロジェクト リソース ID。これはプロジェクト リソースの固有識別子です。
- プロジェクト リソース番号。プロジェクトを作成するときに自動的に割り当てられた番号です。これは読み取り専用です。
- 1 つの変更可能な表示名
- プロジェクト リソースのライフサイクルの状態。例: ACTIVE、DELETE_REQUESTED。
- プロジェクトのフィルタリングに使用できるラベルのコレクション。
- プロジェクト リソースが作成された時刻。
次のコード スニペットはプロジェクト リソースの構造を示します。
{
"createTime": "2020-01-07T21:59:43.314Z",
"lifecycleState": "ACTIVE",
"name": "my-project",
"parent": {
"id": "634792535758",
"type": "folder"
},
"projectId": "my-project",
"labels": {
"my-label": "prod"
},
"projectNumber": "464036093014"
}
ほとんどの Google Cloud リソースを操作するには、リクエストごとにプロジェクト リソース識別子を指定する必要があります。プロジェクト リソースは、プロジェクト リソース ID またはプロジェクト リソース番号のいずれかで識別できます。コード スニペットでは、これらは projectId と projectNumber です。
プロジェクト リソース ID は、プロジェクトの作成時に選択したカスタマイズされた名前です。プロジェクトが必要な API を有効にする場合は、新しいプロジェクトを作成するか、プロジェクト リソース ID を使用して既存のプロジェクトを選択します。UI に表示される name 文字列は、プロジェクト リソース ID と同じではありません。
Google Cloud は、プロジェクト リソース番号を自動的に生成します。プロジェクト リソース ID と番号は、Google Cloud コンソールのプロジェクトのダッシュボードで確認できます。プロジェクト識別子の取得方法やプロジェクト リソースの他の管理タスクの詳細については、プロジェクトを作成するをご覧ください。
新しく作成されたプロジェクト リソース用の最初の IAM ポリシーは、プロジェクト作成者にオーナーのロールを付与します。
無料トライアル ユーザー、無料枠ユーザー、Google Workspace と Cloud Identity のお客様を含むすべてのユーザーが、プロジェクト リソースを作成できます。Google Cloud 無料プログラムのユーザーは、プロジェクト内のプロジェクト リソースとサービス リソースのみを作成できます。プロジェクト リソースを階層の最上位に配置できますが、無料試用ユーザーまたは無料枠ユーザーによって作成された場合のみです。Google Workspace と Cloud Identity のお客様は、組織やフォルダのリソースなど、 Google Cloud のリソース階層の他の機能にアクセスできます。詳しくは、Cloud Identity の概要をご覧ください。階層の最上部にあるプロジェクト リソースには親リソースはありませんが、ドメイン用に作成されると、組織リソースに移行できます。プロジェクト リソースの移行の詳細については、組織リソース間でプロジェクトを移行するをご覧ください。
次のステップ
- Google Cloud リソース階層を作成する方法を学習する。
- 管理境界と機能構成について学習する。
- 階層内のすべてのプロジェクト、フォルダ、組織を一覧表示する方法を学習する。