複数の組織リソースの管理

Google Cloud Platform のリソース階層では、組織リソースは下位にあるプロジェクトとフォルダに対する所有権を確立します。Google Workspace アカウントや Cloud Identity アカウントには、それぞれ 1 つの組織リソースが関連付けられます。Google Workspace または Cloud Identity の各アカウントは、example.com のようなプライマリ ドメインにも関連付けられます。複数のドメインを使用する方法について詳しくは、ユーザー エイリアス ドメインまたはセカンダリ ドメインを追加するをご覧ください。Google Workspace アカウントのプライマリ ドメインの変更について詳しくは、Google Workspace のプライマリ ドメインを変更するをご覧ください。

ほとんどのユースケースにおいて、1 つの組織リソースの下にあるフォルダを使用することが最適です。社内のサブ組織や部署を集中管理の対象とせず、独立したエンティティとして維持する場合は、複数の Google Workspace アカウントまたは Cloud Identity アカウントを設定します。アカウントごとに、プライマリ ドメインに関連付けられた単一の組織リソースが作成されます。

複数の組織リソースを使用した場合の影響

ある Google Workspace アカウントまたは Cloud Identity アカウントのユーザーが作成したリソースに、他の Google Workspace アカウントまたは Cloud Identity アカウントのユーザーがアクセスできないようにするためは、複数の組織リソースを使用します。ただし、リソースを複数の組織リソースに分ける場合には、次のような注意点があります。

  • デフォルトでは、1 人のユーザーがすべてのリソースを可視化し、集中管理することはできません。

  • サブ組織の間で共通のポリシーは、各組織リソースに複製する必要があります。

  • 組織リソース間でフォルダを移動することはできません。組織リソース間でプロジェクトを移動するには、こちらのガイドをご覧ください。

  • それぞれの組織リソースに Google Workspace アカウントが必要です。そのため、複数の組織リソースを運用するには、複数の Google Workspace アカウントと、それらの間で ID を管理する機能が必要です。

単一の組織リソースを使用する

サブ組織を個別に維持したいと考える組織では、ほとんどの場合、単一の組織リソースと複数のフォルダでそれを実現できます。Google Workspace アカウントを 1 つ持っている場合、このアカウントは組織リソースにマッピングされ、サブ組織はフォルダにマッピングされます。

組織管理者の選択

組織リソースの IAM 組織管理者として機能するユーザーを選択します(複数のユーザーを選択できます)。

コンソール

組織管理者を追加するには:

  1. Google Workspace または Cloud Identity の特権管理者として Google Cloud コンソールにログインし、[IAM と管理] ページに移動します。

    [IAM と管理] ページを開く

  2. 編集する組織リソースを選択します。

    1. ページの上部にあるプロジェクトのプルダウン リストをクリックします。

    2. [選択元] ダイアログで組織プルダウン リストをクリックし、組織管理者を追加する組織リソースを選択します。

    3. 表示されたリストで組織リソースをクリックして、IAM 権限ページを開きます。

  3. [追加] をクリックして、組織管理者として設定するユーザー(複数も可)のメールアドレスを入力します。

  4. [ロールを選択] プルダウン リストで、[Resource Manager] > [組織管理者] を選択し、[保存] をクリックします。

    組織管理者は次の操作を実行できます。

    • 組織リソースを完全に管理する。Google Workspace または Cloud Identity の特権管理者と Google Cloud 管理者の責任範囲を分離する。

    • 関連する IAM ロールを割り当てることで、重要な機能に対する権限を委譲する。

サブ組織用フォルダの作成

各サブ組織の組織リソースの下にフォルダを作成します。

フォルダを作成するには、親レベルにフォルダ管理者またはフォルダ作成者のロールが必要です。たとえば、組織レベルでフォルダを作成するには、これらのいずれかのロールが組織レベルで必要です。

フォルダの作成中にフォルダ名を割り当てます。フォルダ名は次の要件を満たす必要があります。

  • 名前には文字、数字、スペース、ハイフン、アンダースコアを使用できます。
  • フォルダの表示名の先頭と最後は文字または数字にする必要があります。
  • 名前は 3~30 文字にしてください。
  • 親を共有する別のフォルダと同じ名前は使用できません。

フォルダを作成するには:

Console

