GoogleのCloud Identityでエンドポイント管理

コーポレート IT

概要

  • Googleが2020年1月16日にリリースしたCloud Identityによって社内端末を管理する設定をしました。
  • 事例がほとんど見つからないのでオフィシャルドキュメントを片っ端から読んで設定してみました。
  • コーポレート関連の情報が全然出回らないので書いておきます。
  • 手順などをちゃんと書くと、文量が大量になるので要点だけまとめます。

Cloud Identity特徴

  • 無料と有料プランがあります
    • Google Cloud Identity Free Edition
    • Google Cloud Identity Premium Edition

  • Chrome Bookの端末管理をしたかったので今回はPremium Editionを使う必要があります。
  • Google WorkspaceのEnterpriseプランだとCloud Identityのサービスが含有されているのですが、それ以外では個別に契約が必要っぽいです。
  • 料金
    • 645円/ユーザ/月

セキュリティ要件例

このあたりのことをやれます。

  • 端末の紛失、盗難
    • データの削除をリモートから行ったり、容易にログインできなくする。
    • ディスクが暗号化された状態を担保する。
  • 認証
    • ソーシャルエンジニアリング対策
  • BYO対策
    • 個人端末で会社アカウントを使っている場合の管理。
    • 業務委託の端末管理。
    • Google Workspaceのアカウントを使ってログインしている端末は、Google Device Policyというアプリを別途入れることを共用されます。このアプリ経由で端末を制御できます。
Enable Windows device management - Google Workspace Admin Help
Supported editions for this feature: Frontline Starter and Frontline Standard; Business Plus; Enterprise Standard and En...

こんな感じで有効化できます。

Windows端末の場合葉、Google Credential Providerというアプリが用意されていて、Google WorkspaceのIDとPWでWindows端末にログインするように設定できます。

Windows® 用 Google 認証情報プロバイダ
Windows® 用 Google 認証情報プロバイダ(GCPW)を使用すると、ユーザーは仕事用の Google アカウントを使って Windows® デバイスにログインできるようになります。GCPW を使用すると、Google サービスへ...

私の場合は、以下のようなPowerShellスクリプトを書いて、キッティング時に実行して設定してます。

<# このスクリプトは、https://tools.google.com/dlpage/gcpw/ から Windows 用 Google 認証情報プロバイダを
ダウンロードし、インストールして設定します。
スクリプトを使用するには Windows 管理者権限が必要です。#>
<# ログインを許可するドメインに次のキーを設定します。
例:
$domainsAllowedToLogin = "acme1.com,acme2.com"
#>
$domainsAllowedToLogin = "minedia.com"
Add-Type -AssemblyName System.Drawing
Add-Type -AssemblyName PresentationFramework
<# 1 つ以上のドメインが設定されているかどうかを確認します #>
if ($domainsAllowedToLogin.Equals('')) {
$msgResult = [System.Windows.MessageBox]::Show('The list of domains cannot be empty! Please edit this script.', 'GCPW', 'OK', 'Error')
exit 5
}
function Is-Admin() {
$admin = [bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match 'S-1-5-32-544')
return $admin
}
<# 現在のユーザーが管理者かどうかを確認し、管理者でない場合は終了します。#>
if (-not (Is-Admin)) {
$result = [System.Windows.MessageBox]::Show('Please run as administrator!', 'GCPW', 'OK', 'Error')
exit 5
}
<# ダウンロードする GCPW ファイルを選択します。32 ビット版と 64 ビット版では名前が異なります #>
$gcpwFileName = 'gcpwstandaloneenterprise.msi'
if ([Environment]::Is64BitOperatingSystem) {
$gcpwFileName = 'gcpwstandaloneenterprise64.msi'
}
<# GCPW インストーラをダウンロードします。#>
$gcpwUrlPrefix = 'https://dl.google.com/credentialprovider/'
$gcpwUri = $gcpwUrlPrefix + $gcpwFileName
Write-Host 'Downloading GCPW from' $gcpwUri
Invoke-WebRequest -Uri $gcpwUri -OutFile $gcpwFileName
<# GCPW インストーラを実行し、インストールが完了するまで待ちます #>
$arguments = "/i `"$gcpwFileName`""
$installProcess = (Start-Process msiexec.exe -ArgumentList $arguments -PassThru -Wait)
<# インストールが成功したかどうかを確認します #>
if ($installProcess.ExitCode -ne 0) {
$result = [System.Windows.MessageBox]::Show('Installation failed!','GCPW', 'OK', 'Error')
exit $installProcess.ExitCode
}
else {
$result = [System.Windows.MessageBox]::Show('Installation completed successfully!', 'GCPW', 'OK', 'Info')
}
<# 許可されたドメインで必要なレジストリキーを設定します #>
$registryPath = 'HKEY_LOCAL_MACHINE\Software\Google\GCPW'
$name = 'domains_allowed_to_login'
[microsoft.win32.registry]::SetValue($registryPath, $name, $domainsAllowedToLogin)
$domains = Get-ItemPropertyValue HKLM:\Software\Google\GCPW -Name $name
if ($domains -eq $domainsAllowedToLogin) {
$msgResult = [System.Windows.MessageBox]::Show('Configuration completed successfully!', 'GCPW', 'OK', 'Info')
}
else {
$msgResult = [System.Windows.MessageBox]::Show('Could not write to registry. Configuration was not completed.', 'GCPW', 'OK', 'Error')
}
<# オプション設定 #>
[microsoft.win32.registry]::SetValue($registryPath, 'validity_period_in_days', 1)
view raw gcpw.ps1 hosted with ❤ by GitHub

運用

以下のスクショのような感じでログインしたユーザやデバイスが表示されます。対象のデバイスから強制ログアウトや、リモートから情報の削除を行えます。

デバイスでフィルタをしたりできます。

考察

  • この設定によって、会社のデバイスやBYODの端末を管理できるようになりました。セキュリティをコントロールしづらいBYODに対してもリモートワイプできるようになりました。
  • Google Workspacesを導入したスタートアップには良いと思います。Android, ios, Windows, macosにおける最低限の認証管理、設定管理は行なえます。
  • もっと細かい制御をしたい場合は、JAMFIntuneなどを使って強化していけばよいかと思います。

ABM連携もできるようなので、今後トライしたいです。
https://support.google.com/cloudidentity/answer/9904735?hl=en

https://amzn.to/3giEIuX

コメント