こんにちは、ネクストモードの眞鍋です。
この記事では、まずAmazon Macieの基本を押さえたうえで、S3に人物のダミーデータと「宇宙人」を匂わせる文字列を配置し、Amazon Macieがそれを見分けられるかを検証します。
Amazon Macieは、機械学習とパターンマッチングを使って、Amazon S3内の機密データを自動的に検出・分類・保護するフルマネージドなデータセキュリティサービスです。
S3バケットに保存されたデータの中から、個人情報(PII)、認証情報、財務情報などの機密データを自動的にスキャンし、検出結果をダッシュボードで可視化します。
検出機能としては以下の2つとなります。
Macieは「S3に何が入っているか分からない」「機密データが混ざっていないか不安」という状況で特に役立ちます。
代表的なユースケースは次のとおりです。
個人情報やカード情報がどこに保存されているかを把握し、適切に管理することが求められるケースです。
Macieを使うことで、S3バケット全体をスキャンし、対象データの保管場所を特定できます。
開発者がAWSアクセスキーやAPIキーを誤ってS3にアップロードしてしまうケースは少なくありません。
Macieはこれらの認証情報を検出し、EventBridge経由でセキュリティチームに即座に通知できます。
オンプレミスからS3へのデータ移行や、アカウント間のデータ移行を行う際に、移行対象データに機密情報が含まれていないかを確認できます。
移行前にMacieでスキャンすることで、適切なアクセス制御や暗号化を計画できます。
Macieの料金はスキャンしたデータ量に比例します。大量のデータを持つ環境では、コストが想定以上に膨らむ可能性があります。
対策として、スキャン対象をプレフィックスで絞り込む、サンプリング率を調整する、スキャン頻度を適切に設定するなどの工夫が必要です。
まずは小規模なバケットで試してからスケールアウトすることをおすすめします。
Macieは機械学習とパターンマッチングで検出を行うため、誤検出が発生することがあります。
例えば、テストデータに含まれるダミーのクレジットカード番号や、ログファイル内のIPアドレスが個人情報として検出されるケースがあります。
許可リストやカスタムデータ識別子を活用して、誤検出を減らす運用が重要です。
Macieの検出結果はデフォルトで90日間保存されます。
90日を超えると自動的に削除されるため、長期保存が必要な場合はS3への検出結果のエクスポート設定を行ってください。
今回の検証では、次の前提で進めます。
ダミーデータとして、people_dummy.csvを用意し、検証用S3に設置します。
「宇宙」という単語をNGワードとし、即宇宙人の疑いをかけます。
ただし、「宇宙」という言葉は個人情報ではないため、そのままだとMacieが機密データとして扱わない可能性があります。
その場合は、後述のカスタムデータ識別子で「宇宙」を検知対象にします。
「宇宙人」という特定の文字列を確実に検知したい場合は、カスタムデータ識別子を使います。
たとえば、次のような方針が考えられます。
宇宙)で検知する。Macieのサービスページ左ペインの「カスタムデータ識別子」→「作成」を順次クリックします。
「正規表現」に「宇宙」を入力し、「送信」をクリックします。
今回は未設定ですが、オプション項目については下記の通りです。
これらのオプションを組み合わせると、より検出精度を高めることが可能です。
次に、Macieのジョブを作成して、対象バケットをスキャンします。
Macieのサービスページ左ペインの「ジョブ」→「ジョブを作成」を順次クリックします。
「S3バケットを選択画面」で検証用のS3バケットを選択し、「次へ」をクリックします。
「範囲を絞り込む」画面で「ワンタイムジョブ」を選択し、「次へ」をクリックします。
補足として、サンプリング深度を調整することにより、対象バケット内のオブジェクトのうち、何パーセントをスキャンするかを指定することが可能です。
「マネージドデータ識別子を選択する」画面では「カスタム」→「マネージドデータ識別子を使用しない」→「次へ」を順次クリックします。
今回は使用しませんが、基本的にはマネージドデータ識別子を使用し、カスタムデータ識別子で補う併用構成が一般的です。
「カスタムデータ識別子を選択」画面で、先ほど作成したものを選択し、「次へ」をクリックします。
一般設定の入力画面で、ジョブ名を入力し「次へ」をクリックします。
設定の確認画面にて「送信」をクリックすると、ジョブが開始されます。
ジョブが完了したら、Macieのサービスページ左ペインの「検出結果」をクリックし、結果を確認します。
people_dummy.csv に関して、合計4つのワードが検出されていることが分かります。
Macieの検出結果をもとにpeople_dummy.csvを調査すると、以下の4名に宇宙人の疑いがかけられました。
この中で、大野さんについてはただの天体観測好きが引っかかっただけのようですが、他3人は明らかに宇宙人であることが分かりました。
今回はAmazon Macieの概要と構成要素を整理したうえで、S3に仕込んだ人物データと「宇宙人」を示す文字列を検知し、件数を特定できるかという流れで検証手順をまとめました。
標準のマネージドデータ識別子に加え、カスタムデータ識別子を作成することで、組織固有の検知ルールを柔軟に実装できます。
本番運用では、検出対象の範囲やサンプリング深度を調整しながら、コストとセキュリティのバランスを取ることが重要です。
まずは小規模なバケットで検証を重ね、誤検出や除外設定を調整したうえで、全体に展開することをおすすめします。