日付シフト

日付は、広く使用されている、有益なデータの種類です。ただし、日付の一般化や難読化、あるいは秘匿化が必要になる場合があります。これを行うための 1 つの方法が一般化またはバケット化です。もう 1 つの方法は日付シフトです。ただし、使用例や設定によっては、バケット化によって日付から有用性が失われる場合があります。たとえば、すべての日付を年だけに一般化した場合は、イベントの発生順序が失われる可能性があります。日付を難読化してこの問題に対処する別の方法が日付シフトです。

日付シフト技術は、日付のセットをランダムにシフトしますが、期間の順序と持続時間は保持します。通常、日付シフトは、個人またはエンティティのコンテキストで行われます。つまり、特定の個人の日付はすべて同じシフト差異を使用してシフトしますが、個人ごとに異なるシフト差異を使用する場合です。

日付シフトの例

次のようなデータがあるとします。

user_id date action
1 2009-06-09 run
1 2009-06-03 walk
1 2009-05-23 crawl
2 2010-11-03 crawl
2 2010-11-22 walk

これらの日付を年に一般化すると、次のようになります。

user_id date_year action
1 2009 run
1 2009 walk
1 2009 crawl
2 2010 crawl
2 2010 walk

これで、ユーザーごとの順序の意味が失われました。

代わりに、日付シフトを試みます。

user_id date action
1 2009-07-17 run
1 2009-07-11 walk
1 2009-06-30 crawl
2 2011-01-26 crawl
2 2011-02-14 walk

日付は変わりましたが、順序と持続時間は保持されていることに注目します。日付がシフトされた量は user_id 1 と 2 で異なります。

Cloud DLP の日付シフト

この処理を Cloud DLP API で行う場合、次のような構成を使用します。

deidentify_config {
  record_transformations {
    field_transformations {
      fields {
        name: "date"
      }
      primitive_transformation {
        date_shift_config {
          upper_bound_days: 100
          lower_bound_days: -100
          entity_field_id {
            name: "id"
          }
          crypto_key {
            unwrapped {
              key: "123456789012345678901234567890ab"
            }
          }
        }
      }
    }
  }
}

シフトの上限と下限はそれぞれ upper_bound_dayslower_bound_days の値で指定されます。このシフトが適用されるコンテキストまたはスコープは、entity_id_field 値(この場合は "user_id")に基づきます。

crypto_key の使用にも注意してください。これは、仮名化で使用された場合に似ています。このキーを使用すると、これらの日付シフトの整合性を複数のリクエストまたはデータ実行間で保つことができます

リソース

日付シフトなど、Cloud DLP でデータの匿名化を行う方法については、以下をご覧ください。

Cloud DLP API のプリミティブ変換に関する API のリファレンス情報については、以下をご覧ください。

  • DeidentifyConfig オブジェクト: 匿名化オプションを構成するオブジェクト。
  • PrimitiveTransformations オブジェクト: 日付シフトは Cloud DLP のプリミティブ変換です。
  • DateShiftConfig オブジェクト: PrimitiveTransformations オブジェクトを構成するオブジェクト。DateShiftConfig オブジェクトを指定することで、日付をランダムな日数だけシフトできます。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud Data Loss Prevention