Amazon Macieの自動検出を試してみた
1. はじめに
こんにちは、yoshiです。今回は、Amazon Macieに関するAWSブログを参考に、PoCを行い、確認した内容について書きたいと思います。
Amazon Macieの名前はよく目にしますが、業務などで使用したことがなかったので、実際にサービスに触れてみる良い機会となりました。
AWSブログ - How to perform a proof of concept for automated discovery using Amazon Macie
https://aws.amazon.com/jp/blogs/security/proof-of-concept-for-automated-discovery-using-amazon-macie/
2. Amazon Macieの概要
Amazon Macie は、機械学習とパターンマッチングを使用して機密データを検出し、データセキュリティリスクを可視化し、それらのリスクに対する自動保護を可能にするデータセキュリティサービスです。
https://docs.aws.amazon.com/ja_jp/macie/latest/user/what-is-macie.html
と公式サイトでは説明されています。
いろいろな機能がありますが、まずメインな機能として、Amazon Macieは、S3バケットに対して、大きく2つのタイプの情報の検出を行っています。
- S3バケット内の機密データの検出
- S3バケットのポリシーチェック
3. 2つの検出機能
1つ目のポリシーチェック機能で、セキュリティリスクのあるS3バケットの設定のチェックと可視化を行い、もう1つの機密データの検出機能で、機械学習とパターンマッチングを使用し、機密データを検出します。
3.1 ポリシーチェック
セキュリティリスクのあるS3バケットの設定をチェックします。具体的には、ブロックパブリックアクセスによる公開設定や暗号化の設定、他のアカウントとの共有設定がされているかなどをチェックします。
- ブロックパブリックアクセス(公開設定)
- 暗号化設定
- 共有設定
ダッシュボードを確認すると、これらの設定が意図したものなのか、それとも設定ミスなのか、すぐに判別することができます。
IPA「情報セキュリティ10大脅威 2024」の第6位の「不注意による情報漏えい等の被害」では、「クラウドの設定ミス」による情報漏えいが指摘されており、Macieのポリシーチェック機能は情報漏えいを防ぐ上で重要な役割を担っていると言えます。
情報セキュリティ10大脅威 2024
https://www.ipa.go.jp/security/10threats/10threats2024.html
3.2 機密データの検出
機密データの検出には2つの検出方法があります。
- 自動検出
- 検出ジョブ
基本的には「自動検出」機能でS3全体をスキャンし、機密データの状況を広範囲に把握し、その上で、リスクのある場所や疑わしいデータの詳細を調べる場合に「検出ジョブ」機能を使う方法が推奨されています。
3.2.1 自動検出
Macieを有効化すると、デフォルトで脅威データ自動検出機能も有効化されます。特定のS3バケットを指定するなどの初期設定は必要ありませんが、初回のスキャン結果が表示されるまで24~48時間ほどかかります。ここは気長に待ちましょう。その後は毎日スキャンが実行され、最初の30日間は無料で試すことができます。
自動検出では、特定のターゲットを指定せず、S3バケット全体を広範囲にわたって定期的にサンプリングします。これにより機密データがどこに存在するかの初期スクリーニングを実現し、機密データの全体的な状況を継続的に監視するのに役立ちます。
自動検出の設定を確認します。
24~48時間後に確認してみると、スキャン結果が表示されていました。
概要
検出結果
S3バケット
スキャンされたS3バケットは「機密性スコア」が割り当てられます。「機密スコア」は、S3バケットに含まれる可能性のある機密データの量を定量的に示しています。
3.2.2 検出ジョブ
一方、検出ジョブではより詳細に、対象を絞った分析が可能になります。特定のS3バケットやファイルに対してカスタムの条件を指定し、詳細なスキャンを実施して深掘りしたい場合に役立ちます。ワンタイムジョブは、スポットで詳細な調査や報告が求められる場面でも活用できそうですが、検出ジョブ作成は、30日間の無料の範囲には含まれていないので注意が必要です。
以下、「検出ジョブ」で細かく設定ができます。
- 対象のS3バケット
- 頻度
- スケジュールされたジョブ(毎日、毎週、毎月)
- ワンタイムジョブ(1回だけ)
- サンプリング深度
- オブジェクト条件
- マネージドデータ識別子
- カスタムデータ識別子
- 許可リスト
サンプリング深度
サンプリングするデータの割合をパーセンテージ (%)で指定します。サンプリング深度を調整することで、全データの中から一定割合のみをスキャンし、効率的に機密データを検出することができ、コストを抑えたい場合に有効です。
マネージドデータ識別子
Macieが提供するあらかじめ定義された識別子(検出パターン)で、米国や海外の機密データのパターンが多く、日本語の機密データのパターン検知には現状では対応していません。Macieがあらかじめ用意したマネージドデータ識別子のパターンセットを使用する「推奨」と、使用するマネージドデータ識別子をユーザー自身が指定する「カスタム」の2つのオプションがあります。
カスタムデータ識別子
特定のキーワードや正規表現を使って独自の識別子(検出パターン)を定義し、日本語の機密データのパターンや他のカスタムのパターンを検出することができます。
許可リスト
S3オブジェクト内で検出対象から除外したいテキストとパターンを指定でき、誤検出を減らし、検出の精度を高めることが可能です。
4. 2つの検出結果タイプ
Amazon Macieは2つのタイプの検出結果(Findings)を出力します。
- ポリシー検出結果(policy findings)
- 機密データ検出結果(sensitive data findings)
ポリシー検出結果はS3バケットのポリシーチェックの結果を出力し、機密データ検出結果はS3バケット内の機密データの検出結果を出力します。
4.1 ポリシー検出結果
- Policy:IAMUser/S3BlockPublicAccessDisabled
- Policy:IAMUser/S3BucketEncryptionDisabled
- Policy:IAMUser/S3BucketPublic
- Policy:IAMUser/S3BucketReplicatedExternally
- Policy:IAMUser/S3BucketSharedExternally
- Policy:IAMUser/S3BucketSharedWithCloudFront
4.2 機密データ検出結果
- SensitiveData:S3Object/Credentials
- SensitiveData:S3Object/CustomIdentifier
- SensitiveData:S3Object/Financial
- SensitiveData:S3Object/Multiple
- SensitiveData:S3Object/Personal
Macie の検出結果のタイプ
https://docs.aws.amazon.com/ja_jp/macie/latest/user/findings-types.html
5. Security Hubとの統合
Security HubとMacieが共に有効の場合、デフォルトで、「ポリシー検出結果」はSecurity Hubに出力されますが、「機密データ検出結果」は出力されません。「機密データ検出結果」を出力したい場合は、チェックボックスにチェックを入れ、保存ボタンを押します。
「機密データの検出結果を Security Hub に発行」にチェックをし「保存」を推します。
Security Hubの統合画面で、Macieが統合されていることを確認します。
Security Hubの検出結果にMacieの検出結果が表示されることを確認します。
6. Organizationsとの統合
Amazon Macieは、AWS Organizationsとの統合も可能です。アカウント単位ではなく、組織全体で機密データの検出を行いたい場合は、Organizationsと統合することで機密データ管理の効率化が期待できます。組織の管理アカウントでMacieの管理をセキュリティ用のアカウントに委任し、委任されたアカウントでメンバーアカウントのMacieの有効化と機密データ自動検出の有効化の設定を行います。また、アカウントごとで検出された検出結果を委任されたアカウントに集約し、検出結果の統合を行います。AWS Control Towerを使用している場合は、Auditアカウントに委任し、Auditアカウントで組織のMacieの管理を行います。
委任されたアカウントで、以下の2つの管理を行います。
- メンバーアカウントのMacieの有効化と機密データ自動検出の有効化
- メンバーアカウントで検出されたMacieの検出結果の統合
6.1 Macieと自動検出の有効化
6.1.1 管理アカウント
Macieの「委任された管理者」にAuditアカウントのアカウントIDを設定し「委任」します。
Organizationsの「統合されたサービス」のMacieの「信頼されたアクセス」が「有効になっています」になっていることを確認します。
6.1.2 Auditアカウント(委任されたアカウント)
Macieが有効になっていることを確認し、「アカウント」から有効化したいメンバーアカウントをチェックし、「アカウントを追加」から「メンバーを追加」を選択します。
しばらくすると「ステータス」が有効化され、「Automated sensitive data discovery」も「Enabled」となります。
また、新規にOrganizationsに追加されるアカウントに対しては、デフォルトではMacieは無効化、自動検出は有効化ですが、「編集」ボタンから新規作成時に、Macieも有効化することも可能です。
6.2 検出結果の統合
メンバーアカウントで機密データが検出されると、Auditアカウント(委任されたアカウント)のMacieのダッシュボードにも検出結果が表示されます。
また、MacieとSecurity Hubが統合されており、委任アカウントをAuditアカウントに指定している場合、AuditアカウントのSecurity Hubのダッシュボードでも、メンバーアカウントのMacieからの検出結果が表示されます。
今回確認した構成のイメージ
7. まとめ
最後に、「AWS Well-Architected フレームワーク」の「セキュリティの柱」を確認しておきます。
ベストプラクティスの「SEC07-BP03 識別と分類を自動化する」では、実装のガイダンスとして、Amazon Macieが紹介されており、実装の手順では、以下のように記述されています。
S3 バケット全体で広範にわたって機密データを自動検出するように Amazon Macie を設定できます。 この機能では、サンプリング手法を使用して、機密データの所在の事前分析をコスト効率よく実行します。 その後、機密データの検出ジョブを用いて、S3 バケットの詳細な分析を実行できます。
SEC07-BP03 識別と分類を自動化する
https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/sec_data_classification_auto_classification.html
今回は、AWSブログを参考に、Amazon Macieの機密データの「自動検出」の機能を中心に確認してきました。また、Security HubやOrganizationsとの統合を行い、組織全体で機密データの検出や管理を行う方法も確認しました。
組織レベルでは、広範囲にわたって機密データの「自動検出」を行い、より詳細な分析がしたい場合は、各アカウント内で「検出ジョブ」を実行するというような使い方が良さそうです。
まずは、30日の無料トライアルを有効活用して、Macieと機密データの「自動検出」を有効化するところから始めてみてはいかがでしょうか?