Amazon AWS Lambdaのアップデート🔗
以下の手順は、次のインテグレーションで使用されているSecureworks® Taegis™ XDR Lambda関数のアップデート方法です。
- AWS CloudTrail
- AWS CloudWatch Logs
- Amazon Application Load Balancer (ALB)
- Amazon VPC Flow Logs
- AWS Web Application Firewall
- Cisco Umbrella
- XDR Lambda関数を使用してFile Upload APIにログファイルを送信するすべてのインテグレーション
XDRからファイルをダウンロード🔗
- Taegis Menuからインテグレーション → クラウドAPIを選択します。
-
任意のアクティブなLambdaデプロイメントに対してインテグレーションのダウンロードアイコンを選択します。

インテグレーションのダウンロードボタン -
CloudFormation共有リソースのダウンロードを選択し、
taegis-cloudformation-shared-resources.yamlとして保存します。 - CloudFormation Lambdaテンプレートのダウンロードを選択し、
taegis-cloudformation-lambda-template.yamlとして保存します。 - Lambdaのダウンロードを選択します。ファイル名は
taegis-lambda-amd64.zipとなります。 -
認証情報のダウンロードを選択します。

Lambdaインテグレーションファイルのダウンロード
既存のLambdaデプロイメントが存在する各AWSリージョンでのアップデート🔗
重要
以下の手順(1~30)を、すべてのAWSリージョンに存在する既存のLambdaデプロイメントごとに繰り返してください。
Lambda実行ファイルおよびCloudFormationテンプレートをS3にアップロード🔗
-
対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/cloudformation)に、ロール、Lambda、シークレット、ポリシーの作成権限を持つアカウント、またはこれらの権限を持つロールを引き受けることができるロールでログインします。
-
ストレージセクションで、S3を選択します。
-
Lambda実行ファイルおよび必要に応じてCloudFormationテンプレートを格納するための新しいバケットを作成するか、既存のバケットを探します。バケットはパブリック、バージョン管理、暗号化である必要はありません。
-
Lambdaの
taegis-lambda-amd64.zipをバケットのルートにアップロードし、バケット名を控えておきます。 -
必要に応じて、
taegis-cloudformation-shared-resources.yamlおよびtaegis-cloudformation-lambda-template.yamlも同じバケットにアップロードします。ヒント
バケット名とキー(プレフィックスを含む)を控えておいてください。これらの識別子はスタック作成時に必要となります。
現在稼働中のLambdaスタックのアップデート🔗
- 対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/cloudformation)に、ロール、Lambda、シークレット、ポリシーの作成権限を持つアカウント、またはこれらの権限を持つロールを引き受けられるロールでログインします。
- 管理とガバナンスセクションでCloudFormationを選択します。
-
既存のXDR Lambda CloudFormationスタックのボタンを選択します。
注意
初回のLambdaデプロイ時、Lambda CloudFormationスタックの名前には任意の文字列が使用されている可能性があります。デフォルトのCloudFormationテンプレートの説明が、既存のLambda CloudFormationスタックを特定する際に役立つ場合があります。例えば、「このCloudFormationテンプレートは、S3バケットに保存された<インテグレーション名>ログ用のSecureWorks TDR Lambda関数をデプロイします。」のように、<インテグレーション名>には
awscloudtrailなどが入ります。 -
画面右上から更新を選択します。

Lambdaスタックの更新 -
現在のテンプレートを置換を選択します。

既存Lambdaスタックの置換 -
テンプレートファイルをアップロードし、
taegis-cloudformation-lambda-template.yamlを選択するか、テンプレートをS3バケットにアップロードしている場合はAmazon S3 URLオプションを使用します。 - 次へを選択します。
現在稼働中のLambdaスタックの更新内容を設定🔗
-
IntegrationTypeフィールドは変更不要です。 -
NotificationBucketフィールドは変更不要です。 SNSNotificationarnフィールドは、今後SNS通知をS3通知の代わりに使用したい場合を除き、変更不要です。NotificationBucketCustomerManagedKMSarnフィールドは、NotificationBucket内のオブジェクトを暗号化しているKMSキーARNを追加したい場合を除き、変更不要です。KMSキーのポリシーには「IAMユーザー権限の有効化」が必要です。そうでない場合は、Lambda ARNをKMSキーに追加できます。TaegisLambdaS3BucketNameフィールドには、Lambda実行ファイルおよびCloudFormationテンプレートをS3にアップロードセクションで指定したbucketNameを入力します。LambdaEnvKMSarnフィールドは空のままで問題ありません。入力する場合、KMSキーには「IAMユーザー権限の有効化」が必要です。- 残りのフィールドはデフォルトのままで問題ありません。
- 次へを選択します。
残りのスタックオプションを完了🔗
- スタックオプションの設定ページでデフォルトを受け入れ、次へをクリックします。
-
スタックの変更内容を確認します。
アクション、論理ID、リソースタイプ、置換の値が以下のように一致していることを確認します。
CloudFormation変更セットプレビュー -
AWS CloudFormationがIAMリソースを作成する可能性があることを承認しますのチェックボックスを選択し、送信を選択します。
検証手順🔗
-
対象リージョンのAWSコンソール(例:https://us-east-1.console.aws.amazon.com/)でAmazon S3(例:https://s3.console.aws.amazon.com/s3/home?region=us-east-2)に移動し、ログがホストされているS3バケット(Notification Bucket)を選択します。

S3バケットのプロパティ -
イベント通知セクションに移動します。Lambda関数が存在する場合は選択して削除します。

S3イベント通知 -
Lambdaサービスに移動し、最近更新したLambda関数(例:lab-network-lambda-scwx-tdr-lambda-awscloudtrail)を選択し、S3トリガーを追加します。
-
Lambdaランタイム設定を確認します。
Runtimeの値は Amazon Linux 2のカスタムランタイム である必要があります。
Lambdaランタイム設定の確認 -
AWS Lambdaログのテストを参照し、AWSコンソールでテストを設定してインテグレーション用のAWS Lambda関数が動作していることを確認します。
-
AWSコンソールでインストール済みのLambda関数に移動します。エラーがある場合はエラーの修正を選択します。

Lambdaエラーの修正 -
AWS Lambdaログの表示を参照し、AWS Lambda関数によって生成されたログを確認し、アップロードが正常に行われていることを確認します。これは、バケットに新しいS3データが公開されていることを前提に、トリガーが動作していることを検証します。
{"level":"debug","time":"2023-11-15T19:27:19Z","message":"Uploading data to s3"}