ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

Amazon Macie 使ってみた

この記事を共有する

目次

こんにちは、パーソル&サーバーワークスの高橋です。

今回は、Amazon S3 に保存されたデータの中から機密データ(個人情報など)を自動で見つけ出してくれるサービス、Amazon Macie(メイシー)を使ってみたいと思います。

はじめに、Amazon Macie とは、機械学習とパターンマッチングを使って Amazon S3 内の機密データを検出・分類するデータセキュリティサービスです。 氏名・メールアドレス・クレジットカード番号などの個人情報(PII)や、AWS のシークレットキーといった認証情報を自動で検出できます。 さらに、バケットが公開設定になっていないか、暗号化されているかといった S3 の設定リスクも評価してくれます。

※ Macie は機密データの「検出・可視化」を行うサービスです。検出した機密データそのものを自動で削除・マスキングする機能はありません。見つけたリスクにどう対処するかは、EventBridge などと組み合わせて別途仕組みを作る形になります(本記事の番外編で紹介します)。


やってみた

1. Macie を有効にする

「ご利用開始にあたって」を押下します。

利用開始前.png

「Macie を有効化」を押下します。

自動でスキャンされた.png

このような画面になります。

Macie を有効化すると、「自動検出(automated sensitive data discovery)」が始まり、アカウント内の S3 バケットのメタデータ評価と、代表的なオブジェクトのサンプリング分析が自動で行われます。

※ バケット全体を一度にフルスキャンするわけではなく、あくまで概況を把握するための自動分析です。ファイル単位で網羅的に調べたい場合は、後述の「ジョブ」を作成します

概要ダッシュボード

2. スキャン対象の S3 バケットとファイルを用意する

S3 バケットを新規に作成し、機密情報を含んだダミーファイルを配置します。

今回は検証用に、以下のような架空の個人情報を含むファイルを用意しました(すべてダミーデータです)。

  • incident-report.txt ... インシデント報告書。クレジットカード番号、AWS アクセスキー/シークレットキーを含む
  • employee-records.csv ... 従業員名簿。クレジットカード番号、メールアドレスを含む
  • customers.csv ... 顧客リスト。氏名・住所・電話番号・クレジットカード番号・マイナンバーを含む
  • support-ticket.txt ... 問い合わせ文。マイナンバー・クレジットカード番号・メールを含む

S3 バケットのオブジェクト一覧

3. Amazon Macie でスキャンしてみる

「ジョブを作成」を押下します。

Macie では、特定のバケットを対象に機密データを検出する「検出ジョブ(sensitive data discovery job)」を作成できます。

ジョブを作成

スキャンしたいバケットにチェックを入れ、「次へ」を押下します。

S3 バケットを選択

「次へ」を押下します。

S3 バケットを確認

スケジュールタイプを選びます。

今回は検証なので「ワンタイムジョブ(1回限り)」を選ぶのがおすすめです。ワンタイムジョブにすると、作成後に一度だけ実行されます。

(「スケジュールされたジョブ」で「毎日」などを選ぶと定期的に実行され続け、その分課金も継続するため、検証用途では注意してください)

範囲を絞り込む

マネージドデータ識別子は「推奨」を選択し「次へ」を押下します。

「推奨」を選ぶと、AWS が用意した各種の識別子(クレジットカード番号、各国の身分証番号、認証情報など)が自動で使われます。

マネージドデータ識別子を選択

カスタムデータ識別子の選択画面です。ここは一旦「次へ」を押下します。

※ 後ほど、ここで使う識別子を自分で作成します。

カスタムデータ識別子を選択

許可リストの選択画面も「次へ」を押下します。

(許可リストは、検知対象から除外したいテキストを定義する機能です。今回は使いません)

許可リストの選択

ジョブ名をつけて「次へ」を押下します。

一般設定

内容に問題がなければ、「送信」を押下します。

確認して作成

しばらくすると、ステータスが「完了」になるので「結果を表示」から結果を確認します。

スクリーンショット 2026-10-11 205149.png

incident-report.txt と employee-records.csv が「High(重要度:高)」で検出されました。

AWS キー・クレジットカード番号・メールアドレスがしっかり検知されています。

ただし、 customers.csv や support-ticket.txt に含まれるマイナンバーは検知されませんでした。

そこで、マイナンバーを検知するための「カスタムデータ識別子」を自分で作成します。

検出結果 High 2件

4. カスタムデータ識別子を作成する

左のタブから「カスタムデータ識別子」を選択し、「作成」を押下します。

カスタムデータ識別子の作成

画像のように入力し、「送信」を押下します。

今回はマイナンバー(12桁)を検出するため、以下のように設定しました。

  • 正規表現: [0-9]{4}[- ]?[0-9]{4}[- ]?[0-9]{4}
  • キーワード: マイナンバー, 個人番号
  • 最大一致距離: 50

カスタムデータ識別子の入力とテスト

5. もう一度ジョブを作成する

先ほど作成したカスタムデータ識別子にチェックを入れて、ステップ8まで進みジョブを作成します。

カスタムデータ識別子を選択(my-number)

6. 結果の確認

マイナンバーが書かれたファイル customers.csv と support-ticket.txt が、新たに検知されていることが分かります。

これで、マイナンバーはカスタム識別子で検出できることが確認できました。

検出結果 4件


番外編: 検知をメールで通知する

Amazon Macie の検知を EventBridge・SNS と組み合わせることで、機密データを検知したときにメールで通知できることも確認しました。

Macie が機密データを検出すると EventBridge に Finding が送られ、それをトリガーに SNS 経由でメールが届く、という流れです。構成図は以下になります。

構成図 S3 → Macie → EventBridge → SNS → ユーザー

実際に届いたメール文がこちらです。重要度・検出タイプ・バケット名・オブジェクト名が記載されており、どのファイルで何が見つかったのかがひと目で分かります。

実際のメール


感想

実際に触ってみて、カスタムデータ識別子で検知する条件を柔軟に変えられるのは便利だと感じました。

EventBridge・SNS と組み合わせれば「検知したら即通知」まで自動化できるので、S3 に機密情報が紛れ込んでいないかを継続的に見張る仕組みとして、十分実用的だと感じました。

誰かのお役に立てば幸いです。

この記事は私が書きました

高橋 憲太

記事一覧

パーソル&サーバーワークスの高橋です。 猫も犬も好きです。

高橋 憲太

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。