【GWS】コンテキストアウェアアクセスを使ってみた

## はじめに
**コンテキストアウェアアクセスとは何か**

　Google Workspace（以下 GWS）に備わっているセキュリティ機能の名称で、IPアドレス、アクセス元の地域、デバイス、デバイスのOSなどの属性に基づいて、アプリに対する詳細なアクセス制御セキュリティポリシーを設定できます。

　会社でGWSを使っていて、**「私物の端末からはGoogleアカウントにアクセスさせたくない」**、**「管理者が承認した端末からしかアクセスさせたくない」** などといった要望を叶えてくれる仕組みです。
　エディションによって対応していないものもございますので、詳しくは以下のURLをご参照ください。

https://support.google.com/a/answer/9275380?hl=ja


## 設定の概要

　設定は簡単です。
　管理コンソールの **[セキュリティ] > [アクセスとデータ管理] > [コンテキストアウェアアクセス]** から設定できます。

　設定方法はまず、アクセスレベルを設定します。
　アクセスレベルとは、どのIPか、どのデバイスなのか等を定義できる、いわばアクセス制限の定義となります。

　その設定したアクセスレベルを **[アクセスレベルの割り当て]** で、どの組織のどのアプリケーションに割り当てるのかを選択します。

## アクセスレベルについて

アクセスレベルは以下の5つの属性から設定できます。
・IPアドレス
・場所
・デバイス
・デバイスのOS
・アクセスレベル

詳しくは以下に記載します。

**・IPアドレス**
IPv4,IPv6もしくはCIDRのブロック表記のルーティングプレフィックスを入力します。
例 ）192.168.xxx.xxx 、192.168.xxx.xxx/18

**・場所**
プルダウンから国名を指定します。複数選択も可能です。

**・デバイス**
以下から選択可能です。(デバイスを選択した場合はユーザーがChromeブラウザを使用し、[**Endpoint Verification**](https://chrome.google.com/webstore/detail/endpoint-verification/callobklhcbilhphinckomhgkigmfocg?utm_source=ext_app_menu)という拡張機能をインストールする必要があります)

- 管理者によって承認されている
　　- デバイスを自動追加にしている場合は自動で承認となります
　　- 承認は デバイス > モバイルとエンドポイント > ユニバーサル > セキュリティ > デバイスの承認 から設定することが出来ます
- 会社所有
　　- デバイス > モバイルとエンドポイント >会社所有のインベントリ から端末のシリアル番号のリストを作成することができます
　　- そのリストと合致したシリアル番号の端末の場合はアクセスを許可することが出来ます
- 画面がパスワードで保護されている
- デバイスの暗号化
　　- 「暗号化なし」、「暗号化あり」、「サポート対象外」から合致するものを選択できます

**・デバイスのOS**
以下から選択可能です。
・MacOS
・Windows
・Linux
・ChromeOS
・iOS
・Android

**・アクセスレベル**
設定したアクセスレベルに対して満たしているもののみアクセスを許可させることが出来ます

***

　これらの属性は複数選択することもでき、「すべての属性と一致する（AND）」もしくは「1 つ以上の属性と一致しない（OR）」から設定できます。
　その設定した属性を**条件**と呼び、条件も複数設定することができ、こちらも属性同様にANDかORで設定することが可能です。

例）特定のIPアドレスのMac端末か管理者によって承認されたデバイスのみアクセス許可する場合

**条件1**
　属性1　IPアドレスが192.168.xxx.xxx と一致する　AND
　属性2　デバイスのOSがMacOS と一致する
 
**OR** 

**条件2**
　属性1　デバイスが管理者によって承認されている
***
このように条件を複数組み合わせることも可能です。
（あまり多くの条件を組み合わせると複雑になってしまうのでマトリックス図に落とし込むと良いかもしれません）

## アクセスレベルの割り当て

　上記で設定したアクセスレベルをどの組織のどのアプリケーションに割り当てるかを選択することが出来ます。
　ここで割り当てを行わない限り、コンテキストアウェアアクセスは適用されません。

　割り当ては組織単位で設定することが出来ますのでテストで組織を作成して、その組織にテストユーザーを所属させることでテストを行うことも可能です。

　また、アプリケーションごとにアクセスレベルを割り当てることが可能なので **「Gmailは制限かけさせたくないけど、Googleドライブはアクセス制限をかけたい」** というニーズにも応えることが出来ますね。

## 苦労した点

**・各端末のシリアル番号の取得に苦労した**

　今回、自分が設定したのは**特定のデバイスからのみアクセスを許可する**という設定を行ったのですが、
その場合、デバイス > モバイルとエンドポイント >会社所有のインベントリ に許可したい端末のシリアル番号を設定することで実現できます。

　シリアル番号の取得については、PCの場合はGoogle Chromeの拡張機能のEndpoint Verificationをインストールすると取得することが出来ます。
　スマートフォンの場合はGWSのプロファイルをインストールすることでシリアル番号の取得が出来ます。
　プロファイルのインストールについては デバイス > モバイルとエンドポイント > ユニバーサル > 全般 のモバイル管理を **[詳細（Device Policy アプリ要）]** に設定することで設定された組織に属するユーザーがスマートフォンからGoogleアカウントにログインを行おうとするとプロファイルのインストールが求められるようになります。
　
　ただ、端末によってプロファイルのインストールをしようとすると **「プロファイルを追加できません。管理者に問い合わせてください。」** のようなエラーが表示されることがあり、プロファイルをインストール出来ない端末もありました。同じ機種でインストールできるものもあるので端末依存？なのかは分かりませんが…
　例外対応なども視野に入れ、柔軟に対応することが大事かもしれません。

　紆余曲折を経て、プロファイルのインストールが完了するとGWSの管理コンソール側でシリアル番号が確認することができ、その番号を元に会社所有のインベントリに追加することが出来ます。
**※ただし、iOS端末についてはApple Business Managerとの連携が必要になりますので事前に設定が必要となります。**

　自分もiOS端末も管理したかったのでApple Business Managerと連携させ、管理させようとしたのですが、登録するために**初期化させる必要がある**という記事を見たので断念しました(笑)
　すでに社員に配布している端末だったりすると初期化させるのはなかなかハードル高いですよね…

参考記事
https://www.too.com/apple/apple_tips/abm.html

　iOS端末を管理したい場合は、代替案として **「デバイスOSがiOS且つ管理者によって承認されているデバイス」** といったように条件を組み合わせることによって管理者によって承認されたiOS端末のみGWSにアクセスできるといったような設定が可能になります。



## 最後に

コンテキストアウェアアクセスを駆使すればネットワークの知識がない方でも簡単にアクセス制限が可能です。
Googleのヘルプページを読み解くのはなかなか難しいですが、こちらの記事が少しでも参考になれば幸いです。