フォルダの作成は、UI の [プロジェクトとフォルダを管理] セクションで行います。

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

    [リソースの管理] ページを開く

  2. ページの上部にある組織プルダウン リストから組織リソース名が選択されていることを確認します。

  3. [フォルダを作成] をクリックし、次のいずれかのオプションを選択します。

  4. [フォルダ名] ボックスに、新しいフォルダの名前を入力します。

  5. [宛先] で [参照] をクリックして、新しいフォルダを作成する組織リソースまたはフォルダを選択します。

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

gcloud

Google Cloud CLI を使用して、フォルダをプログラムで作成できます。

gcloud コマンドライン ツールを使用して組織リソースの下にフォルダを作成するには、次のコマンドを実行します。

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

親が異なるフォルダを作成するには:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

ここで

  • [DISPLAY_NAME] はフォルダの表示名です。同じ親を持つフォルダと表示名を共有することはできません。表示名の先頭と最後は文字または数字にしてください。表示名には文字や数字以外に、スペース、ハイフン、アンダースコアを使用できますが、長さは 30 文字以下にする必要があります。
  • 親が組織リソースの場合、[ORGANIZATION_ID] は親組織リソースの ID です。
  • 親がフォルダの場合、[FOLDER_ID] は親フォルダの ID です。

API

API リクエストによってフォルダを作成できます。

JSON リクエスト:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

フォルダを作成する curl リクエスト:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

ここで

  • [DISPLAY_NAME] は、新しいフォルダの表示名です。例: My Awesome Folder
  • [ORGANIZATION_NAME] は、フォルダを作成する組織リソースの名前です。例: organizations/123

フォルダ作成に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

オペレーションを取得する curl リクエスト:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

オペレーション取得に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

フォルダ管理者のロールを付与する

作成するサブ組織フォルダごとに、フォルダ管理者のロールをユーザーに付与します。このユーザーは、フォルダとそのサブ組織を管理できます。

フォルダに対するアクセス権を設定するには、親レベルでフォルダ IAM 管理者またはフォルダ管理者のロールが必要です。

