G-gen の三浦です。当記事では、コンテキストアウェア アクセス(CAA)を使って Google ドライブ等の Google Workspace アプリケーションへのアクセスを制御する方法を紹介します。
コンテキストアウェア アクセスとは
コンテキストアウェア アクセス(以降、CAA)は、IP アドレスやデバイスの状態などのコンテキスト(背景情報)に基づいてアクセスを制御する、Google Workspace の機能です。
Google ドライブ、Gmail、Google カレンダー、Looker Studio などに条件付きでアクセス制御を適用できます。
使用例 :
IP アドレス制限 : 社内ネットワークの IP アドレスからのみ Google ドライブへのアクセスを許可し、社外(自宅や公共 Wi-Fi)からの利用を禁止する。
デバイス制限 : 会社支給のモバイルデバイス(iPhone、Android)からのみ Gmail へのアクセスを許可し、私用デバイスからの利用を禁止する。
参考 : コンテキストアウェア アクセスの概要
前提条件
CAA は、Google Workspace(Cloud Identity)の特定のエディション(Frontline Standard、Enterprise Standard、Enterprise Plus、Cloud Identity Premium 等)で利用できます。
詳細は以下のドキュメントをご参照ください。
検証内容
以下の手順で CAA を設定し、動作を確認します。
モニターモードの設定
社内 IP アドレスのみにアクセスを制限するルールを作成し、モニターモード(検知のみでブロックしない)で設定します。動作確認(モニターモード)
社内外のアクセス状況を確認し、ログを確認します。アクセスレベル変更(アクティブモード)
アクティブモードに切り替え、条件外のアクセスをブロックするように設定します。動作確認(アクティブモード)
社内 IP アドレスからアクセス可能で、社外からはブロックされることを確認します。複合条件の設定
社内 IP アドレスに加え、多要素認証(MFA)を利用している場合のみ許可する条件を設定します。複合条件の動作確認(アクティブモード)
条件に合致しないアクセスがブロックされることを確認します。
動作確認
モニターモードの設定
Google Workspace の管理コンソール(URL : https://admin.google.com)にログインします。
- 参考 : 管理コンソールにログインする
[セキュリティ] > [アクセスとデータ管理] > [コンテキストアウェア アクセス] に移動します。
CAA が無効な場合は、[有効にする] を選択して有効化します。その後 [アクセスレベル] を選択します。
[アクセスレベルを作成] を選択します。
以下を設定し、[作成] を選択します。
- アクセスレベル名:任意の名前を入力します。
- 条件:[基本] > [IP サブネット] を選択し、社内 IP アドレスを入力します。
[アプリに割り当て] を選択します。
適用する対象(ユーザーまたはグループまたは組織部門)とアプリを選択し、[割り当て] を選択します。
アクセスレベルを選択し、「監視」にチェックを入れて「続行」を選択します。モニターモード(監視)では、アクセスレベルの影響範囲をログで確認でき、ブロックは行われません。
なおアクセスレベルは複数選択できますが、OR 条件で動作するため、いずれかのアクセスレベルを満たす場合は接続が許可されます。
[続行] を選択します。
内容を確認し、[割り当て] を選択します。
動作確認(モニターモード)
社内および社外から Google ドライブ、Google カレンダー、Gmail にアクセスします。この段階では、どちらからもアクセス可能です。
[レポート] > [監査と調査] > [コンテキストアウェア アクセスのログイベント] を選択します。
以下の条件で検索し、モニターモードでブロックされたユーザーのログを確認します。意図しないブロックが発生していないか確認してください。
イベント
次に一致アクセス拒否(モニターモード)
アクセスレベルの適用
次の文字を含むアクセスレベル名
アクセスレベル変更(アクティブモード)
[セキュリティ] > [コンテキストアウェア アクセス] へ移動し、 [アプリにアクセスレベルを割り当てる] を選択します。
アクセスレベルを適用する対象とアプリを選択し、[割り当て] を選択します。
監視
のチェックを外し、アクティブ
のチェックを入れて [続行] を選択します。
[続行] を選択し、内容を確認し、[割り当て] を選択します。
動作確認(アクティブモード)
社内 IP アドレス及び社外 IP アドレスからアクセスします。社内 IP アドレスでは正常にアクセスでき、社外 IP アドレスではアクセスがブロックされることを確認します。
複合条件の設定
[セキュリティ] > [コンテキストアウェア アクセス] に移動し、[アクセスレベル] > [アクセスレベルを作成] を選択します。
以下を設定し [作成] を選択します。この条件により、MFA 認証がされていないとアクセスがブロックされます。条件式の詳細については、以下のドキュメントを参照してください。
- アクセスレベル名:任意の名前を入力します。
条件:[詳細] >
request.auth.claims.crd_str.mfa == true
参考 : カスタム アクセスレベルの仕様
- 参考 : 詳細モードでのコンテキストアウェア アクセスの例
[終了] を選択します。
[コンテキストアウェア アクセス] > [アクセスレベル] へ移動し、1つ目と2つ目のルールのCEL名
を確認し、控えます。
[アクセスレベルを作成] を選択します。
以下を設定し [作成] を選択します。この条件により、複数の条件(IP アドレス制限と多要素認証(MFA))を同時に満たす場合のみアクセスが許可されます。
- アクセスレベル名:任意の名前を入力します。
- 条件:[詳細] >
levels.${{1つ目のアクセスレベルの CEL 名}} && levels.${{2つ目のアクセスレベルの CEL 名}}
[セキュリティ] > [コンテキストアウェア アクセス] へ移動し、 [アプリにアクセスレベルを割り当てる] を選択します。
アクセスレベルを適用する対象とアプリを選択し、[割り当て] を選択します。
適用済みの1つ目のアクセスレベルを削除し、3つ目のアクセスレベルを選択し、アクティブ
のチェックを入れて、[続行] を選択します。
本番環境へ適用する場合は、まず [監視] のみにチェックを入れてモニターモードで影響がないことを確認した上で、アクティブモードに切り替えることを推奨します。
[続行] を選択し、内容を確認し、[割り当て] を選択します。
複合条件の動作確認(アクティブモード)
社内の IP アドレスかつ MFA が無効化されているアカウントからアクセスを確認し、以下画面が表示されることを確認します。
[レポート] > [監査と調査] > [コンテキストアウェア アクセスのログイベント] を選択します。
以下の条件で検索し、アクティブモードで拒否された接続ログを確認します。アクセスレベルの不足
を確認することで、どのアクセスレベルでブロックされたかを特定できます。
イベント
次に一致アクセスが拒否されました
アクセスレベルの適用
次の文字を含むアクセスレベル名
アカウントのMFAを有効化後、ログアウトし、MFAを利用して再度ログインします。
ログイン時にこのデバイスでは次回から表示しない
を選択しないでください。選択すると、次回以降のログインで MFA 認証が省略され、CAA によってアクセスがブロックされます。
万が一選択してしまった場合は、以下のドキュメントを参照してログイン Cookie をリセットしてください。
Googleドライブにアクセスし、正常に表示されることを確認します。