このトピックでは、機密データの保護で利用できる匿名化手法(変換)について説明します。
匿名化手法の種類
使用する匿名化変換の選択は、匿名化するデータの種類と匿名化の目的によって異なります。機密データの保護がサポートする匿名化手法は、次の一般的なカテゴリに分類されます。
- 削除: 検出された機密値のすべてまたは一部を削除します。
- 置換: 検出された機密値を指定されたサロゲート値に置換します。
- マスキング: 機密値の文字数をハッシュ(#)やアスタリスク(*)などの指定された代替文字に置き換えます。
- 暗号ベースのトークン化: 暗号鍵を使用して元の機密値を暗号化します。Sensitive Data Protection は、逆行または「再識別」できる変換を含む数種類のトークン化をサポートしています。
- バケット化: 機密値をある範囲の値に置き換えることによって「一般化」します(たとえば、特定の年齢を年齢の範囲に、気温を「暑い」「ふつう」「寒い」に対応する範囲に置き換えます)。
- 日付シフト: 機密の日付値をランダムな日数だけシフトします。
- 時間抽出: 日付と時刻の値の指定部分を抽出または保存します。
このトピックの残りの部分では、それぞれ異なるタイプの匿名化変換とその使用例について説明します。
変換方法
次の表に、機密データの匿名化のために機密データの保護が提供している変換を示します。
変換 | オブジェクト | 説明 | 逆行可能性1 | 参照整合性2 | 入力タイプ |
---|---|---|---|---|---|
削除 | RedactConfig |
値を削除します。 | 任意 | ||
置換 | ReplaceValueConfig |
入力値を特定の値に置換します。 | 任意 | ||
辞書で置き換える | ReplaceDictionaryConfig
|
単語リストからランダムに選択した値で入力値を置換します。 | 任意 | ||
infoType での置換 | ReplaceWithInfoTypeConfig |
infoType の名前で入力値を置換します。 | 任意 | ||
文字でマスキング | CharacterMaskConfig |
指定された固定文字で特定の文字数を置換し、文字列全体または一部をマスキングします。 | 任意 | ||
仮名化(入力値を暗号ハッシュで置換) | CryptoHashConfig |
特定のデータ暗号鍵で生成された 32 バイトの 16 進文字列で入力値を置換します。詳細については、仮名化のコンセプトのドキュメントをご覧ください。 | ✔ | 文字列か整数 | |
仮名化(暗号形式を維持したトークンに置換) | CryptoReplaceFfxFpeConfig |
FFX モードのフォーマット保持暗号化(FPE)を使用して、入力値を同じ長さの「トークン」(サロゲート値)に置き換えます。これにより、長さのフォーマット検証が必要なシステムで出力を使用できるようになります。これは、文字列の長さを維持する必要があるレガシー システムで役に立ちます。重要: 入力の長さが異なる場合や、長さが 32 バイトを超える場合は、CryptoDeterministicConfig を使用してください。セキュリティを維持するため、アメリカ国立標準技術研究所では次の上限を設けています。
|
✔ | ✔ | 文字数上限があり、均一の長さの文字列か整数。アルファベットは 2 文字以上、95 文字以下にする必要があります。 |
仮名化(暗号トークンに置換) | CryptoDeterministicConfig |
合成初期化ベクトルモード(AES-SIV)の AES を使用して、入力値を同じ長さのトークンまたはサロゲート値に置換します。この変換方法では、フォーマット保持トークン化とは異なり、サポートされる文字列セットに制限がなく、同じ入力値の各インスタンスに対して同じトークンが生成され、サロゲート値を使用した元の暗号鍵に基づく再識別が可能です。 | ✔ | ✔ | 任意 |
固定サイズの範囲に基づくバケット値 | FixedSizeBucketingConfig |
バケットまたは入力値が存在する範囲で入力値を置換してマスキングします。 | 任意 | ||
カスタムサイズの範囲に基づくバケット値 | BucketingConfig |
ユーザーが構成可能な範囲と置換値に基づいたバケット入力値。 | 任意 | ||
日付シフト | DateShiftConfig |
コンテキストの一貫性を維持しながら、任意の日数で日付をシフトします。 | ✔ 順序と持続時間を保持 |
日付 / 時刻 | |
時間データの抽出 | TimePartConfig |
Date 、Timestamp 、TimeOfDay 値の部分を抽出または保持します。 |
日付 / 時刻 |
脚注
content.reidentify
メソッドを使用して機密データを再識別するために、元に戻すことが可能な変換を使用できます。
削除
機密データを入力コンテンツから単純に削除する場合は、機密データの保護は秘匿化変換(DLP API の RedactConfig
)をサポートします。
たとえば、EMAIL_ADDRESS
というすべての infoType の単純削除を行って、次の文字列が機密データの保護に送信されたとします。
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
返される文字列は次のようになります。
My name is Alicia Abernathy, and my email address is .
次の JSON の例と、いくつかの言語でのコードは、API リクエストの作成方法と、DLP API の戻り値を示しています。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
HTTP メソッドと URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
PROJECT_ID
の部分は、プロジェクト ID で置き換えます。
JSON 入力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"redactConfig":{
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 出力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"redactConfig":{
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
置換
置換変換は、各入力値を特定のトークン値か、その infoType 名のいずれかに置き換えます。
基本置換
基本置換変換(DLP API の ReplaceValueConfig
)では、検出された機密データ値が指定された値で置き換えられます。たとえば、検出された EMAIL_ADDRESS
という infoType をすべて「[fake@example.com]」に置換するように指示して、次の文字列が機密データの保護に送信されたとします。
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
次の文字列が返されます。
My name is Alicia Abernathy, and my email address is [fake@example.com].
次の JSON の例と、いくつかの言語でのコードは、API リクエストの作成方法と、DLP API の戻り値を示しています。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
HTTP メソッドと URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
PROJECT_ID
の部分は、プロジェクト ID で置き換えます。
JSON 入力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 出力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is [email-address]."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"replaceConfig":{
"newValue":{
"stringValue":"[email-address]"
}
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
辞書の置換
辞書の置換(ReplaceDictionaryConfig
)は、検出された機密データを、機密データの保護が指定した単語のリストからランダムに選択する値に置き換えます。この変換方法は、現実的なサロゲート値を使用する場合に便利です。
機密データの保護でメールアドレスを検出し、検出されたそれぞれの値を 3 つのサロゲート メールアドレスのいずれか 1 つに置き換えるとします。
サロゲート メールアドレスのリストとともに、次の入力文字列を機密データの保護に送信します。
入力文字列
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
単語リスト
- izumi@example.com
- alex@example.com
- tal@example.com
返される文字列は次のいずれかである可能性があります。
My name is Alicia Abernathy, and my email address is izumi@example.com.
My name is Alicia Abernathy, and my email address is alex@example.com.
My name is Alicia Abernathy, and my email address is tal@example.com.
次の JSON の例は、API リクエストの作成方法と、DLP API の戻り値を示しています。
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
HTTP メソッドと URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
PROJECT_ID
の部分は、プロジェクト ID で置き換えます。
JSON 入力
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig": {
"infoTypeTransformations": {
"transformations": [
{
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
],
"primitiveTransformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
}
}
]
}
},
"inspectConfig": {
"infoTypes": [
{
"name": "EMAIL_ADDRESS"
}
]
}
}
JSON 出力
{
"item": {
"value": "My name is Alicia Abernathy, and my email address is izumi@example.com."
},
"overview": {
"transformedBytes": "22",
"transformationSummaries": [
{
"infoType": {
"name": "EMAIL_ADDRESS"
},
"transformation": {
"replaceDictionaryConfig": {
"wordList": {
"words": [
"izumi@example.com",
"alex@example.com",
"tal@example.com"
]
}
}
},
"results": [
{
"count": "1",
"code": "SUCCESS"
}
],
"transformedBytes": "22"
}
]
}
}
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
infoType の置換
infoType の置換を指定することもできます(DLP API の ReplaceWithInfoTypeConfig
)。この変換では、基本置換変換と同じ操作が行われたうえで、検出された各機密データ値が検出値の infoType に置換されます。
たとえば、メールアドレスと姓の両方を検出し、検出されたそれぞれの値をその値の infoType に置換するように機密データの保護に指定したとします。次の文字列を機密データの保護に送信します。
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
次の文字列が返されます。
My name is Alicia LAST_NAME, and my email address is EMAIL_ADDRESS.
マスキング
各文字をアスタリスク(*)やハッシュ(#)などの決まった 1 つのマスキング文字で置き換えることで、検出された機密値(DLP API の CharacterMaskConfig
)を完全にまたは部分的にマスクするように機密データの保護を構成できます。マスキングは、文字列の先頭または末尾から開始できます。この変換は、長整数などの数値型にも対応しています。
機密データの保護のマスキング変換では、以下のオプションを指定できます。
- マスキング文字(DLP API の
maskingCharacter
引数): 機密値の各文字のマスキングに使用する文字。たとえば、アスタリスク(*)、ドル($)でクレジット カード番号などの一連の数字をマスキングできます。 - マスクする文字数(
numberToMask
): この値を指定しない場合、すべての文字がマスクされます。 - 逆順にするかどうか(
reverseOrder
): 文字を逆順でマスキングするかどうかを指定します。逆順にすると、一致した値の文字は値の終わりから始まりに向かってマスキングされます。 - 無視する文字(
charactersToIgnore
): 値のマスキング時にスキップする 1 つ以上の文字。たとえば、電話番号をマスキングする際に、ハイフンをそのままにするよう機密データの保護に指定できます。また、マスキングする際に無視する共通の文字グループ(CharsToIgnore
)も指定できます。
次の文字列を機密データの保護に送信して、メールアドレスに文字マスキング変換を使用するように指定したとします。
My name is Alicia Abernathy, and my email address is aabernathy@example.com.
マスキング文字を「#」に送信し、無視する文字を共通の文字セットに設定し、それ以外はデフォルト設定にすると、機密データの保護は次の文字列を返します。
My name is Alicia Abernathy, and my email address is ##########@#######.###.
次の JSON とサンプルコードは、マスキング変換の仕組みを示しています。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
REST
JSON で DLP API を使用する方法については、JSON クイックスタートをご覧ください。
HTTP メソッドと URL
POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/content:deidentify
PROJECT_ID
の部分は、プロジェクト ID で置き換えます。
JSON 入力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is aabernathy@example.com."
},
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
],
"primitiveTransformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"reverseOrder":false,
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"EMAIL_ADDRESS"
}
]
}
}
JSON 出力
{
"item":{
"value":"My name is Alicia Abernathy, and my email address is ##########@#######.###."
},
"overview":{
"transformedBytes":"22",
"transformationSummaries":[
{
"infoType":{
"name":"EMAIL_ADDRESS"
},
"transformation":{
"characterMaskConfig":{
"maskingCharacter":"#",
"charactersToIgnore":[
{
"charactersToSkip":".@"
}
]
}
},
"results":[
{
"count":"1",
"code":"SUCCESS"
}
],
"transformedBytes":"22"
}
]
}
}
暗号ベースのトークン化変換
暗号ベースのトークン化(「仮名化」とも呼ばれます)変換は、元の機密データ値を暗号化された値に置き換える匿名化方法です。機密データの保護では、逆行でき「再識別」が可能な変換を含む次のトークン化をサポートしています。
- 暗号ハッシュ:
CryptoKey
が与えられると、機密データの保護は入力値に対して SHA-256 ベースのメッセージ認証コード(HMAC-SHA-256)を使用し、入力値を base64 でエンコードされたハッシュ値に置換します。他のタイプの暗号ベースの変換とは異なり、このタイプの変換は元に戻せません。 - フォーマット保持暗号化: 入力値を、FFX モードのオペレーションでフォーマット保持暗号化(FPE)を使用して生成されたトークンに置換します。この変換方法では、入力値と同じアルファベットで同じ長さに制限されたトークンが生成されます。FPE は、元の暗号鍵に基づく再識別もサポートしています。
- 確定的暗号化: 入力値を、合成初期化ベクトルモード(AES-SIV)の AES を使用して生成されたトークンに置換します。この変換方法では、サポートされる文字列セットに制限がなく、同じ入力値の各インスタンスに対して同じトークンが生成され、サロゲート値を使用した元の暗号鍵に基づく再識別が可能です。
暗号ハッシュ
暗号ハッシュ変換(DLP API の CryptoHashConfig
)では、入力値(機密データの保護が検出した機密データの一部)を受け取ってハッシュ値に置換します。ハッシュ値は、CryptoKey
を基に SHA-256 ベースのメッセージ認証コード(HMAC-SHA-256)を入力値に使用することにより生成されます。
機密データ保護は、ハッシュされた入力値の Base64 エンコード表現を元の値の代わりに出力します。
暗号ハッシュ変換を使用する際には、次の点に注意してください。
- 入力値は暗号化されずにハッシュされます。
- この操作は元に戻せません。つまり、ハッシュされた変換の出力値と元の暗号鍵から元の値を復元する方法はありません。
- 現時点では、ハッシュできるのは文字列と整数値のみです。
- 暗号鍵のサイズに応じて、変換のハッシュ出力は常に同じ長さになります。たとえば、10 桁の電話番号に暗号ハッシュ変換を使用すると、各電話番号は固定長の Base64 エンコードのハッシュ値に置き換えられます。
フォーマット保持暗号化
フォーマット保持暗号化(FPE)変換方式(DLP API の CryptoReplaceFfxFpeConfig
)では、入力値(機密データの保護が検出した機密データの一部)を受け取り、それを FFX モードのフォーマット保持暗号化と CryptoKey
を使用して暗号化し、元の値を暗号化された値(トークン)に置き換えます。
入力値は次に従うものとします。
- 2 文字以上にするか、空の文字列にする必要があります。
- ASCII としてエンコードする必要があります。
- 「アルファベット」で指定された文字で構成されます。これは、入力値に許容される 2~95 の一連の文字です。詳細については、
CryptoReplaceFfxFpeConfig
のアルファベット フィールドをご覧ください。
生成されるトークンは次のとおりです。
- 暗号化された入力値です。
- 暗号化後の文字セット(「アルファベット」)と入力値の長さを保持します。
- 指定された暗号鍵をキーとした FFX モードのフォーマット保持暗号化を使用して計算されます。
- 同じ入力値の各インスタンスが同じトークンに匿名化されるため、必ずしも一意ではありません。これにより参照整合性が有効になり、匿名化されたデータでより効率的な検索が可能になります。コンテキストで説明されているとおり、コンテキストの「微調整」によりこの動作を変更できます。
ソース コンテンツに入力値のインスタンスが複数ある場合は、それぞれが同じトークンに対して匿名化されます。FPE は、長さとアルファベット空間(文字セット)の両方を保持します。文字数は、95 文字に制限されています。セキュリティの向上ができるコンテキスト「微調整」によりこの動作を変更できます。変換にコンテキスト微調整を追加することで、機密データの保護で異なるトークンに対する同じ入力値の複数のインスタンスの匿名化が可能になります。元の値の長さとアルファベット空間を保持する必要がない場合は、後述の確定的暗号化を使用してください。
機密データの保護では、暗号鍵を使用して置換トークンが計算されます。この鍵は、次の 3 つの方法のいずれかで指定します。
- 暗号化せずに API リクエストに埋め込む。これは推奨されません。
- 機密データの保護が生成するようにリクエストする。
- 暗号化して API リクエストに埋め込む。
API リクエストに鍵を埋め込む場合は、鍵を作成し、Cloud Key Management Service(Cloud KMS)鍵を使用してそれをラップ(暗号化)する必要があります。詳細については、ラップされた鍵の作成をご覧ください。返される値は、デフォルトでは Base64 でエンコードされた文字列です。この値を機密データの保護で設定するには、バイト文字列に復号する必要があります。次のコード スニペットは、この方法をいくつかの言語で示しています。 これらのスニペットに続いて、エンドツーエンドの例が示されています。
Java
KmsWrappedCryptoKey.newBuilder()
.setWrappedKey(ByteString.copyFrom(BaseEncoding.base64().decode(wrappedKey)))
Python
# The wrapped key is base64-encoded, but the library expects a binary
# string, so decode it here.
import base64
wrapped_key = base64.b64decode(wrapped_key)
PHP
// Create the wrapped crypto key configuration object
$kmsWrappedCryptoKey = (new KmsWrappedCryptoKey())
->setWrappedKey(base64_decode($wrappedKey))
->setCryptoKeyName($keyName);
C#
WrappedKey = ByteString.FromBase64(wrappedKey)
Cloud KMS を使用したデータの暗号化と復号の詳細については、データの暗号化と復号をご覧ください。
フォーマット保持暗号化の例: 匿名化
この例では、CryptoReplaceFfxFpeConfig
変換方法を使用して機密データを匿名化します。詳細については、このページのフォーマット保持暗号化をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: サロゲート タイプによる匿名化
この例では、CryptoReplaceFfxFpeConfig
変換方法を使用して機密データを匿名化します。詳細については、このページのフォーマット保持暗号化をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: テーブル内の機密データの匿名化
この例では、CryptoReplaceFfxFpeConfig
変換メソッドを使用して、テーブル内の機密データを匿名化します。詳細については、このページのフォーマット保持暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: 再識別
以下に示すのは、Sensitive Data Protection を使用して CryptoReplaceFfxFpeConfig
変換メソッドによって匿名化された機密データを再識別する方法を示すいくつかの言語でのサンプルコードです。詳細については、このページのフォーマット保持暗号化をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: テキストの再識別
以下に示すのは、Sensitive Data Protection を使用して CryptoReplaceFfxFpeConfig
変換メソッドによって匿名化された機密性の高いテキストを再識別する方法を示すいくつかの言語でのサンプルコードです。詳細については、このページのフォーマット保持暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: サロゲート タイプによる再識別
以下に示すのは、Sensitive Data Protection を使用して CryptoReplaceFfxFpeConfig
変換メソッドによって匿名化された機密データを再識別する方法を示すいくつかの言語でのサンプルコードです。詳細については、このページのフォーマット保持暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
フォーマット保持暗号化の例: テーブル内の機密データの再識別
以下に示すのは、Sensitive Data Protection を使用して CryptoReplaceFfxFpeConfig
変換メソッドによって匿名化されたテーブル内の機密データを再識別する方法を示すいくつかの言語でのサンプルコードです。詳細については、このページのフォーマット保持暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
確定的暗号化
DLP API の確定的暗号化変換方式 CryptoDeterministicConfig
では、入力値(機密データの保護が検出した機密データ)を AES-SIV と CryptoKey
で暗号化してから、元の値を Base64 エンコードの暗号化された値に置換します。
確定的暗号化変換を使用すると、暗号化データをより効率的に検索できます。
入力値は次に従うものとします。
- 1 文字以上でなければなりません。
- 文字セットの制限はありません。
生成されるトークンは次のとおりです。
- 暗号化された値の Base64 エンコード表現です。
- 暗号化後の文字セット(「アルファベット」)と入力値の長さを保持しません。
CryptoKey
に基づき SIV モードでの AES 暗号化(AES-SIV)を使用して計算されます。- 同じ入力値の各インスタンスが同じトークンに匿名化されるため、必ずしも一意ではありません。これにより、暗号化データをより効率的に検索できます。コンテキストで説明されているとおり、コンテキストの「微調整」によりこの動作を変更できます。
[SURROGATE_TYPE]([LENGTH]):
という形式で接頭辞を追加して生成されます。ここで、[SURROGATE_TYPE]
は入力値のサロゲート値の infoType を表し、[LENGTH]
は文字の長さを表します。サロゲート値により、匿名化に使用した元の暗号鍵に基づくトークンの再識別が可能になります。
以下は、確定的暗号化を使用して匿名化する JSON 構成の例です。電話番号の匿名化であるため、記述的なサロゲート タイプとして「PHONE_SURROGATE」が使用されています。ここで、[CRYPTO_KEY]
は Cloud KMS から取得したラップされていない暗号鍵を表します
{
"deidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"infoTypes":[
{
"name":"PHONE_NUMBER"
}
]
},
"item":{
"value":"My phone number is 206-555-0574, call me"
}
}
この変換を使用して文字列「My phone number is 206-555-0574」を匿名化すると、次のような匿名化された文字列が生成されます。
My phone number is PHONE_SURROGATE(36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me
この文字列を再識別するには、次のような JSON リクエストを使用します。ここで、[CRYPTO_KEY] は、コンテンツの匿名化に使用されたものと同じ暗号鍵です。
{
"reidentifyConfig":{
"infoTypeTransformations":{
"transformations":[
{
"infoTypes":[
{
"name":"PHONE_SURROGATE"
}
],
"primitiveTransformation":{
"cryptoDeterministicConfig":{
"cryptoKey":{
"unwrapped":{
"key":"[CRYPTO_KEY]"
}
},
"surrogateInfoType":{
"name":"PHONE_SURROGATE"
}
}
}
}
]
}
},
"inspectConfig":{
"customInfoTypes":[
{
"infoType":{
"name":"PHONE_SURROGATE"
},
"surrogateType":{
}
}
]
},
"item":{
"value":"My phone number is [PHONE_SURROGATE](36):ATZBu5OCCSwo+e94xSYnKYljk1OQpkW7qhzx, call me"
}
}
この文字列を再識別すると、元の文字列になります。
My phone number is 206-555-0574, call me
セキュリティを高めるために、ラップされた(暗号化された)CryptoKey
を使用する場合は、クイックスタート: 機密テキストの匿名化と再識別に記載されている例をご覧ください。クライアント ライブラリを使用してコンテンツを匿名化する準備が完了したら、このページのフォーマット保持暗号化にデモが掲載されているように、ラップされた鍵(デフォルトでは Base64 でエンコードされた文字列)をデコードするようにしてください。
確定的暗号化の例: 匿名化
この例では、CryptoDeterministicConfig
変換方法を使用して機密データを匿名化します。詳細については、このページの確定的暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
確定的暗号化の例: 再識別
この例では、CryptoDeterministicConfig
変換メソッドによって匿名化された機密データを再識別する方法を示します。詳細については、このページの確定的暗号化をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
バケット化
バケット変換は、数値データを範囲ごとに「バケット化」することによる数値データの匿名化です。出力される数値範囲は、下限、ハイフン、上限から構成されるハイフン付きの文字列で表現されます。
固定サイズのバケット化
機密データの保護では、固定サイズの範囲(DLP API の FixedSizeBucketingConfig
)に基づいて入力数値をバケット化できます。固定サイズのバケットを構成するには、次のように指定します。
- すべてのバケットの下限値。これより小さい値は 1 つのバケットにまとめられます。
- すべてのバケットの上限値。これより大きい値は 1 つのバケットにまとめられます。
- 最小バケットと最大バケット以外の、各バケットのサイズ。
たとえば、下限を 10、上限を 89、バケットサイズを 10 に設定した場合、-10、10-20、20-30、30-40、40-50、50-60、60-70、70-80、80-89、89+ のバケットが設定されます。
バケット化の概念の詳細については、一般化とバケット化をご覧ください。
カスタマイズ可能なバケット化
カスタマイズ可能なバケット化(DLP API の BucketingConfig
)は、固定サイズのバケット化よりも柔軟性があります。上限、下限、間隔値(均等サイズのバケットを作成するためのもの)ではなく、作成するバケットの最大値と最小値を指定します。最大値と最小値のペアは同じ型でなければなりません。
カスタマイズ可能なバケット化の設定には、個別のバケットを指定します。各バケットのプロパティは次のとおりです。
- バケットの範囲の下限。下限のないバケットを作成する場合、この値は省略します。
- バケットの範囲の上限。上限のないバケットを作成する場合、この値は省略します。
- バケット範囲の置換値。これは下限と上限の範囲内にあるすべての検出値を置き換えるための値です。置換値を指定しない場合は、代わりに、ハイフン付きの最小値と最大値の範囲が生成されます。
たとえば、次のバケット化変換の JSON 構成を考えます。
"bucketingConfig":{
"buckets":[
{
"min":{
"integerValue":"1"
},
"max":{
"integerValue":"30"
},
"replacementValue":{
"stringValue":"LOW"
}
},
{
"min":{
"integerValue":"31"
},
"max":{
"integerValue":"65"
},
"replacementValue":{
"stringValue":"MEDIUM"
}
},
{
"min":{
"integerValue":"66"
},
"max":{
"integerValue":"100"
},
"replacementValue":{
"stringValue":"HIGH"
}
}
]
}
これにより、次のような動作が定義されます。
- 1〜30 の整数値は、
LOW
で置換することでマスキングされます。 - 31〜65 の整数値は、
MEDIUM
で置換することでマスキングされます。 - 66~100 の整数値は、
HIGH
で置換することでマスキングされます。
バケット化の概念の詳細については、一般化とバケット化をご覧ください。
日付シフト
日付入力値に対して日付シフト変換(DLP API の DateShiftConfig
)を使用すると、機密データの保護で日付がランダムな日数だけシフトされます。
日付シフト手法では、日付のセットがランダムにシフトされますが、期間の順序と持続時間は保持されます。通常、日付シフトは、個人またはエンティティのコンテキストで使用されます。特定の個人の日付はすべて同じシフト差異でシフトされますが、別の個人には異なるシフト差異が使用されます。
日付シフトの詳細については、日付シフトをご覧ください。
以下に、Cloud DLP API を使用して日付の匿名化(日付シフト)を行うサンプルコードをいくつかの言語で示します。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
時間抽出
時間抽出(DLP API の TimePartConfig
)オブジェクトを実行すると、日付、時刻、タイムスタンプに一致した値の箇所が保持されます。機密データの保護に、年、月、日など(TimePart
オブジェクトに列挙される)、抽出する時間値の種類を指定します。
たとえば、時間の箇所を YEAR
に抽出するように設定して timePartConfig
の変換を構成した場合、次の 1 番目の列のデータを機密データの保護に送信すると、2 番目の列の変換値が得られます。
元の値 | 変換後の値 |
---|---|
9/21/1976 |
1976 |
6/7/1945 |
1945 |
1/20/2009 |
2009 |
7/4/1776 |
1776 |
8/1/1984 |
1984 |
4/21/1982 |
1982 |
C#
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Go
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Java
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Node.js
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
PHP
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。
Python
機密データの保護用のクライアント ライブラリをインストールして使用する方法については、機密データの保護のクライアント ライブラリをご覧ください。
機密データの保護のために認証するには、アプリケーションのデフォルト認証情報を設定します。 詳細については、ローカル開発環境の認証の設定をご覧ください。