Console

  1. Google Cloud コンソールで [リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. 左上にある [組織] プルダウン リストをクリックして、組織リソースを選択します。

  3. 権限を変更するプロジェクトの横にあるチェックボックスをオンにします。

    1. 右側の [情報パネル] の [権限] で、追加するメンバーのメールアドレスを入力します。

    2. [ロールを選択] プルダウン リストで、メンバーに付与するロールを選択します。

    3. [追加] をクリックします。メンバーの新しいロールの追加または更新を確認する通知が表示されます。

gcloud

Google Cloud CLI や API を使用して、フォルダに対するアクセス権をプログラムで構成できます。

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

または

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

ここで

  • [FOLDER_ID] は、新しいフォルダの ID です。
  • [POLICY_FILE] は、フォルダのポリシー ファイルのパスです。

API

setIamPolicy メソッドは、フォルダにアクセス制御ポリシーを設定し、既存のポリシーを置き換えます。resource フィールドは、フォルダのリソース名です。例: folders/1234

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

curl リクエスト:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

ここで

  • [FOLDER_NAME] は、IAM ポリシーが設定されるフォルダの名前です。例: folders/123

サブ組織のロールの制限

フォルダ管理者は、サブ組織のメンバーに対してプロジェクト作成者のロールを制限することができます。組織リソースの IAM ポリシーで、プロジェクト作成者のロールからドメインを削除することもできます。

Google Workspace の特権管理者には、取消不能な組織管理者権限が付与されます。通常、この特権管理者は Google Cloud リソースとリソース ポリシーではなく、ID と ID ポリシーを管理します。

コンソール

Google Cloud コンソールを使用して、デフォルトでユーザーに割り当てられたロールを削除するには:

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

    [リソースの管理] ページを開く

  2. ページの上部にある「組織」プルダウン リストをクリックして、組織リソースを選択します。

  3. 権限を変更する組織リソースのチェックボックスをオンにします。フォルダ リソースがない場合、組織リソースは表示されません。続行するには、IAM ページでロールを取り消す手順をご確認ください。

  4. 右側の [情報パネル] の [権限] で、ユーザーを削除するロールをクリックして展開します。

  5. 展開されたロールのリストで、ロールから削除するプリンシパルの横にある削除アイコンをクリックします。 UI のスクリーンショット

  6. 表示される [プリンシパルを削除しますか?] ダイアログで、[削除] をクリックして、指定したプリンシパルからロールを削除することを確定します。

  7. 削除するロールごとに上の 2 つの手順を繰り返します。

下の図は、2 つの部門で別々のフォルダを使用している組織の例です。エンジニアリング部門と財務部門の責任者が管理権限を持ち、他のユーザーはプロジェクトを作成できません。

階層図

プライマリ組織リソースで複数の組織を管理する

組織に複数の Google Workspace アカウントがある場合、デフォルトで複数の組織リソースが割り当てられます。一元的な可視性と制御を維持するために、1 つの組織リソースをプライマリ組織リソースに選択する必要があります。プライマリ組織リソースに関連付けられた Google Workspace アカウントの特権管理者は、すべてのリソースに対する管理権限を持ち、他の Google Workspace アカウントのユーザーが作成したリソースも管理できます。これらの Google Workspace アカウントのユーザーは、プライマリ組織リソースの下のフォルダにアクセスして、プロジェクトを作成できます。

組織管理者の選択

組織リソースの IAM 組織管理者として機能するユーザーを選択します(複数のユーザーを選択できます)。

コンソール

組織管理者を追加するには:

  1. Google Workspace または Cloud Identity の特権管理者として Google Cloud コンソールにログインし、[IAM と管理] ページに移動します。

    [IAM と管理] ページを開く

  2. 編集する組織リソースを選択します。

    1. ページの上部にあるプロジェクトのプルダウン リストをクリックします。

    2. [選択元] ダイアログで組織プルダウン リストをクリックし、組織管理者を追加する組織リソースを選択します。

    3. 表示されたリストで組織リソースをクリックして、IAM 権限ページを開きます。

  3. [追加] をクリックして、組織管理者として設定するユーザー(複数も可)のメールアドレスを入力します。

  4. [ロールを選択] プルダウン リストで、[Resource Manager] > [組織管理者] を選択し、[保存] をクリックします。

    組織管理者は次の操作を実行できます。

    • 組織リソースを完全に管理する。Google Workspace または Cloud Identity の特権管理者と Google Cloud 管理者の責任範囲を分離する。

    • 関連する IAM ロールを割り当てることで、重要な機能に対する権限を委譲する。

プロジェクト作成者のロールを削除する

リソースが他の組織リソースに作成されないように、組織リソースからプロジェクト作成者のロールを削除します。

コンソール

Google Cloud コンソールを使用して、デフォルトでユーザーに割り当てられたロールを削除するには:

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

    [リソースの管理] ページを開く

  2. ページの上部にある「組織」プルダウン リストをクリックして、組織リソースを選択します。

  3. 権限を変更する組織リソースのチェックボックスをオンにします。フォルダ リソースがない場合、組織リソースは表示されません。続行するには、IAM ページでロールを取り消す手順をご確認ください。

  4. 右側の [情報パネル] の [権限] で、ユーザーを削除するロールをクリックして展開します。

  5. 展開されたロールのリストで、ロールから削除するプリンシパルの横にある削除アイコンをクリックします。 UI のスクリーンショット

  6. 表示される [プリンシパルを削除しますか?] ダイアログで、[削除] をクリックして、指定したプリンシパルからロールを削除することを確定します。

  7. 削除するロールごとに上の 2 つの手順を繰り返します。

Google Workspace アカウントのフォルダを作成する

各 Google Workspace アカウントの組織リソースの下にフォルダを作成します。

フォルダを作成するには、親レベルにフォルダ管理者またはフォルダ作成者のロールが必要です。たとえば、組織レベルでフォルダを作成するには、これらのいずれかのロールが組織レベルで必要です。

フォルダの作成中にフォルダ名を割り当てます。フォルダ名は次の要件を満たす必要があります。

  • 名前には文字、数字、スペース、ハイフン、アンダースコアを使用できます。
  • フォルダの表示名の先頭と最後は文字または数字にする必要があります。
  • 名前は 3~30 文字にしてください。
  • 親を共有する別のフォルダと同じ名前は使用できません。

フォルダを作成するには:

Console

フォルダの作成は、UI の [プロジェクトとフォルダを管理] セクションで行います。

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

    [リソースの管理] ページを開く

  2. ページの上部にある組織プルダウン リストから組織リソース名が選択されていることを確認します。

  3. [フォルダを作成] をクリックし、次のいずれかのオプションを選択します。

  4. [フォルダ名] ボックスに、新しいフォルダの名前を入力します。

  5. [宛先] で [参照] をクリックして、新しいフォルダを作成する組織リソースまたはフォルダを選択します。

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

gcloud

Google Cloud CLI を使用して、フォルダをプログラムで作成できます。

gcloud コマンドライン ツールを使用して組織リソースの下にフォルダを作成するには、次のコマンドを実行します。

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --organization=[ORGANIZATION_ID]

親が異なるフォルダを作成するには:

gcloud resource-manager folders create \
   --display-name=[DISPLAY_NAME] \
   --folder=[FOLDER_ID]

ここで

  • [DISPLAY_NAME] はフォルダの表示名です。同じ親を持つフォルダと表示名を共有することはできません。表示名の先頭と最後は文字または数字にしてください。表示名には文字や数字以外に、スペース、ハイフン、アンダースコアを使用できますが、長さは 30 文字以下にする必要があります。
  • 親が組織リソースの場合、[ORGANIZATION_ID] は親組織リソースの ID です。
  • 親がフォルダの場合、[FOLDER_ID] は親フォルダの ID です。

API

API リクエストによってフォルダを作成できます。

JSON リクエスト:

request_json= '{
  display_name: DISPLAY_NAME,
  parent: ORGANIZATION_NAME
}'

