アーキテクチャ
次のアーキテクチャ図は、主要な 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による権限の付与と比較して、次の利点があります。
- 権限はアップロードされたファイルに限定され、設定された期間が経過すると期限切れになります。
- クロスアカウントアーキテクチャオプションを有効にして、異なるAWSアカウントにScannerとStorage Stackをデプロイします。
署名済みURLを使用すると、権限を最小限の範囲に制限し、より多くの配信オプションを許可できます。 ただし、署名済みのURLを取得したユーザは、認証なしでファイルにアクセスできます。
そのため、 File Storage Security は、署名済みのURLを転送中または保存中の暗号化を含め、検索プロセス全体を通じて秘密として扱い、保護します。
詳細については、署名済みURLの使用を参照してください。
Storage Stack
Storage Stackは 受信 (追加) されたファイルに対して、検索するS3バケット を監視して、 Scanner Stack に送信します。Storage Stackは以下のようにデプロイできます。
- スタンドアロンスタックとして、Storage Stack CloudFormationテンプレートを使用するか、または
- All-in-one Stackの下のネストされたスタックとして。
展開で使用するStorage 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関数
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 関数の設定が上書きされないようにします。