このドキュメントでは、Cloud Monitoring での保存データの暗号化ポリシーと、機密性の高い顧客データが保護されていることを確認するために講じる手順について説明します。
このドキュメントは、データ セキュリティ要件を遵守する必要があるお客様を対象としています。
保存データの暗号化
Cloud Monitoring 内の保存データはすべて、Google-owned and Google-managed encryption keysを使用して暗号化されます。 詳細については、デフォルトの保存データの暗号化をご覧ください。 Cloud Monitoring では、保存データの保護に顧客管理の暗号鍵(CMEK)を使用することはできません。デフォルトでは、Monitoring は機密データを保存しません。これは、個人情報(PII)やその他の機密性の高い顧客コンテンツに使用するものではありません。Monitoring を使用して、識別できない集計ユーザー アクティビティ データや、二次的なイベントベースの集計情報(リクエスト数とその他の類似の指標など)を格納できます。
ただし、Monitoring には機密性の高い顧客データが誤って挿入される恐れのある場所があります。Cloud Monitoring によって、メタデータとリソースラベルが保存されるため、Google Kubernetes Engine のカスタム リソース定義(CRD)を使用して、リソースのラベル付け、インスタンスへのアノテーションの追加、カスタム リソースの保存など、構成に名前を付けたり、メタデータ アクションを実行するときに、顧客データが Monitoring に送信される可能性があります。
このドキュメントの残りの部分では、このようなデータが挿入される可能性のあるポイントと、このようなデータのキャプチャを探す方法について説明します。
考えられる挿入ポイント
次の表は、機密データが Cloud Monitoring に送信される可能性のあるポイントを示しています。
Google が生成するデータ (システム定義指標や 組み込みダッシュボードなど) |
顧客生成のデータ (カスタム指標またはログベースの指標や カスタム ダッシュボードなど) |
|
---|---|---|
リソースラベル | VM インスタンス名など顧客データに由来する値、またはプロジェクト番号など顧客データに依存しない値 | 機密データを含む値(まだリリースされていないハードウェアの名前など) |
指標ラベル | VM インスタンス名など顧客データに由来する値、またはプロジェクト番号など顧客データに依存しない値 |
|
時系列のデータポイント | 実行可能なアクションはなく、隠すこともできません。 | ユーザー定義の指標(カスタム指標とログベースの指標)の時系列には、アプリケーションによって意図的に収集される場合に、顧客の機密データが含まれることがあります。 |
指標記述子 | 実行可能なアクションはなく、隠すこともできません。 |
|
アラート ポリシー | 実行可能なアクションはなく、隠すこともできません。 |
|
ダッシュボード | 実行可能なアクションはなく、隠すこともできません。 |
|
通知チャンネル | 実行可能なアクションはなく、隠すこともできません。 |
|
リソース グループ | 実行可能なアクションはなく、隠すこともできません。 |
|
稼働時間チェック | 実行可能なアクションはなく、隠すこともできません。 |
|
指標スコープ | 該当なし | メタデータのみ |
機密性の高いメタデータの保護
CMEK で保護されたすべてのデータが必要な場合は、 Google Cloudのリソース構成やメタデータに機密情報を入れてはいけません。リソース構成、リソース メタデータ、ラベル値で機密データを使用する必要がある場合は、 Google Cloud で難読化された ID と Google Cloud外部のマッピング テーブルを使用して保護することをおすすめします。
機密性の高い時系列データを Monitoring に送信する場合、そのデータを確実に削除する唯一の方法は、Google Cloud プロジェクトを削除することです。それ以外の場合、時系列データは、データ保持期限(ユーザー定義指標は 24 か月)に達した後にのみ削除されます。
コンプライアンスを保証するためのデータの検査
Cloud Monitoring でデータを手動で検査し、セキュリティ基準に準拠していることを確認できます。
構成データ
アラート ポリシーなどの構成アーティファクトで使用されるラベルとフィルタを適切に保護するには、構成データを取得して検査します。次のものを確認します。
アラート ポリシー(アラート ポリシーを一覧表示して取得するの説明を参照)。サービスレベル目標に基づくアラート ポリシーには、SLO を参照するフィルタがあります。次に例を示します。
filter: select_slo_burn_rate("projects/PROJECT_NUMBER/services/SERVICE_ID/serviceLevelObjectives/SLO_ID")
SLO の構成を取得するには、フィルタの SLO の完全修飾名を、
serviceLevelObjects/get
メソッドに指定します。通知チャンネル(プロジェクトの通知チャンネルを一覧表示するの説明を参照)。
稼働時間チェック構成(稼働時間チェックの管理の説明を参照)。
カスタム ダッシュボード(ダッシュボードの一覧表示の説明を参照)。
リソース グループ(
groups.list
メソッドを使用)。
指標データ
指標データを検査するには、ユーザー定義指標の指標記述子と、その記述子に対して書き込まれた時系列データの両方を考慮する必要があります。
指標記述子
指標記述子に含まれる表示名、説明、ラベルキーが適切に難読化されていることを確認するには、指標記述子を一覧取得するの説明に従って、記述子を調べます。
カスタム指標を検索するには、フィルタ
metric.type = starts_with("custom.googleapis.com")
を使用します。ログベースの指標を検索するには、フィルタ
metric.type = starts_with("logging.googleapis.com/user")
を使用します。
時系列データ
時系列データ自体を適切に保護するには、時系列データを取得し、指標ラベルとリソースラベルの値、保存されているその他のデータを調べます。特に、カスタム指標またはログベースの指標によって収集された時系列データに注意が必要です。時系列データの取得については、時系列データを取得するをご覧ください。