0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Macieでできること

Posted at

はじめに

Amazon Macieを体験する機会があったので備忘のために。

気になっていたポイントは下記の2つ。

  • 暗号化されたS3のデータをどうやってチェックできるのか
  • 日本語で書かれた日本の個人情報でもチェックできるのか

Macieとは

S3の中に個人情報などの機密データが入ってないかチェックするサービス。

暗号化されたS3のデータをどうやってチェックできるのか

S3に配置したデータは暗号化されています。とくにカスタマキーで暗号化した場合、Macieといえども中身を見られないはず。一体どうやって?

日本語で書かれた日本の個人情報でもチェックできるのか

こんな個人情報が検出できればありがたい。下記のようなjsonファイルを作りました。

bushi001.json
{
    "name": "源 頼朝",
    "phone": "090-1192-1199",
    "email": "yoritomo.minamoto@kamakura.jp",
    "address": "神奈川県鎌倉市西御門2丁目5",
    "postalZip": "248-0004",
    "region": "Kanagawa"
}

もうひとつ、クレジットカード番号のサンプルデータです。

card001.json
{
    "cardid": "0001",
    "no": "5105105105105100",
    "brand": "Mastercard"
}

実験したこと

カスタマー管理キーで暗号化したS3に個人情報やクレジットカード情報を入れて、Macieで検出を試みます。

KMSでカスタマー管理キーを作成する

S3を暗号化するためKMSで下記のようなキーを作成します。

設定 設定値
キーのタイプ 対象
キーの使用法 暗号化および複合化

image.png

KMSでMacie向けのキーポリシーを作成する。

作成したキーで暗号化されたデータをMacieが読むには複合化が必要になります。Macieが複合化できるようにキーポリシーを次のようにします。ここで一つ目の疑問は解消です。

キーポリシー
{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Sid": "Enable IAM User Permissions",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::999999999999:root"
			},
			"Action": "kms:*",
			"Resource": "*"
		},
		{
			"Sid": "Enable explicit permissions for Macie service-role",
			"Effect": "Allow",
			"Principal": {
				"AWS": "arn:aws:iam::999999999999:role/aws-service-role/macie.amazonaws.com/AWSServiceRoleForAmazonMacie"
			},
			"Action": "kms:Decrypt",
			"Resource": "*"
		}
	]
}

S3のデフォルト暗号化を設定する

S3バケットのプロパティからデフォルト暗号化を上記のKMSキーに設定します。

Macieを有効化

いよいよMacieを設定します。対象のS3バケットを指定して、クロールジョブを作ります。

  1. Macieを有効化 ボタンを押すと下記のような画面が出てきます。
    image.png
  2. 「ジョブを作成」ボタンを押して、「特定のバケットを選択」を選んで先ほどのバケットを選択して「次へ」に進みます。
    image.png
  3. [ワンタイムジョブ]を選んで次へ進みます。
    image.png
  4. マネージドデータ識別子で[カスタム]を選んでから、全マネージドデータ識別子を選択して次へ進みます。この検証時点では[推奨]で35個、[カスタム]では155個が選択されるので、よりいろいろなパターンを検索できるようです。
    image.png
  5. あとは次へ次へと進めてジョブ名をつければOKでした。ワンタイムジョブの場合、作成が終わるとすぐにジョブが動き始めます。

Macieの検証結果を見る

だいたい15分くらいでジョブの実行が完了して、こんな感じでチェック結果が出てきました。

image.png

検出された結果は下記のようなものでした。

The S3 object contains financial information such as bank account numbers or credit card numbers.

おわりに

次のようなことがわかりました。

  • Amazon Macieは、データを検出するための「識別子」というパターンを提供しており、推奨される識別子やカスタム識別子を利用できます。また、自分で正規表現を用いて識別子を作成することも可能です。
  • 日本語の氏名や住所は、Macieの標準の識別子では正確に検出できない場合があります。
    クレジットカード番号やAWSアクセスキーのような国際的に共通するデータは、既存の識別子で対応可能です。
  • S3バケットがKMSで暗号化されている場合、Macieがデータを解析できるよう、カスタムキーのキーポリシーで複合化を許可する設定が必要です。
  • S3に小さなテキストファイルが数個しかない場合でも、検出作業が完了するまで約15分かかることがあります。

触ってみる前のイメージではAIを駆使して魔法のように個人情報を見つけてくれるようなサービスだと思っていましたが、実際のところは検出するための条件(識別子)を作って泥臭く運用するもののようです。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?