SSH アクセス監査のベスト プラクティス


このドキュメントでは、Linux 仮想マシン(VM)インスタンスへの SSH アクセスを監査するためのベスト プラクティスについて説明します。

Cloud Audit Logs を使用すると、過去のアクティビティを分析できます。また、Google Cloud リソースに影響する不審なアクティビティを調査する際に、重要な情報源となります。

以降のセクションでは、否認防止に関する監査証跡を保持するうえで有用なベスト プラクティスについて説明します。

このドキュメントでは、 Google Cloud に固有のプラクティス、または Google Cloudで SSH を使用する場合に特に関連性の高いプラクティスに焦点を当てて説明します。このドキュメントでは、特定の SSH クライアントまたはサーバーの実装に関するベスト プラクティスについては説明しません。

IAP のデータアクセス ログを有効にする

ユーザーが SSH 接続を確立しようとするたびに IAP が Cloud Audit Logs にエントリを追加するようにするには、Cloud Identity-Aware Proxy APIデータアクセス ログを有効にします。データアクセス ログはデフォルトで無効になっています。ログの量を気にしない場合は、VM インスタンスを含むすべてのプロジェクトでデータアクセス ログを有効にします。

SSH の使用に関連する監査ログエントリをモニタリングする

SSH の使用は VM とそのワークロードのセキュリティに影響する可能性があるため、接続が成功した試行とアクセスが失敗した試行の両方の監査証跡を保持することが重要です。これは、SSH の使用が機密性の高い操作と見なされる本番環境では特に重要です。

SSH アクセスを追跡し、疑わしい動作を見つけるには、SSH に関連するログエントリをモニタリングします。次に例を示します。

サービス メソッド 説明
IAP AuthorizeUser IAP TCP 転送による接続試行を示します。ログエントリには、ユーザーのデバイス、準拠しているアクセスレベル、準拠していないアクセスレベルの詳細が含まれます。
OS Login google.cloud.oslogin.dataplane.OsLoginDataPlaneService.CheckPolicy ログイン試行を示します
OS Login google.cloud.oslogin.dataplane.OsLoginDataPlaneService.StartSession OS Login の 2 要素認証のチャレンジの開始を示します
OS Login google.cloud.oslogin.dataplane.OsLoginDataPlaneService.ContinueSession OS Login 2FA チャレンジの完了を示します
Compute Engine v1.compute.projects.setCommonInstanceMetadata フィールド projectMetadataDelta に「ssh-keys」のエントリが含まれている場合、このログエントリは、プロジェクト メタデータで SSH 認証鍵が追加、削除、または変更されたことを示します。
Compute Engine v1.compute.instances.setMetadata フィールド projectMetadataDelta に「ssh-keys」または「sshKeys」のエントリが含まれている場合、このログエントリは、インスタンス メタデータで SSH 認証鍵が追加、削除、または変更されたことを示します。
Compute Engine google.ssh-serialport.v1.connect シリアル コンソールへの接続試行を示します。
IAM beta.compute.instances.setIamPolicyv1.compute.instances.setIamPolicy VM インスタンスの IAM ポリシーの変更を示します。IAM ポリシーの変更は、ユーザーがインスタンス メタデータを変更する機能に影響する可能性があります。
IAM SetIamPolicy プロジェクトの IAM ポリシーの変更を示します。IAM ポリシーの変更は、ユーザーがプロジェクト メタデータとプロジェクトのデータアクセス監査ログの構成を変更する機能に影響する可能性があります。

すべての監査ログレコードには principalEmail フィールドが含まれています。このフィールドには、アクティビティを開始したプリンシパルが記録されています。

VM でのアクティビティの全体像を把握するには、Ops エージェントなどを使用して、/var/log/messages と SSH サーバーログを Cloud Logging にエクスポートするように VM を構成します。

使用する Linux ディストリビューションによっては、SSH サーバーのログが異なるログファイル(通常は /var/log/auth.log または /var/log/secure)に書き込まれることがあります。これらのログファイルは、Ops エージェントで使用されるデフォルト構成の対象外です。