Amazon Macieとは?S3の機密データ検出の仕組み・料金と日本語データの限界を実装者目線で解説
Amazon Macieは、Amazon S3に置かれたオブジェクトの中身を読み、クレジットカード番号やAPIキーのような機密データがどのバケットに眠っているかを検出するマネージドサービスです。バケットの公開設定を監視するだけでなく、ファイルを展開して本文を解析する点が他のAWSセキュリティサービスとの差になります。
この記事では、自動機密データ検出と検出ジョブという2つの動かし方、感度スコアの意味、日本の氏名や住所やマイナンバーが標準では検出されない前提とその回避策、バケット数・オブジェクト数・分析GBで積み上がる料金構造を実装の解像度で整理します。最後に、受託開発でMacieを採用すべき条件と見送ってよい場面を条件付きで示します。
まとめ:Amazon Macieの検出範囲と日本語データの限界・費用設計の結論
先に結論を置きます。Macieは「S3に限定された機密データの棚卸しツール」であり、日本の個人情報を検出したいなら自分で識別子を書く前提のサービスです。
- 対象はS3汎用バケットだけ:RDSやDynamoDBの中身は直接読めず、S3へエクスポートしてから当てる形になります。
- 日本向けの組み込み識別子は無い:マイナンバー・日本の運転免許証番号・日本の銀行口座番号に対応する識別子は提供されていません。氏名の検出もラテン文字が前提です。
- まず自動機密データ検出から始める:全バケットをサンプリングして感度スコアを付けるため、どこに機密データがありそうかの当たりが48時間ほどで付きます。
- 費用は分析GB単価で決まる:1GBあたり1USDという単価は、ログバケットを含めた瞬間に効きます。除外設計を先に決めてから有効化してください。
Amazon Macieの定義と検出対象|S3の機密データを見つける仕組み
Macieの機能は、バケットの状態監視とオブジェクト本文の解析の2層に分かれます。混同すると料金の見積もりが合いません。
Amazon Macieの定義|S3オブジェクトを読み解く検出エンジン
Macieは、S3汎用バケットのインベントリを日次で更新し、公開設定・暗号化設定・外部共有といったセキュリティ状態を評価します。この部分は中身を読まずに動き、設定が緩む変更を検知するとpolicy findingsを生成します。
もう一方の柱が、オブジェクトを取得して本文を解析する機密データ検出です。機械学習とパターンマッチングを組み合わせ、クレジットカード番号・秘密鍵・パスポート番号といった定義済みの型に当てはまるテキストを探します。前提知識はAmazon S3とは?オブジェクトストレージの仕組み・ストレージクラスと料金・採用判断を実装者目線で解説にまとめてあります。
検出対象のストレージクラスと形式|画像と圧縮階層10段までの制約
解析されるのは、対応ストレージクラスかつ対応形式のオブジェクトに限られます。対応クラスは Standard、Standard-IA、One Zone-IA、Intelligent-Tiering、Glacier Instant Retrieval、RRS。S3 Glacier Deep Archive と S3 Express One Zone は対象外で、ディレクトリバケットそのものが分析されません。
形式は、Avro・Parquet、gz・tar・zipの圧縮アーカイブ、PDF・Excel・Word、eml形式のメール、CSVやJSONを含む非バイナリテキストが対象です。画像・音声・動画は分析されません。対象外は分類不能オブジェクトとして黙って飛ばされるため、「検出ゼロ=安全」と読み違えないでください。
圧縮ファイルは中身まで展開されますが、ネスト10階層・抽出ファイル数100万件・抽出バイト数合計10GBが上限です。単一ファイルの上限も形式ごとに決まっており、PDFは1,024MB、Excelとwordは512MB、テキストやtarは20GB。分析時間は1ファイル10時間で打ち切られます。
自動機密データ検出と検出ジョブの違い|感度スコアの読み方と使い分け
機密データを探す経路は2つあります。どちらを先に回すかで初期費用も変わります。
自動機密データ検出の動き方|48時間で結果が出始めるサンプリング
自動機密データ検出は、有効化すると全ての汎用バケットを対象に日次で動き続けます。代表的なオブジェクトをサンプリングして解析するため全件スキャンではなく、結果は有効化から48時間以内に出始めます。
分析に使われるのは、既定ではAWSが推奨するマネージドデータ識別子のセットです。ここに自作のカスタムデータ識別子や許可リストを足したり、ログを溜めているバケットを除外したりできます。組織で使う場合は、委任管理者アカウントがメンバーアカウントのバケットまで一括で可視化します。
感度スコア-1から100の読み方|50は未分析でありゼロ検出ではない
自動検出が有効なバケットには感度スコアが付きます。読み方を外すと運用の初動を間違えます。
| スコア | ラベル | 実際に起きていること |
|---|---|---|
| -1 | Classification error | 分類エラーで解析できていない |
| 1〜49 | Not sensitive | 解析済みで検出が少ない |
| 50 | Not yet analyzed | 未着手か権限で読めない |
| 51〜99 | Sensitive | 機密データを検出済み |
| 100 | Sensitive | 手動で割り当てた固定値 |
厄介なのが50です。有効化直後の初期値でありながら、バケットポリシーがMacieのアクセスを拒否している場合も50のまま止まります。数日たっても50が並ぶバケットは、安全なのではなく読めていない可能性を先に疑ってください。-1も同様で、鍵を参照できないオブジェクトが原因になります。暗号化まわりの権限はAWS KMSとは?仕組み・料金とキーポリシー設計・採用判断を実装者目線で解説で扱ったキーポリシー側の設定に依存します。
1〜49の幅も直感と逆で、49に近いほど解析したオブジェクトが少なく、1に近いほど多数を解析した結果として検出が少ない状態を示します。数値が低いほど安心材料が厚い、と読んでください。
検出ジョブを併用する場面|対象を絞った深い分析と定期実行の設計
機密データ検出ジョブは、対象バケットと識別子を明示して走らせる全件寄りの分析です。1ジョブで指定できるバケットは1,000、カスタムデータ識別子は30まで。1回限りの実行と日次・週次・月次の定期実行を選べます。
実務では役割を分けます。自動検出で感度スコアの高いバケットを洗い出し、監査対象となるバケットだけをジョブで深掘りする流れです。最初から全バケットにジョブを当てると、分析GBがそのまま請求に乗ります。なお感度スコアはジョブの結果を反映しません。
マネージドデータ識別子と日本の個人情報|マイナンバーが出ない理由
ここが日本の案件で最初に詰まる部分です。カタログを見ずに導入すると、検出ゼロという結果を誤読します。
マネージドデータ識別子の3カテゴリ|認証情報・金融・個人情報の別
組み込みの識別子は、認証情報(Credentials)、金融情報(Financial information)、個人情報(PHIとPII)の3カテゴリに整理されています。認証情報にはAWSシークレットアクセスキー、OpenSSH秘密鍵、PGP秘密鍵、JWT、Stripe APIキー、Google Cloud APIキーなどが並びます。
金融情報はクレジットカード番号・有効期限・セキュリティコード、各国の銀行口座番号やIBANが対象です。個人情報側は運転免許証番号・パスポート番号・納税者番号などが国ごとに用意されています。多くの識別子は、値の近くにキーワードが存在することを検出条件に含みます。IBANのように数字の構造だけで判定できるものはキーワード不要です。
日本向け識別子が存在しない前提|氏名と住所の検出が届かない範囲
公開されている識別子一覧に、日本を対象国とするものは含まれていません。マイナンバー(個人番号)、日本の運転免許証番号、日本のパスポート番号、日本の銀行口座番号のいずれも、専用のマネージドデータ識別子が無い状態です。
汎用の識別子も日本語には届きません。氏名を検出するNAMEはラテン文字が前提で、漢字氏名は検出対象外です。住所のADDRESSは豪州・ブラジル・カナダ・フランス・ドイツ・イタリア・スペイン・英国・米国が対象で、日本の住所表記は含まれません。電話番号も日本は対象外です。
つまり日本語の顧客名簿を読ませても、クレジットカード番号や認証情報は拾える一方、氏名・住所・電話番号・マイナンバーはほぼ素通りします。国内案件でPIIの棚卸しを目的にするなら、カスタムデータ識別子の作成が実質的な必須作業です。概念そのものの整理はPII(個人を特定できる情報)とは?piiデータの定義・種類と個人情報の違いを参照してください。
カスタムデータ識別子の設計|正規表現とキーワード近接の実装指針
日本語データを扱う以上、カスタムデータ識別子の設計が成果を決めます。制約が独特なので、書く前に押さえる値があります。
正規表現の制約|後方参照とキャプチャ非対応・512文字までの上限
Macieが解釈するのはPCREのサブセットです。後方参照、キャプチャグループ、条件パターン、埋め込みコード、グローバルフラグ、先読みと後読みのゼロ幅アサーションは使えません。正規表現の長さは512文字までです。
性能面の制限にも注意が必要です。\d{100,1000} のような範囲指定の繰り返しはコンパイルが通らず、\d{100,} のような開放型へ書き換える対応が必要です。大文字小文字を無視したい箇所には、フラグの代わりに (?i) を使います。アンカーが行頭行末ではなくファイル全体の先頭末尾に効く点も、書式チェック用の正規表現を流用するときに引っかかります。
キーワードと最大一致距離|既定50文字を日本語データで見直す観点
正規表現だけでは誤検出が増えます。そこで、一致テキストの近くに存在すべきキーワードを最大50個まで指定できます。各キーワードは3〜90文字で大文字小文字を区別しません。逆に、含まれていたら除外する無視ワードは最大10個・4〜90文字で、こちらは区別します。
近接の判定を握るのが最大一致距離です。キーワードの末尾から一致テキストの末尾までの文字数で、1〜300の範囲を指定でき、既定は50文字となっています。CSVやExcelでは列名との対応で判定され、非構造テキストでは文字数距離で判定されるという違いを踏まえて距離を決めます。説明文が値の前に挟まる帳票では、既定の50文字では届きません。
重大度しきい値と作成後の不変性|先にテストを回す運用ルールの決め方
検出結果の重大度は既定ではすべてMediumです。出現回数に応じてLow・Medium・Highのしきい値を最大3段階で設定でき、最小しきい値未満なら結果自体を作らない抑制もかけられます。1件の混入と1万件の混入を同じ扱いにしないための設定です。
注意すべきは、カスタムデータ識別子が作成後に変更できない点。監査の履歴を不変に保つための仕様であり、修正したければ新規作成して古いものを外す運用になります。作る前にサンプルデータで挙動を確認してください。コンソールの評価欄のほか、次のコマンドでも検証できます。
aws macie2 test-custom-data-identifier --regex "[0-9]{12}" --keywords "マイナンバー" "個人番号" --maximum-match-distance 100 --sample-text "個人番号 123456789012"
Amazon Macieの料金体系と分析対象外|費用が跳ねる条件を先に潰す
Macieの請求は3つの要素に分かれます。どこで膨らむかが分かっていれば、有効化前に手が打てます。
3つの課金要素|バケット評価とオブジェクト監視と分析GB単価の別
us-east-1の公開価格(2026年7月時点)では、S3バケットの評価が1バケットあたり月0.10USDで、課金対象は最大10,000バケット。オブジェクトの監視は10万オブジェクトあたり月0.01USD。機密データの検出は自動検出・ジョブのいずれも1GBあたり1USDです。毎月1GBの無料枠が付き、初回は30日間のトライアルで最大150GBまで検査できます。単価はリージョンで異なるため、東京リージョンでの見積もりは料金計算ツールで確認してください。
比率を見ると構造が分かります。バケット1,000個の評価は月100USD、オブジェクト1億件の監視は月10USD程度ですが、1TBを解析すれば約1,000USD。費用のほぼ全部が分析容量から来ます。月間分析容量は既定5TBで、上限緩和の申請で1,000TBまで引き上げられます。
費用が跳ねる典型パターン|ログバケットと巨大ファイルの除外設計
請求が想定を超える原因は、ほぼ次の3つです。
- ログバケットを対象に含める:CloudTrailやALBのアクセスログは容量が大きく、検出価値は低い部類です。自動検出の除外リストへ先に入れておきます。
- 大容量アーカイブを展開させる:zipやtarは中身まで展開されるため、圧縮後のサイズと分析対象バイト数が乖離します。バックアップ置き場は除外候補です。
- ジョブを日次で全件に当てる:定期実行ジョブは実行のたびに課金されます。差分だけ見たいなら、作成日時や接頭辞、タグで対象を絞り込みます。
検出結果の後続処理|EventBridgeとSecurity Hubへ流す実装の型
検出しただけでは運用になりません。findingsをどこへ流し、どこまで自動化するかを設計します。
検出結果の2系統|findingsと詳細な検出結果ログの保持期間の差
Macieが出力する結果は2系統。1つはfindingsで、バケット設定の劣化を示すpolicy findingsと、機密データの検出を示すsensitive data findingsに分かれます。後者は認証情報、金融情報、個人情報、カスタム識別子一致、複数該当の5タイプです。
findingsの保持期間はいずれも90日で、監査で過去1年分を求められると手元に残りません。もう1系統の検出結果ログには解析した個々のオブジェクトの詳細が記録されますが、こちらは出力先のS3バケットとKMSキーを自分で設定します。長期保存が要件なら、有効化と同時にこのリポジトリ設定まで済ませてください。
EventBridge連携の実装|通知と自動遮断を分ける設計の勘どころ
findingsはEventBridgeへ配信されるため、イベントパターンで重大度やfindingタイプを絞り、Lambdaや通知へつなげる形が定番です。イベント駆動側の仕組みはAmazon EventBridgeとは|イベント駆動連携の仕組み・料金・実装と採用判断を解説で整理しています。
実装で分けるべきは、通知と自動遮断です。公開設定が変わったというpolicy findingsには、パブリックアクセスブロックを再適用する自動修復が成立します。一方、機密データを検出したというfindingsでオブジェクトを自動削除する実装は事故を招きます。誤検出があり得る以上、こちらは隔離バケットへの移動か通知に留めてください。Security Hub CSPMを使っているなら、Macie.1とMacie.2のコントロールで有効化状態そのものを監視できます。誰がどの設定を変えたかの追跡はAWS CloudTrailとは?監査とセキュリティを強化する仕組みの側で押さえます。
受託開発でAmazon Macieを採用する条件と見送る場面の判断基準
論点はMacieを使うかどうかではなく、どこまで作り込むかにあります。
Amazon Macieを採用する3つの条件|監査要件とデータ棚卸しの必要
次のいずれかに当てはまるなら、Macieの導入価値があります。
- どこに何があるか分からないS3が既にある:長年運用したバケット群を人手で確認するのは現実的ではありません。自動検出でスコアを付け、優先順位を決める使い方が最も費用対効果に見合います。
- 認証情報の混入を継続的に見張りたい:秘密鍵やAPIキーの検出は日本語の壁が無く、組み込みの識別子だけで機能します。デプロイ資材に鍵が混ざる事故の検出手段になります。
- 監査で保管データの分類を求められる:機密データの所在を把握していると示す証跡が要る場合、findingsと感度スコアが客観的な資料になります。制度側の要件は個人情報保護法改正とは?2026年成立の令和8年改正で企業対応はこう変わるで確認できます。
採用を見送ってよい場面|対象がS3外や日本語主体のときの代替案
逆に見送ってよいのは、守りたいデータがS3の外にある場合です。RDSやDynamoDBに個人情報が入っているなら、Macieは直接読めません。ParquetでS3へエクスポートしてジョブを当てる回避策はありますが、エクスポート運用とストレージ費用が増えます。データベース側の暗号化とアクセス制御を先に固めるほうが投資対効果は高くなります。
もう1つは、検出したいのが日本語の氏名・住所だけというケースです。組み込みの識別子が役に立たず、カスタムデータ識別子で漢字氏名を安定して拾うのも簡単ではありません。漢字2〜4文字を拾えば誤検出が大量に出ますし、姓名リストとの突き合わせは守備範囲外です。アプリケーション側でデータ分類のメタデータを付与する設計へ寄せるほうが確実に回ります。バケットが少数で、格納するデータの種類を開発側が把握している小規模案件も、棚卸しする対象がありません。
機密データ保護の基盤構築を外部委託する際に確認する要件と成果物
Macieの導入は、有効化するだけなら数分で終わります。工数が乗るのは、除外バケットの選定、日本語データ向けカスタムデータ識別子の設計とテスト、findingsの通知経路、検出後の是正フローの整備です。外部へ委託するなら、対象バケットの範囲と除外基準、識別子の一覧と誤検出率の測定方法、findingsの保管先と保持期間、検出時の対応手順の4点を要件として明示しておくと、引き渡し後に運用が止まりません。
一創ではAWS上の設計・構築を受託し、S3のデータ配置からIAM・KMS・Macieを含むデータ保護の構成をIaCのコードとして納品しています。インフラ構築(AWS・Google Cloud・Azure)では、既存環境の棚卸しから移行まで相談いただけます。
よくある質問
導入検討でよく出る5つの質問に答えます。
Amazon MacieとGuardDutyはどう使い分けますか?
見ているものが違います。GuardDutyはCloudTrailやVPCフローログから不審な挙動を検出する脅威検出サービスで、S3への異常なアクセスには反応しますが、オブジェクトの中身は読みません。「攻撃されているか」を見るのがGuardDuty、「漏れたら困るデータがどこにあるか」を見るのがMacieです。詳細はAmazon GuardDutyとは?AWS環境の脅威検出サービスの基本的な概要と特徴を初心者向けに解説で比較できます。両方を有効化しても機能は重複しません。
Macieはマイナンバーを検出できますか?
標準では検出できません。日本を対象国とするマネージドデータ識別子が無いためです。検出するには、12桁の数字を拾う正規表現に「マイナンバー」「個人番号」といったキーワードと最大一致距離を組み合わせたカスタムデータ識別子を自作します。数字だけを条件にすると注文番号や管理IDを大量に拾うため、キーワード近接の設定が精度を左右します。
KMSで暗号化したS3オブジェクトも分析できますか?
MacieのサービスロールがそのKMSキーの使用を許可されていれば分析できます。SSE-S3、SSE-KMS、2024年2月からはDSSE-KMSにも対応。逆にキーポリシーで復号が許可されていないと、そのバケットの感度スコアは-1(分類エラー)になります。スコアが-1で止まるバケットを見つけたら、カバレッジ画面でエラー内容を確認し、キーポリシー側にMacieのサービスリンクロールを追加してください。
Macieを有効化するとS3のリクエスト料金も増えますか?
はい、増加の対象です。Macieは分析対象をS3から取得するため、その分のGETリクエスト料金が別途発生し、分析料金1USD/GBとは別勘定になります。加えて、Intelligent-Tieringの低頻度アクセス階層やGlacier Instant Retrievalのオブジェクトを読むと取り出し料金も乗ります。アーカイブ層に大量のデータを置く環境では、この間接費用まで含めて試算してください。
検出結果は90日を過ぎると消えてしまいますか?
findingsそのものは90日で参照できなくなります。長期に残す経路は2つ。検出結果ログの出力先S3バケットを設定して解析の詳細を蓄積するか、EventBridge経由でfindingsをS3やデータストアへ転送するかです。監査で年単位の保管が要るなら、有効化と同時に組んでおいてください。
関連記事
- AWS KMSとは?仕組み・料金とキーポリシー設計・採用判断を実装者目線で解説:暗号化オブジェクトを解析させる鍵の設計。
- Amazon S3とは?オブジェクトストレージの仕組み・ストレージクラスと料金・採用判断を実装者目線で解説:検出対象となるストレージクラスの前提知識。
- AWS IAMとは?仕組み・ユーザー/ロール/ポリシーの違いと権限設計のベストプラクティスを実装者目線で解説:Macieのサービスロールと権限委任の基礎。
- 個人情報保護法とは?その定義と基本的な概念を解説:検出対象を決める上流の法的要件。
- クラウドセキュリティとは?リスクと責任共有モデルから見た企業の守り方:責任共有モデルにおけるデータ保護の位置。