このページには、Cloud DLP の既知の問題とともに、以下の問題を回避する方法や復旧する方法が記載されています。
BigQuery のスキャン
このセクションでは、BigQuery データを検査またはプロファイリングを実施する際に発生する可能性のある問題について説明します。
検査とプロファイリングのオペレーションに共通の問題
BigQuery の検査とプロファイリングの両方のオペレーションに、次の問題があります。
行レベルのセキュリティが適用される行はスキャン不能
行レベルのセキュリティ ポリシーを使用すると、Cloud DLP が保護された BigQuery テーブルを検査してプロファイリングするのを回避できます。行レベルのセキュリティ ポリシーを BigQuery テーブルに適用している場合は、TRUE フィルタを設定し、譲受人リストにサービス エージェントを含めることをおすすめします。
- 組織レベルまたはフォルダレベルでデータをプロファイリングする場合は、譲受人リストにコンテナ プロジェクトのサービス エージェントを含めます。
- プロジェクト レベルでデータをプロファイリングする場合や、テーブルで検査ジョブを実行する場合は、権限付与者リストにあるプロジェクトのサービス エージェントを含めます。
重複する行
BigQuery テーブルにデータを書き込む際に、Cloud DLP によって重複する行が書き込まれることがあります。
最近ストリーミングされたデータ
Cloud DLP は、最近ストリーミングされたデータ(以前のストリーミング バッファ)はスキャンしません。詳細については、BigQuery ドキュメントのストリーミング データの可用性をご覧ください。
BigQuery の検査に関する問題
以下の問題は、BigQuery データの検査オペレーションにのみ適用されます。データ プロファイルには影響しません。
エクスポートされた検出結果に row_number フィールドの値がない
検出結果を BigQuery に保存するように Cloud DLP を構成すると、入力テーブルのスキャン時に、生成された 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 Storage Write API を使用して入力テーブルに入力している場合、Cloud DLP が一部の行のスキャンをスキップする可能性があります。
この問題を軽減するには、検査ジョブで、TimespanConfig
オブジェクトの timestampField
が、BigQuery が自動生成する commit タイムスタンプであることを確認してください。
ただし、Cloud DLP は最近ストリーミングされたデータを読み取らないため、行がスキップされないという保証はありません。
列の 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", ... }
BigQuery のプロファイリングに関する問題
以下の問題は、BigQuery データのプロファイリング オペレーションにのみ適用されます。詳細については、BigQuery データのデータ プロファイルをご覧ください。
5 億テーブルを超える組織またはプロジェクト
5 億を超えるテーブルがある組織またはプロジェクトをプロファイリングしようとすると、Cloud DLP はエラーを返します。このエラーが発生した場合は、cloud-dlp-feedback@google.com にメールでフィードバックをお送りください。
組織のテーブル数が 5 億を超え、テーブル数が少ないプロジェクトがある場合は、プロジェクト レベルのスキャンを実行します。
テーブルと列の上限については、データ プロファイリングの上限をご覧ください。
検査テンプレート
検査テンプレートは、プロファイリングするデータと同じリージョンに存在する必要があります。データが複数のリージョンにある場合は、複数の検査テンプレートを使用します。データがあるリージョンごとに検査テンプレートを 1 つずつ使用します。また、global
リージョンに格納されている検査テンプレートを使用することもできます。global
リージョンにテンプレートを含めると、Cloud DLP はリージョン固有のテンプレートを持たないデータに対してそのテンプレートを使用します。詳細については、データ所在地に関する検討事項をご覧ください。
格納される 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 オペレーションが発生する可能性があります。これは、Cloud DLP が .xlsx
ファイル内のセルごとに大規模なカスタム辞書のソース用語リストを 1 回読み取る可能性があるためです。読み取りオペレーションの量によって、Cloud DLP 検査ジョブの進行状況がほとんど進まなくなり、停止しているように見えることがあります。
関連する Cloud Storage の請求料金の詳細については、オペレーション料金のクラス B オペレーションの料金をご覧ください。
区切りファイルの匿名化コピーでヘッダーが繰り返される
Cloud Storage で区切り文字で区切られたファイル(CSV ファイルや TSV ファイルなど)を匿名化すると、結果の匿名化ファイルでヘッダー行が重複して表示されることがあります。
次に例を示します。
Header1,Header2
Cell1,Cell2
Cell3,Cell4
Cell5,Cell6
結果の匿名化ファイルで、ヘッダー行が 2 か所に表示されることがあります。
Header1,Header2
DeidentifiedCell1,DeidentifiedCell2
DeidentifiedCell3,DeidentifiedCell4
Header1,Header2
DeidentifiedCell5,DeidentifiedCell6
ファイルサイズがリクエスト サイズの上限(0.5 MB)に収まる場合は、代わりに projects.content.deidentify
リクエストを使用してコンテンツを匿名化できます。
インテリジェントなドキュメント解析
このセクションでは、ドキュメントの解析に関連する既知の問題について説明します。
DocumentLocation
オブジェクトにデータが入力されていない
インテリジェント ドキュメント解析スキャンモードでは、location.content_locations.document_location.file_offset
フィールドに値が入力されません。