Amazon Macieを利用した機密情報(クレジットカード番号)の検出

こんにちは。SCSKのふくちーぬです。

皆さんは、DLP(Data Loss Prevension)サービスの一つであるAmazon Macieを利用したことはありますでしょうか。

今回は、クレジットカード番号を用いて正常に検出されるかを検証していきます。

DLPとは

DLPとは、企業内で保護すべき機密情報(個人情報や取引先・自社製品に関わる情報等)の漏洩を防止するためのソリューションです。機密情報の持ち出し(クラウドへのアップロード)を防ぐために、「Digital Guardian」等のソフトウェアを社内で導入している企業も多いかと思います。

AWSではAmazon Macieが提供されており、AzureではAzure Information Protectionが提供されています。GoogleではCloud DLPが提供されています。

 

Amazon Macieとは

S3バケットに保管されたオブジェクトを探索して、機密性の高い情報が含まれていないか機械学習やパターンマッチング手法を利用して検出するサービスです。

検出結果のタイプ 内容
Policy S3バケット自体が高いセキュリティレベルを満たしているかチェック

例:暗号化設定、パブリックアクセスブロック設定、バケットポリシー

Sensitive Data S3バケット内のオブジェクトに機密性の高い情報が含まれていないかチェック

例:AWSシークレットアクセスキー、クレジットカード番号、氏名、運転免許証識別番号

つまりS3内のオブジェクト(データ)の検査だけでなく、S3バケット自体のチェックも行うことができます。

 

検証(クレジットカード番号を用いた機密情報の検出)

Amazon Macieを始めるための設定

Macieのマネジメントコンソールに移動する。

“ご利用開始にあたって”を押下する。

“Macieを有効化”を押下する。

検出結果をS3に保存する必要があるので、検出結果格納用のS3を作成する必要があります。

“今すぐ設定”を押下します。

S3バケットの作成

S3バケット名を入力して新規作成します。既存のバケットを利用いただいても問題ありません。

KMSキーの作成

検出結果を暗号化して保存するために、KMSキーを作成します。キーポリシーさえ設定すれば、既存のKMSキーを利用いただいても問題ありません。

“新しいキーを作成”を押下します。

“次へ”を押下します。

エイリアスを入力します。ここでは、”kms-macie-<名前>”としています。

“次へ”を押下します。

キー管理者として、自身のIAMユーザーを指定します。

“次へ”を押下します。

“次へ”を押下します。

キーポリシーに以下の内容を追記して、”完了”を押下します。

{
  "Sid": "Allow Macie to use the key",
  "Effect": "Allow",
  "Principal": {
    "Service": "macie.amazonaws.com"
  },
  "Action": [
    "kms:GenerateDataKey",
    "kms:Encrypt"
  ],
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:SourceAccount": "<AWSアカウントID>"
    },
    "ArnLike": {
      "aws:SourceArn": [
        "arn:aws:macie2:<リージョン>:<AWSアカウントID>:export-configuration:*",
        "arn:aws:macie2:<リージョン>:<AWSアカウントID>:classification-job/*"
      ]
    }
  }
} 

“保存”を押下します。

以下のように設定されていれば、Macieを利用するための準備は完了です。

テストデータの作成

以下の架空のテストデータ(csvファイル)を利用することとします。

name,birthday,creditcardnumber
Taro Sumitomo,1998/10/10,4710753616400187

新規のS3として先ほどのバケットとは別に作成して、上記のテストデータをアップロードします。

ジョブの作成

“ジョブを作成”を押下します。

今回は、1つのバケットを対象にします。”s3b-<AWSアカウントID>-financial-data”を選択します。

“次へ”を押下します。

“次へ”を押下します。

今回は、1度限りのジョブを作成するため”ワンタイムジョブ”を選択します。”次へ”を押下します。

ジョブが利用する識別子を選択することで、機密データの検出をカスタマイズすることができます。

今回は、全てのマネージドデータ識別子を使用して分析させたいため、”カスタム”を選択後に、全ての識別子を選択します。

“次へ”を押下します。

カスタムデータ識別子は、今回利用しません。この機能を利用すると、ユーザーが独自にパターンを定義することができます。

“次へ”を押下します。

“次へ”を押下します。

ジョブ名として、”macie-test”を入力します。”次へ”を押下します。

設定確認後に、”送信”を押下します。

これにて、ジョブの作成は完了です。

Amazon Macieでの検出結果の確認

10分ほど待つと分析が終わり、検出結果が表示されます。

1件の重要度Highの検出がされました。

Macie内で簡単に検出結果を確認することができます。

今回は検出結果のタイプとして、SensitiveData:S3Object/Multipleが検出されています。

オブジェクトには、1 つ以上のカテゴリの機密データ (1 つ以上のカスタムデータ識別子の検出基準に一致する認証情報データ、財務情報、個人情報、またはテキストの任意の組み合わせ) が含まれます。

今回は、3件の機密データが検出されています。

  • 個人情報として、Date of Birth(誕生日)、Name(名前)が検出
  • 財務情報として、Credit card number no keyword(クレジットカード番号)が検出

正常に検出することができましたね。架空データではありますが、念のため機密ファイルはS3から削除しておきましょう。

最後に

いかがだったでしょうか。

Macieを利用した機密情報の検出を検証してみました。検出結果の集約先としてAWS Security Hubとの統合が可能のため、機会があれば試してみたいと思います。

本記事が皆様のお役にたてば幸いです。

ではサウナラ~🔥

タイトルとURLをコピーしました