Splunk APMで機密データのコントロールを使用する 🔗
メールアドレス、クレジットカード情報、社会保障番号などの機密データは、ユーザーを保護し業界標準の順守を保証するため、慎重な取り扱いが必要です。デフォルトでは、Splunk APMは機密情報を取得しません。Splunk APMは、自身に向けて明示的に送信された情報のみを受信します。しかし、機密情報が誤って送信された場合、Splunk APMは、漏えいを防ぎ、緩和するための多くの制御を提供します。
機密データは、個人を特定できる情報(PII)、顧客を特定できる情報(CII)、カード所有者データ(CHD)、または保護対象保健情報(PHI)のカテゴリーに分類される場合があります。カード産業セキュリティデータ基準(PCI DSS)、米国医療保険の携行性と責任に関する法律(HIPAA)、EU一般データ保護規則(GDPR)などの業界要件に確実に準拠するためには、これらの種類のデータを保護する必要があります。
前提条件 🔗
Splunk APMで機密データを設定するには、adminロールが必要です。
Splunk Distribution of OpenTelemetry Collectorを使用して機密データを削除する 🔗
機密情報に対する防御の第一線は、機密データを決してキャプチャしないSplunkの自動インストルメンテーションを使用することです。
手動のインストルメンテーション中に機密データが Splunk Observability Cloudに送信された場合は、Splunk Distribution of OpenTelemetry Collector を使用して取り込み前に削除することができます。詳細は Collector を使用して取り込むデータを制御する を参照し、また、以下のシナリオをお読みください。
注釈
スパンの除外に関する注意事項
スパン内の特定の値を隠すことが、スパン内の機密情報を非表示にするための最良のアプローチです。OpenTelemetryのパイプラインからスパン全体を除外することはできません。
Splunk APMで可視性フィルターAPIを使用してデータをブロックする 🔗
データが意図せずSplunk APMに送信され、データ取り込みパイプラインで削除されていないというケースに対処するため、管理者アクセスを持つユーザーは、APIを使用してSplunk APMで特定のスパンタグをブロックする可視性フィルターを設定できます。これにより、APIの応答だけでなく、Splunk APMのあらゆる場所から情報が隠されます。隠された情報は、デフォルトの保存期間である8日が経過して期限が切れるまで、Splunk APMから消去されません。
以下は、この種の情報をブロックしたい場合の3つのシナリオ例です。これらのAPIは設定可能であるため、サービス全体の可視性を損なうことなく、データを漏らした可能性のあるスパンタグを保護できるという点に注目してください。
注釈
これらのAPIの使用に関する詳細なガイダンスについては、開発者向けドキュメントの「 APMの可視性フィルターAPI 」を参照してください。
特定のサービスの特定のスパンタグをブロックする 🔗
あるサービスの特定のスパンタグに機密情報が含まれている可能性があることが分かっている場合、Splunk APMのUIのあらゆる場所で、そのスパンタグとその値を非表示にすることができます。
例えば、MoiraがSplunk APMで精算サービスを手動でインストルメントし、サービスのインストルメンテーションで user.email
と credit.card.number
のスパンタグを使用するタグをブロックし忘れたとします。次の例のAPI呼び出しは、checkoutService
のすべての readCartDetails
操作から2つのスパンタグをブロックします。
リクエスト:
POST https://api.<YOUR_REALM>.signalfx.com/v2/apm/visibility-filter
JSONペイロード:
{
"description": "Data blocked due to leak on 04/03/21",
"startTime": "2021-04-03T15:00:00.073876Z",
"matcher": {
"sf_service": "checkoutService",
"sf_operation": "readCartDetails"
},
"hiddenTags": ["user.email", "credit.card.number"]
}
注釈
レルムについて
レルムとは、あなたの組織がホストされているSplunk Observability Cloudの自己完結型のデプロイメントのことです。異なるレルムには異なるAPIエンドポイントがあります。例えば、us1
レルムでデータを送信するためのエンドポイントは https://ingest.us1.signalfx.com
で、eu0
レルムでデータを送信するためのエンドポイントは https://ingest.eu0.signalfx.com
、というようになります。
<YOUR_REALM>
のようなプレースホルダのレルム名がドキュメントに記載されている場合は、実際のレルム名に置き換えてください。自分のレルム名を見つけるには、Splunk Observability Cloudのナビゲーションメニューを開き、 を選択し、ユーザー名を選択します。レルム名は Organizations セクションにあります。エンドポイントを指定する際にレルム名を含めない場合は、Splunk Observability Cloudがデフォルトで us0
レルムを設定します。
データベースクエリから機密情報を削除する 🔗
データベースクエリの分析を提供するために、Splunk APMは、各コールが発生するスパンからSQLステートメント(クエリ)をキャプチャします。データベースクエリ(ステートメント)には機密情報が含まれている可能性があります。
Collectorの attributes
プロセッサーを使用して特定可能情報を削除した後、Splunk APMは、すべての動的要素を ?
の文字に置き換えます。これは、標準化とも呼ばれる手順です。
次のスクリーンショットは、Database Query Performanceでのデータベースクエリの正規化を示しており、動的要素が置換されています:
SQLデータベースの db.statement
属性とNoSQLデータベースの db.operation
属性には、正規化後も機密情報が含まれている可能性があるため、Splunk APMで可視性フィルターを使用してその情報を非表示にします。詳細は Splunk APMで可視性フィルターAPIを使用してデータをブロックする を参照してください。
注釈
データベースクエリの正規化を無効にする場合は、データベースクエリの正規化を無効にする を参照してください。