翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Macie を使用して CloudWatch Logs で機密データを保護する
Anisha Salunkhe、Omar Franco、David Guardiola、Amazon Web Services
概要
このパターンは、包括的なセキュリティモニタリングワークフローを実装することでAmazon Macie を使用して Amazon CloudWatch Logs ロググループの機密データを自動的に検出する方法を示しています。このソリューションは、Amazon Data Firehose を使用して CloudWatch Logs エントリを Amazon Simple Storage Service (Amazon S3) にストリーミングします。Macie は、このバケットを定期的にスキャンして、個人を特定できる情報 (PII)、財務データ、その他の機密コンテンツがないか調べます。インフラストラクチャは、必要なすべての AWS のサービス および 設定をプロビジョニングする AWS CloudFormation テンプレートを介してデプロイされます。
CloudWatch Logs には、機密性の高いユーザー情報が誤って含まれる可能性があるアプリケーションデータが含まれていることがよくあります。これにより、コンプライアンスとセキュリティのリスクが発生する可能性があります。従来のログモニタリングアプローチには、機密データの自動検出機能がありません。これにより、潜在的なデータ漏洩をリアルタイムで特定して対応することが困難になる可能性があります。
このパターンは、ログ記録システム内の機密データの自動検出とアラートを提供することで、セキュリティチームとコンプライアンス責任者がデータの機密性を維持するのに役立ちます。このソリューションは、Amazon Simple Notification Service (Amazon SNS) 通知によるプロアクティブなインシデント対応を可能にし、機密データを安全な Amazon S3 バケットに自動的に分離します。検出パターンをカスタマイズし、ワークフローを既存のセキュリティオペレーションプロセスと統合できます。
前提条件と制限
前提条件
アクティブな AWS アカウント
CloudFormation スタックを作成するアクセス許可
モニタリングする CloudWatch Logs ロググループ
Amazon SNS から通知を受け取るためのアクティブな E メールアドレス
AWS CloudShell へのアクセス
(オプション) インストールおよび設定されている AWS Command Line Interface (AWS CLI) へのアクセス
制限事項
Macie にはサービスクォータが適用されます。詳細については、Macie ドキュメントの「Macie のクォータ」を参照してください。
アーキテクチャ
ターゲットアーキテクチャ
次の図は、Macie を使用して機密データの CloudWatch Logs ログエントリを調べるためのワークフローを示しています。

