outputAWS Macie入門|S3の個人情報・機密データを自動検出してコンプライアンスを強化する実践ガイド

Cloud Security

S3にどれだけの機密データが眠っているか、正確に把握できているだろうか。オンプレ時代は「あの共有フォルダに個人情報が入っているはずだ」という感覚的な管理で何とかなっていた。しかしクラウドに移行すると、バケットの数が増え、開発者がそれぞれ自由にオブジェクトをアップロードし、気づいたときには数万件の個人情報が本来守られるべき設定をされていないバケットに放置されている——そんな状況に陥りやすい。

AWS Macieは、そのモヤモヤを機械学習で解消するマネージドセキュリティサービスだ。S3バケット内のデータを自動的にスキャンし、個人情報(PII)やクレジットカード番号、APIキーといった機密データを検出して通知してくれる。

この記事では、AWS Macieの仕組みと有効化手順、料金の考え方、実際のコンプライアンス対応への活用方法を、オンプレのセキュリティ管理と比較しながら解説する。

outputAWS Macie入門|S3の個人情報・機密データを自動検出してコンプライアンスを強化する実践ガイド

なぜS3の機密データ管理がオンプレより難しいのか?

オンプレ環境のファイルサーバーでは、フォルダ構造と担当者の「記憶」が機密データ管理の骨格になっていることが多い。「個人情報が入ったフォルダにはアクセス制限をかけている」という運用で、監査もそれなりにできていた。

クラウド(特にS3)になると、状況が大きく変わる。

バケット数の増加: 開発・ステージング・本番環境でバケットが乱立し、どこに何が入っているか全体像が見えにくい
オブジェクト数の爆発的増加: 数百万件のログファイルの中に、意図せず個人情報が混入するケースがある
チームによる分散操作: 開発チームがCSVをアップロードして確認作業をした後、削除せずに放置するケースが後を絶たない
公開設定ミス: バケットポリシーのミスで、一時的にパブリックアクセスが開放されてしまうリスクがある

個人情報保護法の改正(2022年施行)やGDPRの観点から、「どこに個人情報があるかわからない」は法的リスクに直結する。Macieはこの「どこにあるかわからない」を解決するためのサービスだ。

AWS Macieとは?機能と仕組みの概要

AWS Macieは、Amazon S3に特化したデータセキュリティサービスだ。機械学習と自然言語処理(NLP)を組み合わせて、バケット内のデータを自動分類し、機密情報の存在と漏洩リスクを評価する。

1. 自動データ分類

Macieは以下のカテゴリのデータを自動検出する。

個人識別情報(PII): 氏名、住所、電話番号、メールアドレス、マイナンバーなど
金融情報: クレジットカード番号、銀行口座番号
認証情報: APIキー、AWSアクセスキー、パスワードハッシュ
医療情報: 診断情報、処方箋データ(米国HIPAA基準に準拠した検出)
独自データ識別子(カスタム): 社員ID番号や社内フォーマットのIDも正規表現で定義して追加できる

2. バケットのセキュリティ評価

Macieはスキャンとは別に、バケット設定の継続的な評価も行う。具体的には以下を自動チェックする。

・パブリックアクセスが開放されているか
・バケット暗号化が有効化されているか
・レプリケーション設定の状態

これにより、「中身は危険ではないが、設定が危険なバケット」も可視化できる。バケット評価は有効化後すぐに始まり、追加の設定は不要だ。

3. Security Hubとの統合

Macieの検出結果は、AWS Security Hubに自動連携できる。Security Hubで一元管理することで、GuardDuty(脅威検知)やAmazon Inspector(脆弱性スキャン)の結果と横断的に確認でき、セキュリティ運用が大幅に効率化する。

Macieを有効化して最初のスキャンを実行する

1. AWS Macieを有効化する

AWSコンソールでMacieを検索し、「Macieを使い始める」をクリックするだけで有効化できる。マルチアカウント環境では、AWS Organizationsと連携して管理アカウントから全子アカウントを一括有効化することが推奨される。

# AWS CLI で Macie を有効化する(東京リージョン) aws macie2 enable-macie --region ap-northeast-1 # Macie の現在のステータスを確認する aws macie2 get-macie-session --region ap-northeast-1

有効化した瞬間から、Macieはすべての対象S3バケットのメタデータ評価(バケット設定の監視)を開始する。この評価は30日間の無料トライアル期間中は無料で利用できる。

2. 機密データ検出ジョブを作成する

バケットの中身のスキャン(機密データ検出)はジョブとして別途作成する必要がある。コンソールの「ジョブ」メニューから設定する。

スコープ設定: 全バケット、特定バケット、タグフィルタリングで選択できる
スキャン深度: すべてのオブジェクト、または直近N日以内に変更されたオブジェクトのみに絞ることもできる(コスト削減に有効)
スケジュール: 1回限りのスキャン、毎日・週次・月次の定期スキャンから選択できる

初回は全体スキャン(1回限り)でどこに機密データが存在するかを把握し、その後は変更差分のみを定期スキャンする構成が費用対効果に優れている。

3. スキャン結果と検出結果を確認する

ジョブが完了すると、「検出結果」に機密データを含むオブジェクトの詳細が表示される。

・検出されたデータのカテゴリとオブジェクトパス
・検出された機密データの種類(PIIなのかAPIキーなのか)
・バケットポリシーとの整合性(公開バケットに機密データがある場合は重篤度「High」として分類される)

