複数の組織の管理

Google Cloud Platform のリソース階層では、組織ノードは下位にあるプロジェクトとフォルダに対する所有権を確立します。G Suite や Cloud Identity のアカウントが関連付けられている組織ノードは 1 つのみです。G Suite や Cloud Identity の各アカウントは、1 つのドメイン(例: example.com)とも関連付けられています。

ほとんどの場合、使用するフォルダはすべて 1 つの組織ノードの下に置くのがおすすめです。しかし、社内のサブ組織や部署を集中管理の対象とせず、独立したエンティティとして維持したい場合は、複数の G Suite アカウントまたは Cloud Identity アカウントをセットアップすることで可能となります。アカウントごとに、1 つのドメインに関連付けられた 1 つの組織ノードが作成されるためです。

複数の組織ノードを使用した場合の影響

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

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

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

  • 組織ノード間でプロジェクトやフォルダの移動を行う場合、サポート リクエストが必要になります。セルフサービスでは実行できません。

  • それぞれの組織ノードに G Suite アカウントが必要です。つまり、複数の組織ノードを使用する場合は、複数の G Suite アカウントが必要となります。これらの ID を統括管理できなければなりません。

単一の組織ノードの使用

サブ組織を個別に維持したいと考える組織では、ほとんどの場合、単一の組織ノードと複数のフォルダでそれを実現できます。G Suite アカウントが 1 つあれば、このアカウントを組織ノードにマッピングし、サブ組織をフォルダにマッピングします。

組織管理者の選択

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

Console

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

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

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

  2. 編集する組織を選択します。

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

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

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

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

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

  5. 組織管理者は組織のすべてを管理できます。また、G Suite や Cloud Identity の特権管理者と GCP 管理者の責任範囲が分離されます。

  6. 組織管理者は、関連する Cloud IAM 役割を割り当てることで、重要な機能に対する権限を委譲できます。

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

サブ組織のフォルダを組織ノードの下に作成します。

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

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

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

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

Console

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

  1. GCP Console で [リソースの管理] ページに移動します。

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

  2. [フォルダを作成] をクリックします。

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

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

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

gcloud

gcloud コマンドライン ツールを使用すると、フォルダをプログラムで作成できます。

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

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

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

gcloud alpha 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]"
}'

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

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders?parent=[ORGANIZATION_NAME]

ここで:

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

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

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

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

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

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

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.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 Platform Console で、[リソースの管理] ページを開きます。

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

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

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

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

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

    UI のスクリーンショット

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

gcloud

gcloud コマンドライン ツールまたは API を使用すると、フォルダに対するアクセス権をプログラムで構成できます。

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

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

または:

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

ここで:

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

API

SetsIamPolicy は、フォルダにアクセス制御ポリシーを設定します。既存のポリシーは置換されます。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/v2/[FOLDER_NAME]:setIamPolicy

ここで:

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

サブ組織の役割の制限

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

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

Console

Google Cloud Platform Console で、ユーザーにデフォルトで割り当てられた役割を削除するには:

  1. GCP Console で [リソースの管理] ページに移動します。

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

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

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

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

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

  6. 表示された [メンバーを削除しますか?] ダイアログで [削除] をクリックし、指定したメンバーから役割を削除します。

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

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

階層図

複数の組織ノードの使用

組織に複数の G Suite アカウントがある場合、デフォルトで複数の組織ノードが割り当てられます。可視化を維持し、集中管理を行うには、1 つの組織ノードをマスター組織ノードにする必要があります。マスター組織ノードに関連付けられた G Suite アカウントの特権管理者は、すべてのリソースに対する管理権限を持ち、他の G Suite アカウントのユーザーが作成したリソースも管理できます。これらの G Suite アカウントのユーザーは、マスター組織ノードの下のフォルダにアクセスして、プロジェクトを作成できます。

組織管理者の選択

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

Console

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

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

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

  2. 編集する組織を選択します。

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

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

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

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

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

  5. 組織管理者は組織のすべてを管理できます。また、G Suite や Cloud Identity の特権管理者と GCP 管理者の責任範囲が分離されます。

  6. 組織管理者は、関連する Cloud IAM 役割を割り当てることで、重要な機能に対する権限を委譲できます。

プロジェクト作成者の役割を削除する

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

Console

Google Cloud Platform Console で、ユーザーにデフォルトで割り当てられた役割を削除するには:

  1. GCP Console で [リソースの管理] ページに移動します。

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

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

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

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

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

  6. 表示された [メンバーを削除しますか?] ダイアログで [削除] をクリックし、指定したメンバーから役割を削除します。

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

G Suite アカウント用フォルダの作成

G Suite アカウントのフォルダを組織ノードの下に作成します。

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

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

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

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

Console

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

  1. GCP Console で [リソースの管理] ページに移動します。

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

  2. [フォルダを作成] をクリックします。

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

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

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

gcloud

gcloud コマンドライン ツールを使用すると、フォルダをプログラムで作成できます。

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

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

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

gcloud alpha 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]"
}'

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

curl -X POST -H "Content-Type: application/json" \
-H "Authorization: Bearer ${bearer_token}" \
-d "$request_json" \
https://cloudresourcemanager.googleapis.com/v2/folders?parent=[ORGANIZATION_NAME]

ここで:

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

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

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

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

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

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

{
  "name": "operations/fc.123456789",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.FolderOperation",
    "displayName": "[DISPLAY_NAME]",
    "operationType": "CREATE"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.resourcemanager.v2.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 Platform Console で、[リソースの管理] ページを開きます。

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

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

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

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

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

    UI のスクリーンショット

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

gcloud

gcloud コマンドライン ツールまたは API を使用すると、フォルダに対するアクセス権をプログラムで構成できます。

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

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

または:

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

ここで:

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

API

SetsIamPolicy は、フォルダにアクセス制御ポリシーを設定します。既存のポリシーは置換されます。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/v2/[FOLDER_NAME]:setIamPolicy

ここで:

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

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

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

階層図

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Resource Manager のドキュメント