このドキュメントでは、Cloud Monitoring での保存データの暗号化ポリシーと、機密性の高いお客様のデータが保護されていることを確認するために講じる手順について説明します。
このドキュメントは、データ セキュリティの要件を遵守する必要があるお客様を対象としています。
保存データの暗号化
Google Cloud での保存データの暗号化で説明されているように、Cloud Monitoring 内の保存データはすべて、Google がマネージド公開鍵/秘密鍵の暗号化を使用して暗号化されます。
Cloud Monitoring は、保存データを保護するための顧客管理の暗号鍵(CMEK)の使用をサポートしていません。デフォルトでは、Monitoring は機密データを保存しません。PII など、お客様の個人的なコンテンツに使用することは想定されていません。Monitoring を使用して、識別できない集計ユーザー アクティビティ データや、リクエスト数とその他の類似の指標などの二次的なイベントベースの集計情報を格納できます。
ただし、Monitoring には機密性の高い顧客データを不注意で挿入する恐れがある場所があります。Cloud Monitoring によって、メタデータとリソースラベルが保存されるため、Google Kubernetes Engine のカスタム リソース定義(CRD)を使用して、リソースのラベル付け、VM インスタンスへのアノテーションの追加、カスタム リソースの保存など、構成に名前を付けたり、メタデータ アクションを実行するときに、お客様データが 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")
時系列データ
時系列データが適切に隠蔽されるようにするには、時系列データを取得して、指標とリソースラベルやその他の保存データの値を調べます。特に、カスタム指標またはログベースの指標によって収集された時系列データに注意してください。時系列データを取得する方法については、時系列データの取得をご覧ください。