G-gen の三浦です。当記事では Google Apps Manager(以下、GAM)を使用し、Google Workspace の設定をコマンドライン(以下、CLI)で管理する方法を紹介します。
概要
Google Apps Manager(GAM) とは
Google Apps Manager(GAM)とは、 Google Workspace の管理を CLI で実行するためのツールです。
GAM を使用すると、次のような管理業務を効率化できます。
例 | 説明 |
---|---|
ユーザー・グループ管理 | ユーザー作成・更新・削除やグループメンバーの一括処理ができます。 |
2段階認証の確認 | 全ユーザーの2段階認証(2SV)の有効状況を一覧化し、リマインド通知に使用できます。 |
デバイスの一覧取得 | 組織内のモバイル端末や Chrome デバイス情報を取得し、不審端末を特定できます。 |
共有ドライブ管理 | 共有ドライブの作成やメンバー管理を CLI で実施できます。 |
- 参考 : サードパーティ製ツールを使用して大規模なプロビジョニングを短時間で行う
- 参考 : GAM
注意事項
以下の公式ドキュメントに記載されているとおり、 GAM はオープンソースのサードパーティ製ソリューションです。そのため、Google 社のサポート対象外となります。
検証内容
検証手順は次のとおりです。
項番 | 内容 | 説明 |
---|---|---|
1 | GAM のセットアップ | Cloud Shell を使い、GAM をセットアップします。 |
2 | ユーザー管理 | ユーザー情報の確認、新規作成、削除を行います。 |
3 | グループ管理 | グループの作成、メンバー追加を行います。 |
4 | 共有ドライブの作成 | 共有ドライブの作成、メンバー追加を行います。 |
GAM のセットアップ
[Google Cloud] GAM をインストール
Google Cloud (旧称 GCP )コンソール(https://console.cloud.google.com)にログインし、 Cloud Shell を有効化します。
- 参考 : Cloud Shell を使用する
以下のコマンドで GAM のインストーラーをダウンロードして実行します。
bash <(curl -s -S -L https://git.io/gam-install)
以下のプロンプトが順に表示されます。指示のとおりに入力して進めます。
# Linux 環境のため "N" を入力 Can you run a full browser on this machine? (usually Y for MacOS, N for Linux if you SSH into this machine) N # セットアップを続けるために "yes" を入力 GAM is now installed. Are you ready to set up a Google API project for GAM? (yes or no) yes # Google Workspace の管理者のメールアドレスを入力 Please enter your Google Workspace admin email address: admin@mail.com
[Google Workspace] GAM アプリから Google Workspace へのアクセス許可
以下の手順が表示されます。指示のとおりに入力して進めます。この間、ターミナルは操作せず、そのままにします。

1.
の上部に表示されている URL にアクセスし、[新しいアプリを設定] を選択します。

手順2.
に表示されている ID を入力し、[検索] を選択します。GAM Project Creation
が表示されるので、選択します。


GAM 経由で操作する範囲を選択し、[続行] を選択します。特定の組織部門のみを管理する場合は、対象の組織部門を選択します。

[信頼できる] を選択し、[続行] を選択します。

内容を確認し、[完了] を選択します。

設定が完了したら、 Cloud Shell のターミナルに戻ります。 Enter キーを押下すると、以下が表示されます。

表示された URL にアクセスし、GAM に対して管理者アカウントへのアクセスを許可します。

前手順で [許可] を選択すると、以下エラーが表示されるので、URL をコピーします。

Cloud Shell のターミナルに戻ります。Enter verification code or paste
の項目にコピーした URL を貼り付け、 Enter キーを押下します。

[Google Cloud] OAuth クライアントの作成
以下が表示されます。手順に従って実行します。ターミナルは操作せず、このままにします。

1.
の上部に表示されている URL にアクセスし、[開始] を選択します。

以下の情報を入力し、[次へ] を選択します。
- アプリ名:
任意のアプリ名
- ユーザーサポートメール:
管理者のメールアドレスを指定

[内部] を選択し、[次へ] を選択します。

任意のメールアドレスを入力し、[次へ] を選択します。

ポリシーを確認の上で、[同意します] を選択し、[続行] > [作成] を選択します。

[クライアント] > [+ クライアントを作成] を選択します。

デスクトップ アプリ
を選択し、任意のアプリ名を入力し、[作成] を選択します。

作成後に表示されるクライアント ID
とクライアント シークレット
をコピーします。

Cloud Shell のターミナルに戻り、コピーしたクライアント ID
とクライアント シークレット
をペーストし、Enter キーを入力します。
# クライアント ID をペースト Enter your Client ID: # クライアント シークレットをペースト Enter your Client Secret:
[Google Workspace] OAuth クライアントから Google Workspace へのアクセス許可
以下が表示されるので、手順に従って実行します。ターミナルは操作せずに、このままにします。

1.
の上部の URL(https://admin.google.com/ac/owl/list?tab=configuredApps)へアクセスし、[新しいアプリを設定] を選択します。

2.
で表示されている ID を入力し、[検索] を選択し、前手順で作成したアプリ名が表示されていることを確認し、選択します。

GAM 経由で操作する範囲を選択し、[続行] を選択します。特定の組織部門のみ操作したい場合、対象の組織部門を選択します。

[信頼できる] を選択し、[続行] を選択します。

内容を確認し、[完了] を選択します。

[Google Cloud] 管理者アカウントで GAM の操作を許可
Cloud Shell のターミナルに戻り、Enter キーを入力すると、以下が表示されるので、yes
と入力し、Enter キーを押下します。
# `yes`と入力し、GAM に管理者アカウントとして Google Workspace を操作する権限を与えるための OAuth 認証を開始します。 Are you ready to authorize GAM to perform Google Workspace management operations as your admin account? (yes or no) yes
以下が表示されるので、GAM に許可する API のスコープ(アクセス範囲)を選択します。
s
→ c
の順に入力すると、一般的な管理操作に必要な標準スコープが一括で選択され、認証が続行されます。

以下が表示されます。表示されている URL へアクセスし、管理者アカウントを選択して、前の手順で作成した OAuth クライアントにログインします。


各種 Google Workspace リソースへのアクセスを許可します。

前手順で [許可] を選択すると、以下エラーが表示されるので、URL をコピーします。

Cloud Shell のターミナルに戻り、Enter verification code or paste
の項目にコピーした URL をペーストし、Enter キーを押下します。

以下のプロンプトが順に表示されるので、指定の通りに入力して進めます。
# `yes` と入力し、GAM に Google Workspace のユーザーデータや設定へのアクセスを許可します Are you ready to authorize GAM to manage Google Workspace user data and settings? (yes or no) yes # Google Workspace の管理者のメールアドレスを入力 Please enter the email address of a regular Google Workspace user: admin@mail.com
[Google Workspace] OAuth クライアントから API アクセスの許可
以下が表示されるので、表示されている URL へアクセスします。
※ この時点では、まだ Google Workspace API を利用する権限を付与していないため、FAIL
となります。

[承認] を選択し、OAuth クライアントに対して、各種 Google Workspace 関連 API へのアクセスを許可します。

Cloud Shell のターミナルに戻り、yes
と入力して、 Enter キーを入力します。
# `yes`を入力し、GAM に Google Workspace のユーザーデータや設定へのアクセスを許可します。 Are you ready to authorize GAM to manage Google Workspace user data and settings? (yes or no) yes
セットアップが完了したことを確認します。

[Google Cloud] GAM のインストール確認
前手順で表示されていたコマンドで、GAM コマンド用のエイリアスを設定します。

以下コマンドで GAM のバージョンが表示されることを確認します。
gam version

GAM の検証
ユーザー管理
ユーザーの一覧を出力
以下コマンドでユーザー基本情報を一覧で取得(メールアドレス、氏名、ステータス)できます。
gam print users fields primaryEmail name suspended # 出力例 Getting all Users, may take some time on a large Google Workspace Account... Got 1 User: admin@miurak-test.com - admin@miurak-test.com primaryEmail,name.givenName,name.familyName,name.fullName,name.displayName,suspended,suspensionReason admin@miurak-test.com,健斗,三浦,三浦健斗,,False,
- 参考 : Print user details
以下のようにtodrive
を指定することで、実行結果をスプレッドシートに保存できます。
gam print users fields primaryEmail name suspended todrive # 出力例 Getting all Users, may take some time on a large Google Workspace Account... Got 1 User: admin@miurak-test.com - admin@miurak-test.com Data uploaded to Drive File: https://docs.google.com/spreadsheets/d/XXXXX/edit?usp=drivesdk Recipient: admin@miurak-test.com, Message: miurak-test.com - Users, Email Sent: 195fa4bb292959b7 https://docs.google.com/spreadsheets/d/XXXXX/edit?usp=drivesdk

ユーザーの作成、削除
以下コマンドで新規ユーザーの作成できます。この場合、作成したユーザーはtest
という組織部門に所属します。
gam create user taro.yamada@miurak-test.com firstname Taro lastname Yamada password "Password123" org /test # 出力例 User: taro.yamada@miurak-test.com, Created
- 参考 : Create a user

以下コマンドでユーザーの削除できます。
gam delete user taro.yamada@miurak-test.com
# 出力例
User: taro.yamada@miurak-test.com, Deleted
2段階認証のステータス確認
以下コマンドでユーザーの2段階認証の設定状況が確認できます。isEnrolledIn2Sv
がFalse
の場合、2段階認証が無効となります。
# 全ユーザーの 2SV(2段階認証)設定状況を確認 gam print users fields primaryEmail isEnrolledIn2Sv # 出力例 Getting all Users, may take some time on a large Google Workspace Account... Got 2 Users: admin@miurak-test.com - taro.yamada@miurak-test.com primaryEmail,isEnrolledIn2Sv admin@miurak-test.com,True taro.yamada@miurak-test.com,False # False のため、本ユーザーは2段階認証が無効です
本コマンドも同様にtodrive
を指定することで、実行結果をスプレッドシートに保存できます。
グループ管理
グループ一覧の出力
以下コマンドで全グループの一覧とメンバー数を出力できます。
# 全グループの情報を一覧で出力 gam print groups fields email name directMembersCount # 出力例 Getting all Groups, may take some time on a large Google Workspace Account.. email,name,directMembersCount test-security@miurak-test.com,test-security,,False,1 test123@miurak-test.com,test,,True,2
以下コマンドで全グループのメンバーを出力できます。
# すべてのグループのメンバーを一覧出力 gam print group-members # 出力結果 Getting all Members, Managers, Owners for test-security@miurak-test.com (1/1) Got 1 Member, Manager, Owner for test-security@miurak-test.com... group,type,role,id,status,email test-security@miurak-test.com,USER,MEMBER,101148376274234144710,ACTIVE,admin@miurak-test.com
グループメンバーの追加
以下コマンドでグループにメンバーを追加できます。
# グループにユーザーを追加 gam update group test-security@miurak-test.com add member user taro.yamada@miurak-test.com # 出力例 Group: test-security@miurak-test.com, Add 1 Member Group: test-security@miurak-test.com, Member: taro.yamada@miurak-test.com, Added: Role: MEMBER
共有ドライブの作成
共有ドライブの作成
以下コマンドで共有ドライブを作成できます。
# 共有ドライブの新規作成 gam create shareddrive "営業部共有ドライブ" # 出力例 User: admin@miurak-test.com, Shared Drive Name: 営業部共有ドライブ, Shared Drive ID: XXXXX, Created Waiting for Shared Drive creation to complete. Sleeping 10 seconds
共有ドライブへメンバーの追加
共有ドライブの ID を特定する必要があります。以下コマンドで前手順で作成した共有ドライブの ID(id
)を確認します。
gam print shareddrives | grep "営業部共有ドライブ" # 出力結果 Getting all Organizational Units, may take some time on a large Google Workspace Account... Got 2 Organizational Units Getting all Shared Drives, may take some time on a large Google Workspace Account... Got 1 Shared Drive... User,id,name,backgroundImageLink,capabilities.canAddChildren,capabilities.canChangeCopyRequiresWriterPermissionRestriction,capabilities.canChangeDomainUsersOnlyRestriction,capabilities.canChangeDriveBackground,capabilities.canChangeDriveMembersOnlyRestriction,capabilities.canChangeSharingFoldersRequiresOrganizerPermissionRestriction,capabilities.canComment,capabilities.canCopy,capabilities.canDeleteChildren,capabilities.canDeleteDrive,capabilities.canDownload,capabilities.canEdit,capabilities.canListChildren,capabilities.canManageMembers,capabilities.canReadRevisions,capabilities.canRename,capabilities.canRenameDrive,capabilities.canResetDriveRestrictions,capabilities.canShare,capabilities.canTrashChildren,colorRgb,createdTime,hidden,orgUnit,orgUnitId,restrictions.adminManagedRestrictions,restrictions.copyRequiresWriterPermission,restrictions.domainUsersOnly,restrictions.driveMembersOnly,restrictions.sharingFoldersRequiresOrganizerPermission admin@miurak-test.com,XXXXXXX,営業部共有ドライブ,https://ssl.gstatic.com/team_drive_themes/donut_coffee_background.jpg,True,False,False,True,False,False,True,True,True,True,True,True,True,True,True,True,True,True,True,True,#f06292,2025-04-03T08:43:13Z,False,/,03ph8a2z1cgdtbo,False,False,False,False,False
以下コマンドで共有ドライブにユーザーを管理者(organizer
)として追加します。
# 構文 gam user "管理者のメールアドレス" add drivefileacl id "ドライブの ID" user "追加するユーザーのメールアドレス" role "権限" # 例 gam user miura@dev.g-gen.co.jp add drivefileacl id XXXXXX user miuratest12345@dev.g-gen.co.jp role organizer # 出力結果 User: miura@dev.g-gen.co.jp, Add 1 Drive File/Folder ACL User: miura@dev.g-gen.co.jp, Drive File/Folder ID: XXXXXX, Permission ID: miuratest12345@dev.g-gen.co.jp, Added 三浦はな子 id: XXXXXX type: user emailAddress: miuratest12345@dev.g-gen.co.jp domain: dev.g-gen.co.jp role: organizer permissionDetails: role: organizer type: member inherited: False photoLink: https://lh3.googleusercontent.com/a/XXXXXX=s64 deleted: False