Amazon EventBridgeと連携すれば、検出結果をSlackに通知したり、AWS Lambda経由でS3バケットへのアクセスを自動的に遮断するパイプラインも構築できる。

料金の仕組みとコスト試算(2026年5月時点)

Macieの料金は大きく2つに分かれる。

料金項目 課金単位 料金(東京リージョン ap-northeast-1)
バケット評価(設定監視) S3バケット 1件あたり/月 $0.10(最初の250バケットまで)
機密データ検出(オブジェクトスキャン) 処理データ 1GBあたり $1.00

有効化後30日間の無料トライアルが提供されており、全機能を試用できる。

【コスト試算例(S3バケット50個、スキャン対象データ合計100GBの場合)】
・バケット評価: $0.10 × 50バケット = $5.00/月
・初回全体スキャン: $1.00 × 100GB = $100.00(初回のみ)
・月次差分スキャン(月10GB更新と仮定): $1.00 × 10GB = $10.00/月

安定稼働時は月$15前後で運用できる規模感だ。

【コスト削減のポイント】
・全オブジェクトではなく「直近30日変更分のみ」をスキャン設定にする
・アクセスログ等のログファイルは機密データが含まれにくい場合が多いため、タグで除外する
・ジョブ作成前に、コンソール内の「使用量見積もり」機能で料金をシミュレーションする習慣をつけると予算超過を防げる

応用・実務Tips:コンプライアンス対応への活用

【GDPRと個人情報保護法対応のエビデンスとして使う】

GDPRの「データマッピング義務」(どこに個人データがあるかを把握する義務)に対して、Macieの検出結果は有力な証跡になる。個人情報保護法の観点でも、「S3のどのバケットに誰の情報があるか」を答えられる状態を作ることは必須だ。Macieで定期スキャンを実施している事実そのものが、監査や内部統制のエビデンスとして機能する。

【カスタムデータ識別子で社内固有IDを検出する】

日本の企業では、マイナンバーや社員番号など独自フォーマットのIDが機密情報になることがある。Macieのカスタムデータ識別子機能を使えば、正規表現でパターンを定義して検出できる。

社員番号が「EMP-」+6桁数字の形式なら、以下のように設定するだけでS3オブジェクト内の該当パターンを自動検出する。

# カスタムデータ識別子の作成例(社員番号フォーマット: EMP-xxxxxx) aws macie2 create-custom-data-identifier \ --name "社員番号" \ --regex "EMP-[0-9]{6}" \ --description "社内社員番号フォーマット" \ --region ap-northeast-1

【Security Hubと組み合わせた3層防御を構築する】

Macie単体の運用より、Security Hub経由でGuardDutyやInspectorと統合した運用が強力だ。「Macieで機密データの所在を把握 → GuardDutyで不審なアクセスを検知 → Inspectorでインフラの脆弱性をスキャン」という3層防御が、クラウドセキュリティのベースラインになる。

セキュリティの基礎的な考え方については、姉妹サイトSecurityMasters.TOKYOでも詳しく解説している。

よくあるトラブルと対処法

【スキャンジョブが「一時停止」のまま進まない】

Macieジョブが「一時停止(Paused)」になる最も多い原因は、Macieのサービスロール(AWSServiceRoleForAmazonMacie)に、対象S3バケットへのアクセス権が付与されていないケースだ。バケットポリシーで明示的にDenyが設定されている場合も同様の症状が出る。

対処法としては、バケットポリシーを確認し、Macieのサービスプリンシパル(`macie.amazonaws.com`)からのアクセスを許可するステートメントを追加する。

【誤検知(フォールスポジティブ)が多い】

英語の文章に含まれる一般的な単語列がPIIとして誤検知されるケースがある。Macieの「許可リスト(Allow List)」機能を使って、特定のS3バケット、オブジェクトプレフィックス、または特定のテキストパターンを除外設定することで精度を調整できる。

【コストが想定より高くなってしまった】

「スキャン対象を全バケットにした」「定期スキャンのスコープに大容量バケットが含まれた」が原因になりやすい。ジョブ作成前に必ずコンソール内の使用量見積もりを確認する習慣をつけることが重要だ。既存のジョブを停止してスコープを絞り直した上で再作成するのが確実な対処法になる。

本記事のまとめ

やりたいこと Macieの機能 オンプレ相当
S3の機密データの所在を把握する 機密データ検出ジョブ DLP(データ損失防止)ツールによるファイルサーバースキャン
バケット設定のリスクを常時監視する バケット評価(継続的) 設定管理ツール / 定期監査
社内固有の識別子を検出する カスタムデータ識別子 DLPツールのカスタムルール
セキュリティアラートを一元管理する Security Hub連携 SIEMへのログ集約

AWS Macieは、S3の機密データ管理を「感覚から証拠へ」転換するサービスだ。30日間の無料トライアルがあるため、まず有効化してバケット評価の結果を見るだけでも、自社のS3セキュリティの現状が可視化できる。

コンプライアンス対応の観点でも、「Macieで定期スキャンを実施している」という事実は、監査や内部統制のエビデンスとして機能する。オンプレのDLPツールと同等の保護をクラウドに持ち込むための最初の一歩として、ぜひ試してほしい。

S3のセキュリティ、本当に大丈夫ですか?

「機密データがどこにあるかわからない」は、クラウド移行後にほぼ全員が直面する課題です。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。

コメント

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