AWSのドキュメントによると、AWS CloudTrail は、AWSインフラストラクチャ全体のアカウントアクティビティを監視および記録するツールであり、ストレージ、分析、および修復処理を管理できます。
AWSアカウントをTrend Cloud Oneに正常に統合するには、AWSアカウントにリソースをデプロイし、Trend Cloud Oneダッシュボードを使用して設定する必要があります。 AWS CloudTrailの統合やTrend Vision Oneテナントへの接続を含むこれらのタスクは、AWS CloudFormationテンプレート を使用して自動化できます。
統合が完了すると、Trend Vision One Workbench の検出モデルをトリガーするAWS CloudTrailイベントに関するアラートの受信が開始されます。
次の図は、統合アーキテクチャを示しています。
cloud-trail-architecture=715feda6-b9ff-4b32-ae5a-06e7af71ecf4.png
機能レベルでは、次の処理が実行されます。
  • カスタムリソースは、Trend Cloud OneアカウントIDとTrend Cloud Oneリージョンを取得します。
  • カスタムリソースによって、Trend Cloud One OneアカウントとTrend Vision Oneアカウントの統合が完了します。
  • Trend Cloud One Workload Securityに必要なIAMリソースがすべて作成されます。
  • カスタムリソースにより、AWSアカウントとTrend Cloud One Workload Securityアカウント間の統合が完了します。
  • 初期設定のTrend Cloud One CloudFormationスタックがデプロイされます。
  • カスタムリソースによって、AWSアカウントとTrend Cloud Oneアカウント間の統合が完了します。
  • カスタムリソースは、Trend Cloud OneバックエンドからAWS CloudTrail統合のトークンを取得します。
  • デフォルトのAWS CloudTrail CloudFormationスタックがデプロイされます。

要件

統合を開始する前に、次のものが揃っていることを確認してください。
また、AWS CloudFormationスタック名が8文字以下であることを確認してください。例: CloudOne
Trend Cloud Oneアカウントのリージョンに基づいて、次のいずれかのリージョンにAWS CloudFormationスタックをデプロイする必要があります。
Trend Cloud Oneのリージョンコード
AWSリージョンコード
us-1
us-east-1
in-1
ap-south-1
GB-1
eu-west-2
au-1
ap-southeast-2
de-1
eu-central-1
jp-1
ap-northeast-1
sg-1
ap-southeast-1
ca-1
ca-central-1

パラメータ

次のパラメータを定義する必要があります。
  • CloudOneApiKey - Trend Cloud One APIキー。詳細については、要件を参照してください。
  • VisionOneServiceToken - Trend Vision Oneサービス トークン。詳細については、要件を参照してください。
  • CreateNewTrail - 新しいAWS CloudTrailを作成するかどうかを定義します。デフォルトは falseであるため、 ExistingCloudtrailBucketName パラメータにAWS S3バケット名を入力する必要があります。 trueに設定すると、新しい証跡とバケットが作成されるため、追加コストが発生します。
  • ExistingCloudtrailBucketName - Trend Cloud Oneへの転送に使用する既存のバケットの名前を指定します。 CreateNewTrailfalseに設定されている場合にのみ使用されます。
テンプレートを自分でホストする場合を除き、デフォルト値を受け入れる必要があるパラメータが多数あります。その場合、QSS3BucketName はこれらのテンプレートをホストする AWS S3バケットを定義し、QSS3KeyPrefix はキー プレフィックスまたはルート フォルダのパスを定義する必要があります。たとえば、ファイルが trendmicro/onboarding フォルダー内の my-bucket という名前のバケットでホストされている場合、QSS3BucketName 値は my-bucketQSS3KeyPrefix 値は trendmicro/onboardingである必要があります。
  • QSS3BucketName - デプロイアセットのAWS S3バケット名。値には、数字、小文字の英字、大文字の英字、ハイフン ( - ) を使用できます。デフォルト値は cloudone-communityです。
  • QSS3KeyPrefix - デプロイアセットのAWS S3キープレフィックス。値には、数字、小文字の英字、大文字の英字、ハイフン ( - )、ドット ( . )、スラッシュ ( / ) を使用できます。初期設定値は ""です。

インストール/アンインストール

ダッシュボードからデプロイするには、AWS CloudFormationスタックを起動します。
CLI経由でデプロイするには、次のコマンドを実行します。
#!/bin/bash
export BUCKET="your-cloudtrail-bucket"
export APIKEY="your-cloudone-apikey"
export TOKEN="your-visionone-enrollment-token"
aws cloudformation create-stack --stack-name common-onboard-test --
template-url https://aws-abi-pilot.s3.us-east-1.amazonaws.com/latest/cfnabi-
trend-cloudone/templates/trend-cloudone-onboard/main.template.yaml --
capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND --parameters
ParameterKey=ExistingCloudtrailBucketName,ParameterValue=$BUCKET
ParameterKey=CloudOneApiKey,ParameterValue=$APIKEY
ParameterKey=VisionOneServiceToken,ParameterValue=$TOKEN
ParameterKey=QSS3KeyPrefix,ParameterValue=$HASH/
デプロイが失敗した場合、またはスタックを削除することにした場合は、アカウントの統合を含むすべての変更がデプロイ前の状態に戻ります。

必要なAWS権限とリソース

カスタムリソースとしてトリガーされるLambda関数には、次の権限が必要です。
  • secretsmanager:GetSecretValue - このスタックの一部として作成されたシークレットに固有です。
  • kms:Decrypt - このスタックの一部として作成されたキーに固有です。
  • 管理ポリシー - AWSLambdaBasicExecutionRole
さらに、多くの製品固有のリソースが必要です。
スタックをデプロイするには、次の権限が必要です。
  • AWS CloudFormationスタックを作成、更新、削除、および説明する権限。
    • cloudformation:CreateStack
    • cloudformation:UpdateStack
    • cloudformation:DeleteStack
    • cloudformation:DescribeStacks
  • Lambda関数の設定を作成、更新、および取得するための権限。
    • lambda:CreateFunction
    • lambda:UpdateFunctionCode
    • lambda:GetFunctionConfiguration
  • Lambda関数のIAMロールを作成する権限、およびポリシーをロールにアタッチおよびデタッチする権限。
    • iam:ListAccountAliases
    • iam:CreateRole
    • iam:DeleteRole
    • iam:CreatePolicy
    • iam:PassRole
    • iam:AttachRolePolicy
    • iam:DetachRolePolicy
    • iam:DeleteRolePolicy
    • iam:PutRolePolicy
    • iam:GetRole
    • iam:GetRolePolicy
  • Amazon CloudWatchのロググループとストリームを作成する権限、およびLambda関数からAmazon CloudWatchのログにログを書き込む権限。
    • logs:CreateLogGroup
    • logs:CreateLogStream
    • logs:PutLogEvents
  • AWS S3バケットからコードをダウンロードする権限。
    • s3:GetObject
    • s3:GetBucketLocation
  • カスタムリソースを作成およびトリガする権限。
    • lambda:InvokeFunction
    • lambda:CreateFunction
    • lambda:DeleteFunction
    • lambda:GetFunction
    • lambda:GetFunctionConfiguration
    • lambda:AddPermission
    • lambda:RemovePermission
    • lambda:UpdateFunctionCode
    • lambda:UpdateFunctionConfiguration
    • lambda:InvokeFunction