Cloud Service
Amazon Macie
S3内の機密データを機械学習で自動的に発見・分類し、データ漏えいリスクを可視化するデータセキュリティサービス
- 1.S3バケットを継続的に評価し、暗号化状況や公開設定などのデータセキュリティ態勢を可視化する
- 2.機械学習とマネージド識別子で個人情報や認証情報などの機密データを発見・分類する
- 3.検出結果はEventBridgeやSecurity Hubに連携でき、通知や自動対応のワークフローに組み込める
Amazon Macie は、Amazon S3 に保管されたデータを機械学習とパターンマッチングで分析し、個人情報や認証情報といった機密データを自動的に発見・分類するマネージド型のデータセキュリティサービスです。データのありかと露出リスクを可視化し、漏えいの兆候を早期に把握できるようにします。
解決する課題
組織が S3 に蓄積するデータ量が増えるほど、どのバケットにどのような機密データが含まれているのかを人手で把握し続けることは難しくなります。個人を特定できる情報や認証情報が意図せず公開設定のバケットに置かれていたり、暗号化されないまま保管されていたりすると、データ漏えいやコンプライアンス違反につながります。
こうしたリスクを抑えるには、保管されているオブジェクトの中身を継続的に検査し、機密データの種類と場所、そしてバケットのセキュリティ設定を突き合わせて評価する仕組みが必要です。これを自前で構築・運用するのは負荷が大きく、検査ルールの陳腐化も避けられません。Macie は、S3 を対象としたデータの発見・分類とバケットの態勢評価をマネージドに提供することで、運用負荷を抑えつつ機密データの所在とリスクを継続的に把握できるようにします。
主要概念と用語
- 機密データの検出(Sensitive data discovery): S3 オブジェクトの内容を検査し、機密に該当するデータの有無と種類を判定する処理。
- マネージドデータ識別子(Managed data identifier): AWS があらかじめ用意した、氏名・住所・クレジットカード番号・各種認証情報などを見つけるための組み込みの検出パターン。
- カスタムデータ識別子(Custom data identifier): 利用者が正規表現やキーワードなどで独自に定義する検出パターン。社内固有の識別子などに対応する。
- 検出結果(Finding): Macie が機密データやセキュリティ上の問題を検出した際に生成するレコード。機密データに関するものと、バケットのポリシーに関するものがある。
- S3 バケットの態勢評価: 各バケットの公開設定、暗号化の状況、共有状態などを継続的に評価し、リスクのあるバケットを可視化する機能。
- 検出ジョブ(Sensitive data discovery job): 対象バケットとスケジュール、適用する識別子を指定して機密データ検査を実行する単位。
- 許可リスト(Allow list): 機密として扱わないテキストを登録し、誤検出を抑えるためのリスト。
- 委任管理者アカウント: AWS Organizations 連携時に、組織全体の Macie を統括するために指定するアカウント。
仕様・制限・クォータ
Macie はリージョンごとに有効化するサービスであり、検査したい S3 データが存在するリージョンそれぞれで設定します。有効化すると、対象アカウントのバケットの在庫情報と態勢(公開・暗号化・共有の状況)の自動評価が始まります。一方、オブジェクトの内容を実際に検査する機密データの検出は、検出ジョブの作成や自動検出機能の有効化によって行います。
検出対象として扱えるファイル形式やアーカイブには対応範囲があり、サポート外の形式は検査されません。検出ジョブの数や同時実行、カスタムデータ識別子の数などにはサービスクォータが設定されています。具体的な対応形式やクォータの上限、検出結果の保持期間は変動しうるため、最新の公式ドキュメントとサービスクォータの値を確認してください。検査対象のデータ量が多い場合は、対象バケットやサンプリング範囲を絞ってコストと処理量を制御します。
内部の仕組み
Macie は大きく二つの機能で構成されます。一つはバケット単位の態勢評価で、S3 の在庫情報をもとに各バケットの公開状態や暗号化、外部共有の有無を継続的に評価します。これにより、機密データの検査を実行する前段として、リスクの高いバケットを把握できます。
もう一つは機密データの検出で、検出ジョブや自動検出によって対象オブジェクトの内容を取得し、マネージドデータ識別子やカスタムデータ識別子と照合します。機械学習とパターンマッチングを組み合わせ、個人情報や認証情報などの種類を判別します。検出された機密データやバケットのポリシー上の問題は検出結果として生成され、種類と重大度が付与されます。生成された検出結果は Macie コンソールで確認できるほか、Amazon EventBridge に送信され、AWS Security Hub にも連携できます。これにより、通知や自動対応のワークフローを後段で組み立てられます。
設計パターン / ベストプラクティス
代表的な構成は、AWS Organizations と連携し、委任管理者アカウントから組織全体の Macie を一元管理するパターンです。新規アカウントを自動で有効化対象に含める設定にしておくと、有効化漏れを防げます。まずバケットの態勢評価で公開や暗号化未設定のバケットを洗い出し、そのうえでリスクの高い対象に絞って機密データの検出ジョブを実行すると、効率よくリスクを把握できます。
検出結果は EventBridge ルールで受け取り、Amazon SNS による通知や AWS Lambda、AWS Step Functions による自動対応へつなげます。誤検出が多い場合は許可リストやカスタムデータ識別子で検出条件を調整します。検出結果は Security Hub に集約して、他のセキュリティサービスのシグナルと横断的に管理する構成もよく採られます。
全バケットに対していきなり機密データ検出を実行するとコストと処理量が大きくなります。まずバケットの態勢評価で公開や暗号化未設定の高リスクなバケットを特定し、対象を絞って検出ジョブを実行するのが効率的です。
運用・監視
日々の運用では、生成された検出結果を重大度に応じてトリアージします。バケットの公開や暗号化未設定といった態勢上の問題は、根本原因となる設定を修正します。機密データの検出結果については、想定どおりの保管なのか、本来あってはならない露出なのかを判断し、必要に応じて格納先の見直しやアクセス制御の強化を行います。
繰り返し発生する既知の誤検出には許可リストを整備し、アラート疲れを防ぎます。検出ジョブはスケジュール実行で定期的に最新状態を評価し、組織全体での有効化状況や各リージョンの設定を定期的に点検します。検出結果は Security Hub や SIEM へ集約し、他のシグナルと相関させて全体像を把握します。
コスト
Macie の料金は、主に二つの要素に基づく従量課金です。一つはバケットの態勢評価で対象となる S3 バケットの数や評価量、もう一つは機密データ検出で実際に検査したデータ量です。検査対象のオブジェクトが多いほど、また検出ジョブの実行頻度が高いほどコストが増加します。
機密データの検出は処理したデータ量に応じて課金されるため、大量のバケットを無条件に全件検査するとコストが膨らみます。対象バケットの選定やサンプリング、スケジュールの調整で検査量を管理してください。具体的な単価は変動しうるため、最新の料金ページで確認してください。
新規利用者向けには一定期間の無料トライアルが提供されることが一般的で、態勢評価から先に試して全体像を把握したうえで、内容検査の範囲を計画的に広げると安全です。
セキュリティ
Macie が S3 オブジェクトの内容を検査するには、対象データへの読み取り権限が必要です。アクセスは AWS IAM とサービスにリンクされたロールで制御し、最小権限の原則に沿って設計します。KMS で暗号化されたオブジェクトを検査する場合は、対応する KMS キーへの復号権限が適切に付与されている必要があります。
検出結果には機密データの種類や所在といった機微な情報が含まれるため、検出結果のサンプルやエクスポート先の保護、暗号化、アクセス制御を厳格に行います。Macie は検知・可視化を担うサービスであり、発見したリスクに対する是正(公開設定の修正や暗号化の適用など)と組み合わせて、データ保護の多層防御を構成する一要素として位置づけます。
Well-Architected の観点
セキュリティの柱の観点では、Macie はデータの分類と保護に直接寄与します。どこに機密データがあるかを把握することは、適切なアクセス制御や暗号化、保管場所の設計の前提となり、データ中心のセキュリティ態勢を支えます。検出をトリガーとした自動対応を組み込むことで、露出への対応時間を短縮できます。
組織全体での一元的な有効化と検出結果の集約管理は、ガバナンスとコンプライアンス対応の可視化につながります。検知から通知、是正までの一連のフローをコード化しておくことで、再現性のあるデータ保護運用を実現できます。
試験で問われるポイント
- Macie は S3 を対象に、機械学習とパターンマッチングで機密データを発見・分類するサービスであること。
- バケットの態勢評価(公開・暗号化・共有状況)と、オブジェクト内容の機密データ検出の二つの機能があること。
- 検出にはマネージドデータ識別子と、利用者が定義するカスタムデータ識別子を使えること。
- リージョンごとに有効化が必要で、Organizations の委任管理者でマルチアカウントを一括管理できること。
- 検出結果は EventBridge や Security Hub に連携し、SNS 通知や Lambda による自動対応につなげられること。
- データの分類・保護は Macie、脅威検知は GuardDuty といった、対象とするセキュリティ領域の違い。
関連サービス・比較
Amazon GuardDuty は、各種ログを機械学習で分析して不正アクセスや脅威を検知する脅威検知サービスです。Macie が S3 内のデータそのものを検査して機密データの所在とデータ漏えいリスクを可視化するのに対し、GuardDuty は環境の挙動やログから攻撃や侵害の兆候を検知します。両者は対象とする領域が異なり、組み合わせて使うのが一般的です。
| 観点 | Macie | GuardDuty |
|---|---|---|
| 主な対象 | S3内のデータの中身 | 環境の挙動やログ |
| 主な役割 | 機密データの発見と分類 | 不正アクセスや脅威の検知 |
| 検出方式 | 機械学習とパターンマッチング | 機械学習と脅威インテリジェンス |
| 主な狙い | データ漏えいリスクの可視化 | 攻撃や侵害の早期検知 |
ハンズオン / CLI例
次の例は、現在のリージョンで Macie を有効化し、機密データ検出ジョブを作成して検出結果を確認するものです。
# Macie を有効化(バケットの態勢評価が開始される)
aws macie2 enable-macie
# 対象バケットを指定して一回限りの機密データ検出ジョブを作成
aws macie2 create-classification-job \
--job-type ONE_TIME \
--name "sensitive-data-scan" \
--s3-job-definition '{"bucketDefinitions":[{"accountId":"123456789012","buckets":["my-target-bucket"]}]}'
# 作成した検出ジョブの一覧を確認
aws macie2 list-classification-jobs
# 生成された検出結果の ID 一覧を取得
aws macie2 list-findings
# 取得した検出結果の詳細を確認
aws macie2 get-findings --finding-ids <finding-id>
AWS Service
Amazon Macieを実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
セキュリティ・ID
比較で見る軸
クラウド: AWS / カテゴリ: セキュリティ・ID / 難易度: intermediate
導入後に効く点
機械学習とマネージド識別子で個人情報や認証情報などの機密データを発見・分類する
先に潰すリスク
サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。
- クラウド
- AWS
- カテゴリ
- セキュリティ・ID
- 難易度
- intermediate
- 関連資格
- SCS-C02
- 設計柱
- security
判断チェックリスト
- 自社の用途が「セキュリティ・ID / security」に近いか確認する。
- 強みである「S3バケットを継続的に評価し、暗号化状況や公開設定などのデータセキュリティ態勢を可視化する」が本当に評価軸になるか確認する。
- 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。