背景・目的
Amazon Macieを試してみたでは、Amazon Macie(Macieという。)の基本的な特徴を整理し、簡単なセットアップを行いました。
本書では、マネージドデータ識別子の挙動を確認します。
まとめ
マネージドデータ識別子は、下記の特徴を有します。
特徴 | 説明 |
---|---|
手法 | Macieは、機械学習やパターンマッチングなどの基準と手法 |
ロジック | データの近くにキーワードが必要 |
多くの国またはリージョンの機密データを検出 | ・財務データ ・PHI ・PII |
特定の種類の機密データも検出 | ・AWS シークレットアクセスキー ・クレジットカード番号 ・パスポート番号 |
概要
Amazon Macie でのマネージドデータ識別子の使用
Amazon Macie は、機械学習やパターンマッチングなどの基準と手法の組み合わせを使用して、Amazon Simple Storage Service (Amazon S3) オブジェクトの機密データを検出します。これらの基準と手法は、総称してマネージドデータ識別子と呼ばれ、複数のタイプの財務データ、個人健康情報 (PHI)、個人を特定できる情報 (PII) など、多くの国またはリージョンの機密データタイプの大規模かつ増加しているリストを検出できます。各マネージドデータ識別子は、特定の種類の機密データ (たとえば、AWS シークレットアクセスキー、クレジットカード番号、または特定の国またはリージョンのパスポート番号) を検出するように設計されています。
Macie は、マネージドデータ識別子を使用して、次のカテゴリの機密データを検出できます。
- プライベートキーや AWS シークレットアクセスキーなどの認証情報データに関する認証情報
- クレジットカード番号や銀行口座番号などの財務データに関する財務情報
- 医療保険や医療識別番号などの PHI、および運転免許証識別番号やパスポート番号などの PII に関する個人情報
- Macieは、機械学習やパターンマッチングなどの基準と手法を組み合わせて検出する
- S3のデータが対象
- 下記のような多くの国またはリージョンの機密データを検出できる
- 財務データ
- PHI
- PII
- また、特定の種類の機密データも検出できる
- AWS シークレットアクセスキー
- クレジットカード番号
- パスポート番号
Amazon Macie マネージドデータ識別子のキーワード要件
マネージドデータ識別子を使用して特定のタイプの機密データを検出するには、Amazon Macie ではデータの近くにあるキーワードが必要です。特定のタイプのデータに当てはまる場合、このセクションのその後のトピックでは、そのデータのキーワード要件を示します。
- データの近くにキーワードが必要
キーワードが特定のタイプのデータの近くにある必要がある場合は、通常、キーワードはデータから 30 文字以内 (包括的) になければなりません。追加の近接要件は、Amazon Simple Storage Service (Amazon S3) オブジェクトのファイルタイプまたはストレージ形式によって異なります。
- キーワードからデータは30文字以内にある必要がある
- その他はS3のファイルタイプや、ストレージ形式により異なる
Structured, columnar data (構造化された列指向データ)
列指向データでは、キーワードは同じ値の一部であるか、値を格納する列またはフィールドの名前内にある必要があります。これは、Microsoft Excel ワークブック、CSV ファイル、および TSV ファイルに当てはまります。
たとえば、フィールドの値に SSN と米国社会保障番号 (SSN) の構文を使用する 9 桁の番号の両方が含まれている場合、Macie はフィールド内の SSN を検出できます。同様に、列の名前に SSN が含まれている場合、Macie は列内の各 SSN を検出できます。Macie は、その列内の値を、キーワード SSN の近くにあるものとして扱います。
- フィールドの値に、SSNと9桁の番号が両方含まれている場合、MacieはSSNを検出できる
- 列の名前にSSNが含まれる場合、Macieは列内の各SSNを検出できる
Structured, record-based data (構造化されたレコードベースのデータ)
レコードベースのデータでは、キーワードは同じ値の一部であるか、値を格納するフィールドまたは配列へのパス内の要素の名前内にある必要があります。これは Apache Avro オブジェクトコンテナ、Apache Parquet ファイル、JSON ファイル、および JSON Lines ファイルに当てはまります。
- キーワードは同じ値の一部
- 値を格納するフィールド、配列へのパス内の要素の名前内にある必要がある。
たとえば、フィールドの値に credentials (認証情報) と AWS シークレットアクセスキーの構文を使用する文字シーケンスの両方が含まれている場合、Macie はフィールド内のキーを検出できます。同様に、フィールドへのパスが $.credentials.aws.key である場合、Macie はフィールド内の AWS シークレットアクセスキーを検出できます。Macie は、そのフィールド内の値を、キーワード credentials (認証情報) の近くにあるものとして扱います。
- フィールドにCredentialsとAWSシークレットアクセスキーの構文を使用する文字シーケンスの両方が含まれる
Unstructured data (非構造化データ)
Adobe Portable Document Format ファイル、Microsoft Word ドキュメント、E メールメッセージ、および CSV、JSON、JSON Lines、および TSV ファイル以外の非バイナリテキストファイルでは、追加の近接要件はありません。通常、キーワードはデータから 30 文字以内 (包括的) になければなりません。これには、これらのタイプのファイルに含まれるテーブルなどの構造化データが含まれます。
- Adobe、Word、Eメールなどは、近接要件はない
クイックリファレンス: Amazon Macie マネージドデータ識別子
実践
前提
下記の3種類のデータを用意し、S3バケットにアップロードします。
- PII
{"Type": "PersonalInformation", "FullName": "山田 XXXX", "Address": "東京都渋谷区", "PhoneNumber": "03-1234-5678", "Email": "xxx.yyyyy@example.com", "DriverLicenseNumber": "D123456789012", "PassportNumber": "AB1234567"}
- finance
{"Type": "FinancialInformation", "CreditCardNumber": "4111 1111 1111 1111", "BankAccountNumber": "123-456789-01", "BankRoutingNumber": "210-12345"}
- Credential
{"Type": "Credentials", "AWSAccessKeyId": "ABCDEFGAIOSFODNN7EXAMPLE", "AWSSecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"}
ジョブを作成
-
ナビゲーションペインで「ジョブ」を選択します
-
サンプリング深度は「100%」とします
-
カスタムデータ識別子を選択では、何も設定せずに、「次へ」をクリックします
-
許可リストの選択で「次へ」をクリックします
-
確認画面で、「送信」をクリックします
ジョブの実行
確認
検出結果
-
検出結果タイプが「SensitiveData:S3Object/Personal」で重要度「Medium」で検出されました。
-
詳細な結果の場所をクリックすると、S3が表示されます
-
「JSON」で読み込み出力すると詳細な結果がわかります。PIIのパスポート番号(イタリア)に引っかかったようです
"category": "CLASSIFICATION", "classificationDetails": { "jobArn": "arn:aws:macie2:ap-northeast-1:xxxxxxxx:classification-job/xxxxxxxxx", "result": { "status": { "code": "COMPLETE" }, "sizeClassified": "228", "mimeType": "application/json", "sensitiveData": [ { "category": "PERSONAL_INFORMATION", "totalCount": "1", "detections": [ { "type": "ITALY_PASSPORT_NUMBER", "count": "1", "occurrences": { "lineRanges": [], "pages": [], "records": [ { "recordIndex": "0", "jsonPath": "$.PassportNumber" } ], "cells": [] } } ] } ] },
バケット別
タイプ別
ジョブ別
考察
今回、テストデータを作成し、マネージドデータ識別子で検出の検査を行いました。
次回は、カスタム識別子を試してみます。
参考