このページのトピック
AWSのアーキテクチャとフロー
このセクションでは、 File Storage Security アーキテクチャを示し、スキャン操作中に情報がアーキテクチャをどのように流れるかを示し、各コンポーネントについて詳しく説明します。
トピック:
アーキテクチャ
次のアーキテクチャ図は、主要な File Storage Security コンポーネントと情報フローを示しています。
情報はこのアーキテクチャを次のように流れます。
- ユーザまたはプログラムは 検索するS3バケット にファイルをアップロードします。アップロードによって
s3:ObjectCreated:*
イベントが生成されます。 - BucketListenerLambdaが
s3:ObjectCreated:*
イベントを検出し、署名済みURLをSQS ScannerQueueに追加しscanner stack。URLの事前設定により、検索が必要なファイルに戻ります。 - ScannerLambda 関数は、SQS ScannerQueueに登録されており、次の処理を行います。
- SQS ScannerQueueからURLメッセージを取得します。
- URLのデジタル署名が正しいことを確認します。
- S3のURLが保存されているURLを検索します。
- ファイルのスキャンを実行します。
- ファイル識別情報を生成します。
- クラウド内のトレンドマイクログローバル Smart Protection Server にファイル識別情報を送信します。
- トレンドマイクロのグローバル Smart Protection Server は、 トレンドマイクロ Smart Protection Network (図には示されていません)を利用して、ファイル識別情報(ファイルではない)の残りのスキャンを実行します。検索結果はScannerLambdaに返されます。
- ScannerLambdaは、次の処理を行います。
- 検索結果をストレージスタック内の SNS ScanResultTopic に公開します。
- スキャン結果を File Storage Securityコンソールに送信します。(コンソールは図に示されていません)。
- SNS ScanResultTopicは、新しい検索結果が利用可能であることをユーザに通知します。そのサブスクライバーは次のとおりです。
- File Storage Securityの PostScanActionTagLambda 関数
- カスタマイズ後の検索処理Lambda 関数
- SNS通知を受信した後:
- PostScanActionTagLambda 関数は、AWSタグを使用して検索結果をファイルに追加し、結果を[検索アクティビティ]画面に表示します。詳細については、 タグの理解とスキャン結果を参照してください。
- カスタムポストスキャン処理Lambda 関数は、SNS ScanResultTopicに用意されている検索情報に対して機能します。たとえば、ファイルが悪意のあるものであることが判明した場合、ファイルを隔離または削除する可能性があります。
コンポーネント
検索するS3バケット
検索対象のS3バケットは、受信(追加)されたファイルに対して監視されるバケットです。このバケットに追加されたすべてのファイルが検索されます。
署名済みURL
File Storage Security は、 Amazon S3署名済みURL を利用してS3からファイルを取得します。 署名済みURLには、IAMによる権限の付与と比較して、次の利点があります。
- 権限はアップロードされたファイルに限定され、設定された期間が経過すると期限切れになります。
- クロスアカウントアーキテクチャオプション を有効にして、 Scanner とストレージスタックを異なるAWSアカウントにデプロイできます。
署名済みURLを使用すると、権限を最小限の範囲に制限し、より多くの配信オプションを許可できます。 ただし、署名済みのURLを取得したユーザは、認証なしでファイルにアクセスできます。
そのため、 File Storage Security は、署名済みのURLを転送中または保存中の暗号化を含め、検索プロセス全体を通じて秘密として扱い、保護します。
詳細については、署名済みURLの使用を参照してください。
Storage Stack
Storage Stackは 受信(追加)されたファイルに対して、検索するS3バケット を監視して、 Scanner Stack に送信します。Storage Stackは以下のようにデプロイできます。
- スタンドアロンスタックとして、Storage Stack CloudFormationテンプレートを使用するか、または
- All-in-one Stackの下のネストされたスタックとして。
デプロイメントで使用する必要があるストレージスタックの数については、 スタックをいくつ追加する必要がありますか?を参照してください。
Scanner Stack
Scanner Stackは、ファイルを検索し、結果を SNS ScanResultTopicに公開します。Scanner Stackは以下のようにデプロイできます。
- スタンドアロンスタックとして、Scanner Stack CloudFormationテンプレートを使用するか、または
- All-in-one Stackの下のネストされたスタックとして。
一般的な File Storage Security の展開に必要な Scanner Stackは1つだけですが、さらに必要になる可能性がある場合は、 スタックをいくつ追加する必要がありますか?を参照してください。
All-in-one Stack
All-in-One CloudFormationテンプレートを使用して、All-in-one Stackが配信されます。All-in-one Stack には次のものが含まれます。
- Scanner Stack
- Storage Stack
- サポートリソース
BucketListenerLambda関数
BucketListenerLambda関数は、 Storage Stackの一部であり、 検索するS3バケット の追加されたファイルを監視し、 Scanner Stackに検索要求を送信します。
ScannerLambda関数
ScannerLambda関数は、 Scanner Stack に含まれており、ファイルを検索し、さらに検索するためにファイル識別情報をTrend Micro Global Smart Protection Server に送信します。
SQS ScannerQueue
Amazon Simple Queue Service (SQS)ScannerQueueは、 Scanner Stackの一部であり、 BucketListenerLambda が検索要求メッセージを送信するキューです。
SNS ScanResultTopic
Amazon Simple Notification Service (SNS)ScanResultTopicは、 ストレージスタックに含まれており、 検索スタック がその結果を公開するトピックです。カスタム検索後の処理 Lambda関数 をこのトピックに登録すると、新しい検索の通知を受けることができます。
PostScanActionTagLambda関数
PostScanActionTagLambda関数は、 Storage Stackの一部であり、検索されたファイルに関連する検索結果をタグ付けします。
AWSアカウント
AWSアカウントでは、 File Storage Security スタックをインストールします。スタックは、必要に応じて複数のアカウントにインストールできます。詳細については、 マルチスタックアーキテクチャを参照してください。
カスタムポストスキャン処理 Lambda関数
カスタムポストスキャン処理 Lambda関数 は、ユーザが記述する関数です。スキャン結果は、 SNS ScanResultTopicから取得されます。詳細については、ポストスキャンアクションの作成を参照してください。
APIとコードサンプル
Googleでは、Lambda関数の作成に使用できるAPIおよびコードサンプルを提供しています。詳細については、 スキャン後のアクションの作成 を参照してください。
コンソール
コンソールは、スキャン結果を表示してスタックをデプロイできるWebインターフェイスです。コンソールはトレンドマイクロがホストしており、AWSアカウントの外部に存在します。
Lambda の追加機能
File Storage Security は、操作に他のいくつかの Lambda 関数を使用します。次のものが含まれます。
-
SetupBucketNotificationLambda は、ObjectCreatedイベントのバケット通知を設定します。これにより、 File Storage Security でファイルのアップロードを監視できます。
-
CreateLambdaAliasLambda は、 File Storage Security が管理する Lambda関数エイリアスを作成します。これにより、同時実行数を調整できます。
-
ScannerDeadLetterLambda は、ScannerLambdaで処理できないデッドレターメッセージを処理します。この機能は、テレメトリを File Storage Securityに送信します。
-
GetLambdaLastConfig は、スタックのアップデート中に Lambda 関数の設定が上書きされないようにします。