ワークフローには以下のステップが表示されます。
CloudWatch Logs ロググループは、サブスクリプションフィルターの対象となるログを生成します。
サブスクリプションフィルターは、ログを Amazon Data Firehose に転送します。
ログは、Amazon Data Firehose 配信ストリームを通過するときに AWS Key Management Service (AWS KMS) キーで暗号化されます。
配信ストリームは、Amazon S3 のエクスポートされたログバケットにログを配信します。
毎日午前 4 時に、Amazon EventBridge は、エクスポートされたログバケット内の機密データの Macie スキャンを開始する AWS Lambda 関数を開始します。
Macie がバケット内の機密データを識別すると、Lambda 関数はエクスポートされたログバケットからログを削除し、 で暗号化します AWS KMS key。
Lambda 関数は、データ分離バケットに機密データを含むログを分離します。
機密データを識別すると、Amazon SNS トピックが開始されます。
Amazon SNS は、機密データを含むログに関する情報を含む E メールアドレスに E メール通知を送信します。
デプロイされたリソース
CloudFormation テンプレートは、次のリソースをターゲットにデプロイ AWS アカウント します AWS リージョン。
2 つの Amazon S3 バケット:
CloudWatch Logs データを保存するためのエクスポートされたログバケット
機密情報を保存するデータ分離バケット
Macie の検出結果に応答する Amazon EventBridge ルール
イベントを開始し、Amazon S3 バケットにログをエクスポートするAWS Lambda 関数
Amazon Data Firehose ストリーム
Macie セッション
Macie カスタムデータ識別子
CloudWatch Logs サブスクリプションフィルター
バケットに保存されているログを暗号化するためのAWS KMS キー
ソリューションに必要な AWS Identity and Access Management (IAM) ロールとポリシー
ツール
AWS のサービス
AWS CloudFormation は、 AWS リソースをセットアップし、迅速かつ一貫してプロビジョニングし、 AWS アカウント および 全体のライフサイクルを通じてリソースを管理するのに役立ちます AWS リージョン。
Amazon CloudWatch Logs を使用すると、すべてのシステム、アプリケーション、および からのログを一元化 AWS のサービス できるため、ログをモニタリングして安全にアーカイブできます。
Amazon Data Firehose は AWS のサービス、サポートされているサードパーティーサービスプロバイダーが所有する他の HTTP エンドポイント、カスタム HTTP エンドポイント、HTTP エンドポイントにリアルタイムのストリーミングデータを配信するのに役立ちます。
Amazon EventBridge は、アプリケーションをさまざまなソースのリアルタイムデータに接続できるようにするサーバーレスイベントバスサービスです。例えば、 AWS Lambda 関数、API 送信先を使用する HTTP 呼び出しエンドポイント、その他のイベントバスなどのソースです AWS アカウント。
AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号化キーの作成と制御に役立ちます。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。
Amazon Macie は、機密データを検出し、データセキュリティリスクを可視化し、それらのリスクに対する自動保護を可能にします。
「Amazon Simple Notification Service (Amazon SNS)」は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。
Amazon Simple Storage Service (Amazon S3) は、あらゆる量のデータを保存、保護、取得できるクラウドベースのオブジェクトストレージサービスです。
コードリポジトリ
このパターンのコードは、GitHub sample-macie-for-securing-cloudwatch-logs
ベストプラクティス
CloudFormation ドキュメントのCloudFormation ベストプラクティスに従ってください。
エピック
| タスク | 説明 | 必要なスキル |
|---|---|---|
コードリポジトリを複製します。 | 次のコマンドを入力し、リポジトリのクローンをローカルのワークステーションに作成します。
| アプリ開発者 |
(オプション) CloudFormation テンプレートを編集します。 |
| アプリ開発者 |
オプション 1 – コマンドラインパラメータを含むスクリプトを使用してデプロイします。 | 次のコマンドを入力して、コマンドラインパラメータを使用してソリューションをデプロイします。 の値は Amazon Macie がまだ有効になっていない
| AWS 全般 |
オプション 2 – 環境変数を含むスクリプトを使用してデプロイします。 |
| AWS 全般 |
オプション 3 – を使用してデプロイします AWS CLI。 | を使用してソリューションをデプロイするには、次のコマンドを入力します。 の値は AWS CLI Amazon Macie がまだ有効になっていない
| |
オプション 4 – を通じてデプロイします AWS マネジメントコンソール。 |
| AWS 全般 |
デプロイステータスをモニタリングし、デプロイを確認します。 |
| AWS 全般 |
Amazon SNS サブスクリプションを確認します。 | Amazon Amazon SNSドキュメントのAmazon SNSサブスクリプションの確認」の指示に従って、Amazon SNS サブスクリプションを確認します。 | アプリ開発者 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
オプション 1 – 自動レポートを使用してテストします。 | デフォルトのスタック名を使用した場合は、次のコマンドを入力してソリューションをテストします。
カスタムスタック名を使用した場合は、次のコマンドを入力してソリューションをテストします。
カスタムスタック名とカスタムパラメータを使用した場合は、次のコマンドを入力してソリューションをテストします。
| AWS 全般 |
オプション 2 – ターゲット検証でテストします。 |
| AWS 全般 |
| タスク | 説明 | 必要なスキル |
|---|---|---|
オプション 1 – 自動クリーンアップを実行します。 | デフォルトのスタック名を使用した場合は、次のコマンドを入力してスタックを削除します。
カスタムスタック名を使用した場合は、次のコマンドを入力してスタックを削除します。
カスタムスタック名とカスタムパラメータを使用した場合は、次のコマンドを入力してスタックを削除します。
| AWS 全般 |
オプション 2 – step-by-stepクリーンアップを実行します。 |
| AWS 全般 |
クリーンアップを確認します。 |
| AWS 全般 |
トラブルシューティング
| 問題 | ソリューション |
|---|---|
CloudFormation スタックのステータスは CREATE_FAILED と表示されます。 | CloudFormation テンプレートは、CloudWatch Logs にログを発行するように設定されています。でログを表示 AWS マネジメントコンソール できるため、Amazon EC2 インスタンスに接続する必要はありません。詳細については、「コンソールで CloudFormation ログを表示する |
CloudFormation | 一部のリソースは、削除する前に空にしなければなりません。たとえば、バケットまたはセキュリティグループを削除するには、Amazon S3 バケットのすべてのオブジェクト、または Amazon EC2 セキュリティグループのすべてのインスタンスを削除する必要があります。詳細については、Amazon S3 ドキュメントの「スタックの削除が失敗する」を参照してください。 |
パラメータを解析する際のエラー。 | AWS CLI または CloudFormation コンソールを使用して値を渡す場合は、引用符を追加します。 |
関連リソース
ストレージのアーキテクチャのベストプラクティス
(AWS ウェブサイト) メトリクスフィルター、サブスクリプションフィルター、フィルターログイベント、Live Tail のフィルターパターン構文 (CloudWatch Logs ドキュメント)
Amazon CloudWatch を使用したログ記録とモニタリングの設計と実装 (AWS 規範ガイダンス)
トラブルシューティング CloudFormation (CloudFormation ドキュメント)