AWS Glue DataBrewに続き、AWS Glueでも個人識別情報 (PII) やその他の機密データの自動検出に対応してます。
公式ドキュメントはこちら
https://docs.aws.amazon.com/ja_jp/glue/latest/ug/detect-PII.html#choose-pii-entities
機密データ検出ジョブ作成
Detect Sensitive Data
アクションを利用する。
以下の例は単純にS3上のファイルをPII検出して変換し、S3に保存する。
標準はFind sensitive data in each row
で全てのデータをスキャンして、PIIなど機密データの検出を行う。
もう1つのFind columns that contain sensitive data
は、PII検出のスキャン対象を絞るために、ある程度の指定した範囲のサンプルをスキャンしてPIIカラムを特定して実行する方法。
機密データとして識別可能なパターンは、2022/10/15時点では17種類。
2022/11に新たに下記日本のデータタイプも追加された。
あらかじめカテゴリという定義もあり、各要件に応じて項目がマッピングされている。氏名や電話番号などいわゆる個人情報以外にも、IPアドレスやMACアドレスなど様々。
ビルトインで定義されていないパターンはカスタムで正規表現で定義できる。
以下はハイフンを含む電話番号を検知したい場合のパターン定義例。
正規表現の文法チェックには以下が便利
https://www-creators.com/tool/regex-checker
機密データを検知したらどうするか?を定義できる。
Redact detected text
にチェックを入れると、デフォルトでは機密データを削除するが、オプションで ******* のような固定文字に変換できる。
ジョブ実行結果サンプル
ダミーデータに対して実行した結果例
1行目の結果は元データで、2行目はジョブ実行結果行。
SSN(社会保障番号)、氏名、電話番号、メールアドレス、CCN(クレジットカード番号)が自動的に検知されて ******* でマスクされている。
なお、AWS Glue Studio ジョブ中に Detect PII transform を使用する場合、AWS Glue 3.0が必要。
日本語対応
ちなみに日本語ダミーデータでも試したところ、メールアドレスやCCNなど万国共通のものは検知と変換されましたが、氏名、住所など漢字または日本特有フォーマットの項目は現時点では未対応となってます(2022/10/15時点)。電話番号などは前述の正規表現によるカスタムパターン定義でも対応できます。
追記)
2022/11/7のアップデートで、以下の日本固有のデータタイプに対応が追加されてます
https://docs.aws.amazon.com/ja_jp/glue/latest/dg/aws-glue-api-sensitive-data-api-sensitive-data-api-example.html
https://aws.amazon.com/jp/about-aws/whats-new/2022/11/aws-glue-sensitive-data-detection-identify-process-sensitive-data-japan-uk-entities/
まとめ
Glue Studioを使えばGUIだけで比較的簡単に機密データの自動検知と変換処理を組み込める。
機密データ項目が予め特定できており、カラムレベルで一律変換したい場合は単純に項目指定の変換処理を組み込むでも良いが、検知や各基準への準拠を自動化したい場合には有効。