フォルダを作成する curl リクエスト:

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v3/folders

ここで

  • [DISPLAY_NAME] は、新しいフォルダの表示名です。例: My Awesome Folder
  • [ORGANIZATION_NAME] は、フォルダを作成する組織リソースの名前です。例: organizations/123

フォルダ作成に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  }
}

オペレーションを取得する curl リクエスト:

curl -H "Authorization: Bearer ${bearer_token}" \
https://cloudresourcemanager.googleapis.com/v3/operations/fc.123456789

オペレーション取得に対するレスポンス:

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v3.Folder",
    "name": "folders/12345",
    "parent": "organizations/123",
    "displayName": "[DISPLAY_NAME]",
    "lifecycleState": "ACTIVE",
    "createTime": "2017-07-19T23:29:26.018Z",
    "updateTime": "2017-07-19T23:29:26.046Z"
  }
}

フォルダ管理者のロールを付与する

作成された各フォルダで、1 人以上のユーザーにフォルダ管理者のロールを付与します。このユーザーには、フォルダとそれが表すサブ組織の管理権限が委任されます。

フォルダに対するアクセス権を設定するには、親レベルでフォルダ IAM 管理者またはフォルダ管理者のロールが必要です。

Console

  1. Google Cloud コンソールで [リソースの管理] ページを開きます。

    [リソースの管理] ページを開く

  2. 左上にある [組織] プルダウン リストをクリックして、組織リソースを選択します。

  3. 権限を変更するプロジェクトの横にあるチェックボックスをオンにします。

    1. 右側の [情報パネル] の [権限] で、追加するメンバーのメールアドレスを入力します。

    2. [ロールを選択] プルダウン リストで、メンバーに付与するロールを選択します。

    3. [追加] をクリックします。メンバーの新しいロールの追加または更新を確認する通知が表示されます。

gcloud

Google Cloud CLI や API を使用して、フォルダに対するアクセス権をプログラムで構成できます。

gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderEditor
gcloud resource-manager folders \
  add-iam-policy-binding [FOLDER_ID] \
  --member=user:email1@example.com \
  --role=roles/resourcemanager.folderViewer

または

gcloud resource-manager folders \
  set-iam-policy [FOLDER_ID] [POLICY_FILE]

ここで

  • [FOLDER_ID] は、新しいフォルダの ID です。
  • [POLICY_FILE] は、フォルダのポリシー ファイルのパスです。

API

setIamPolicy メソッドは、フォルダにアクセス制御ポリシーを設定し、既存のポリシーを置き換えます。resource フィールドは、フォルダのリソース名です。例: folders/1234

 request_json= '{
   policy: {
     version: "1",
     bindings: [
       {
         role: "roles/resourcemanager.folderEditor",
         members: [
           "user:email1@example.com",
           "user:email2@example.com",
         ]
       }
     ]
   }
 }'

curl リクエスト:

   curl -X POST -H "Content-Type: application/json" \
   -H "Authorization: Bearer ${bearer_token}" \
   -d "$request_json" \
   https://cloudresourcemanager.googleapis.com/v3/[FOLDER_NAME]:setIamPolicy

ここで

  • [FOLDER_NAME] は、IAM ポリシーが設定されるフォルダの名前です。例: folders/123

フォルダ管理者は、関連するドメインのユーザーにプロジェクト作成者のロールを付与できます。

下の図は、プライマリ ドメインがセカンダリ ドメインから隔離されている組織の例です。2 つのドメインは、それぞれ独自の Google Workspace アカウントを持っています。hypothetical.com がプライマリ組織リソースです。

階層図