このページには、機密データの保護の既知の問題とともに、以下の問題を回避する方法や問題から復旧する方法が記載されています。
一般的な問題
BigQuery に結果を保存する
ジョブまたは検出スキャンの結果が BigQuery に保存されているときに、Already exists
エラーがログに記録されます。このエラーは、問題があることを示すものではありません。結果は予期したとおりに保存されます。
BigQuery のスキャン
このセクションでは、BigQuery データを検査またはプロファイリングを実施する際に発生する可能性のある問題について説明します。
検査とプロファイリングのオペレーションに共通の問題
次の問題は、BigQuery 検査とプロファイリング オペレーションの両方に適用できます。
次の問題は、BigQuery(プレビュー版)の匿名化オペレーションにも当てはまります。行レベルのセキュリティが適用される行はスキャン不能
行レベルのセキュリティ ポリシーを使用すると、機密データの保護が、保護されている BigQuery テーブルを検査してプロファイリングするのを回避できます。 行レベルのセキュリティ ポリシーを BigQuery テーブルに適用している場合は、TRUE フィルタを設定し、譲受人リストにサービス エージェントを含めることをおすすめします。
- 組織レベルまたはフォルダレベルでデータをプロファイリングする場合は、譲受人リストにコンテナ プロジェクトのサービス エージェントを含めます。
- プロジェクト レベルでデータをプロファイリングする場合や、テーブルで検査ジョブを実行する場合は、権限付与者リストにあるプロジェクトのサービス エージェントを含めます。
重複する行
BigQuery テーブルにデータを書き込む場合、機密データの保護によって重複する行が書き込まれることがあります。
最近ストリーミングされたデータ
機密データの保護は、最近ストリーミングされたデータ(旧称ストリーミング バッファ)をスキャンしません。詳細については、BigQuery ドキュメントのストリーミング データの可用性をご覧ください。
BigQuery 検査に関する問題
次の問題は、BigQuery データの検査オペレーションにのみ適用されます。データ プロファイルには影響しません。
エクスポートされた検出結果に row_number フィールドの値がない
検出結果を BigQuery に保存するように機密データの保護を構成すると、入力テーブルのスキャン時に、生成された BigQuery テーブルの location.content_locations.record_location.record_key.big_query_key.row_number
フィールドが推定されます。この値は非決定的であり、クエリされません。また、検査ジョブの場合は null になる場合があります。
結果が存在する特定の行を識別する必要がある場合は、ジョブの作成時に inspectJob.storageConfig.bigQueryOptions.identifyingFields
を指定します。
識別するフィールドは、生成された BigQuery テーブルの location.content_locations.record_location.record_key.id_values
フィールドで確認できます。
スキャンを新しい BigQuery コンテンツに制限する
この問題は、BigQuery の匿名化オペレーション(プレビュー版)にも当てはまります。スキャンを新しいコンテンツのみに制限し、BigQuery Storage Write API を使用して入力テーブルに入力している場合、機密データの保護が一部の行のスキャンをスキップする可能性があります。
この問題を軽減するには、検査ジョブで、TimespanConfig
オブジェクトの timestampField
が、BigQuery が自動生成する commit タイムスタンプであることを確認してください。
ただし、機密データの保護が最近ストリーミングされたデータから読み取ることはないため、行がスキップされないという保証はありません。
列の commit タイムスタンプを自動生成し、以前のストリーミング API を使用して入力テーブルにデータを入力する場合は、次の操作を行います。
入力テーブルのスキーマで、タイムスタンプ列が
TIMESTAMP
型であることを確認します。サンプル スキーマ
次の例では、
commit_time_stamp
フィールドを定義し、その型をTIMESTAMP
に設定します。... { "name": "commit_time_stamp", "type": "TIMESTAMP" } ...
tabledata.insertAll
メソッドのrows[].json
フィールドで、タイムスタンプ列の値がAUTO
に設定されていることを確認します。JSON の例
次の例では、
commit_time_stamp
フィールドの値をAUTO
に設定しています。{ ... "commit_time_stamp": "AUTO", ... }
最大割合または行を設定してスキャンを制限する
テーブル行の合計数(rowsLimitPercent
)に対する割合に基づいてサンプリング制限を設定すると、機密データの保護によって予想よりも多くの行を検査できます。スキャンする行数にハードリミットが必要な場合は、代わりに最大行数(rowsLimit
)を設定することをおすすめします。
BigQuery プロファイリングの問題
次の問題は、BigQuery データに対するプロファイリング オペレーションにのみ適用されます。詳細については、BigQuery データのデータ プロファイルをご覧ください。
5 億テーブルを超える組織またはプロジェクト
5 億を超えるテーブルがある組織またはプロジェクトをプロファイリングしようとすると、機密データの保護はエラーを返します。このエラーが発生した場合は、cloud-dlp-feedback@google.com にメールでフィードバックをお送りください。
組織のテーブル数が 5 億を超え、テーブル数が少ないプロジェクトがある場合は、プロジェクト レベルのスキャンを実行します。
テーブルと列の上限については、データ プロファイリングの上限をご覧ください。
検査テンプレート
検査テンプレートは、プロファイリングするデータと同じリージョンに存在する必要があります。複数のリージョンにデータがある場合は、複数の検査テンプレートを使用します(データがあるリージョンごとに 1 つずつ)。また、global
リージョンに保存されている検査テンプレートを使用することもできます。
global
リージョンにテンプレートを含めると、機密データの保護はリージョン固有のテンプレートのないデータにそれを使用します。詳細については、データ所在地に関する検討事項をご覧ください。
格納される infoType
検査テンプレートで参照される格納される infoType(格納されるカスタム辞書検出器とも呼ばれる)は、次のいずれかに格納する必要があります。
global
リージョン。- 検査テンプレートと同じリージョン。
そうしないと、プロファイリング オペレーションはエラーResource not found
で失敗します。
VPC Service Controls
VPC Service Controls ゾーンでのこの機能の使用は、公式にはサポートされていません。VPC Service Controls ゾーン内でデータのスキャンを試みた場合は、cloud-dlp-feedback@google.com にメールを送信して、発生した問題をお知らせください。
Cloud Storage のスキャン
このセクションでは、データを検査または匿名化する際に発生する可能性のある問題について説明します。
大規模なカスタム辞書検出器を使用した XLSX ファイルの検査
大規模なカスタム辞書検出器(格納されるカスタム辞書検出器とも呼ばれる)を使用して Microsoft Excel .xlsx
ファイルを検査する場合は、検査ジョブの実行速度が遅くなり、停止しているように見え、大量の Cloud Storage クラス B オペレーションが発生する可能性があります。これは、機密データの保護によって .xlsx
ファイル内のセルごとに大規模なカスタム辞書のソース用語リストが読み取られる可能性があるためです。読み取りオペレーションの量によって、機密データの保護の検査ジョブの進行状況がほとんどなくなり、停止しているように見えることがあります。
関連する Cloud Storage 請求料金の詳細については、オペレーション料金のクラス B オペレーションの料金をご覧ください。
バイナリモードでスキャンされる構造化ファイル
一般的に構造化解析モードでスキャンされるファイルがバイナリモードでスキャンされる場合がありますが、これには構造化解析モードの拡張機能は含まれてません。詳細については、構造化解析モードで構造化ファイルをスキャンするをご覧ください。
インテリジェントなドキュメント解析
このセクションでは、ドキュメントの解析に関連する既知の問題について説明します。
DocumentLocation
オブジェクトにデータが入力されていない
インテリジェント ドキュメント解析スキャンモードでは、location.content_locations.document_location.file_offset
フィールドに値が入力されません。
検出
Unicode 標準の補助多言語面の文字を含む辞書の単語は、予期しない結果になる可能性があります。そのような文字の例には、中国語、日本語、韓国語、絵文字があります。