Control Tower環境でSumo Logicの「AWS Observability」を展開してみる

2023.06.30

AWSの利用においては、マルチアカウント戦略をとるケースも増えてきたと思います。今回はControl Tower配下となっているアカウントのメトリクスやログをSumo Logicに連携し、一元的なダッシュボードやログ分析するためのソリューション「AWS Observability」を展開してみたいと思います。

Control Towerを始める

Control Towerを開始する手順については、こちらで紹介しています。
私もこのブログを見てやってみました。最初にControl Towerをはじめられる方は参考にしください。

Sumo Logic の AWS Observability を展開する

Control Tower環境でSumo LogicのAWS Observabilityを展開する時は、大きく2つの手順で進めます。
1アカウントのみを対象でAWS Observabilityを使いたい場合は、こちらのブログを参照してください。

さて、ここからはControl Tower環境での進め方になりますが、まず一つ目は、Control Tower配下の監査ログを集約先となるログアーカイブアカウントのCloudTrailを取得する設定です。
二つ目は、ログアーカイブアカウントを含む全てのアカウントの各AWSサービスのメトリクスやログを取得するための設定になります。

では、二段階に分けて作業を実施していきます。

ログアーカイブアカウントのCloudTrailを取得する設定

AWS ObservabilityはCloudFormationのテンプレートを使って展開することができます。
CloudFormationのテンプレートはSumo Logicから公開されていますのでこちらからダウンロードします。

ログアーカイブのアカウントにSSOしてCloudFormationを実行していきます。

CloudFormationを展開していく時のパラメータでCloudTrailだけを収集するように構成します。

  1. Sumo Logic Access Configuration (Required)
    • Sumo Logic Deployment Name: 使っているSumo Logicのリージョンを入力します。日本の場合は必ず「jp」を選択する必要があります。
    • Sumo Logic Access ID、Sumo Logic Access Key、Sumo Logic Organization id: 事前準備で確認していたものと同じものを入れます。
  2. AWS Account Alias
    • AWS Account Alias: AWSアカウントの任意のエイリアス名を入れます。
  3. Sumo Logic AWS Observability Apps and Alerts
    • Install AWS Observability Apps and Alerts: AWS Observabilityを展開したことがない場合はYesを選択します。
  4. Sumo Logic AWS CloudWatch Metrics Sources
    • Select the kind of CloudWatch Metrics Sources: Noneを選択します。
  5. Sumo Logic AWS ALB Log Source
    • Enable ALB Access logging: Noneを選択します。
  6. Sumo Logic AWS CloudTrail Source
    • Create Sumo Logic CloudTrail Logs Source: Yesを選択します。
    • Amazon S3 Bucket Name: ログアーカイブアカウントのCloudTrailを保存しているバケットを指定します。
    • Path Expression for existing CloudTrail logs: Amazon S3 Bucket Nameのパスを入力します。
  7. Sumo Logic AWS Lambda CloudWatch Logs Source
    • Select the Sumo Logic CloudWatch Logs Sources: Noneを選択します。
  8. Sumo Logic Root Cause Explorer Sources
    • Select the Sumo Logic Root Cause Explorer Sources: Noneを選択します。
  9. Sumo Logic AWS ELB classic Log Source
    • Enable ELB Access logging: Noneを選択します。
  10. App Installation and Sharing
    • Location where you want the App to be Installed: Personal Folder
    • Do you want to share App with whole organisation: True

最後にCreate Stackで実行します。

Stackが完了後に、コレクターを確認するとログが取得できていることを確認します。

各AWSサービスのメトリクスやログを取得する設定

CloudFormationのStackSetsでControl Tower配下のアカウント全てを対象にAWS Observabilityを展開していきます。

StackSetsについての概要を知りたい方はこちらを参考にしてみてください。

StackSetsはマスターアカウントにSSOして設定します。

デプロイ対象が複数あるので、Sumo LogicのAWS Observabilityで表示する時にAWSのアカウントIDではなくて、エイリアス名にしておくと分かりやすいのでおすすめです。
そのための、CSVファイルを作っておきます。

<awsaccount>,audit
<awsaccount>,logarchive
<awsaccount>,master

CSVファイルを作成したらS3にアップロードしておきます。

StackSetsを作成していきます。

テンプレートの選択では、「セルフサービスのアクセス許可」を選択します。

StackSetsで使うCloudFormationテンプレートも先程と同じものを使います。

  1. Sumo Logic Access Configuration (Required)
    • Sumo Logic Deployment Name: 使っているSumo Logicのリージョンを入力します。日本の場合は必ず「jp」を選択する必要があります。
    • Sumo Logic Access ID、Sumo Logic Access Key、Sumo Logic Organization id: 事前準備で確認していたものと同じものを入れます。
  2. AWS Account Alias
    • S3 Object URL of a CSV file that maps AWS Account IDs to an Account Alias: 先程アップロードしたCSVファイルのS3URIを入れます。
  3. Sumo Logic AWS Observability Apps and Alerts
    • Install AWS Observability Apps and Alerts: 最初の展開時にだけYesを選択します。
  4. Sumo Logic AWS CloudWatch Metrics Sources
    • Select the kind of CloudWatch Metrics Sources: Kinesis Firehose Metrics Sourceを選択します。
    • Sumo Logic AWS Metrics Namespaces: 取得したいメトリクスのNamespaceを指定することが可能です。
  5. Sumo Logic AWS ALB Log Source
    • Enable ALB Access logging: Bothを選択します。
    • Create Sumo Logic ALB Logs Source: Yesを選択します。
    • Amazon S3 Bucket Name: ALBログを保存しているS3のバケットがあればそのバケット名を入力します。
    • Path Expression for existing ALB logs: Amazon S3 Bucket Nameのパスを入力します。
  6. Sumo Logic AWS CloudTrail Source
    • Create Sumo Logic CloudTrail Logs Source: Noを選択します。
  7. Sumo Logic AWS Lambda CloudWatch Logs Source
    • Select the Sumo Logic CloudWatch Logs Sources: Kinesis Firehose Log Sourceを選択します。
    • Subscribe log groups to Sumo Logic CloudWatch Logs Forwarder: Both
    • Regex for AWS Lambda Log Groups: lambda
  8. Sumo Logic Root Cause Explorer Sources
    • Select the Sumo Logic Root Cause Explorer Sources: Both
  9. Sumo Logic AWS ELB classic Log Source
    • Enable ELB Access logging: Both
    • Create Sumo Logic ELB Logs Source: Yes
  10. App Installation and Sharing
    • Location where you want the App to be Installed: Personal Folder
    • Do you want to share App with whole organisation: True

最後にデプロイオプションを設定していきます。

これでログを取得することができました。

まとめ

Control Tower配下で AWS Observability を展開してみました。
Sumo Logic を活用することで、マルチアカウント戦略において統制の効いた運用をしていくために、ログの可視化・分析を一元的に、かつ低い構築・設定・運用コストで実施することできそうです。
ぜひControl Tower環境で利用していきたいですね。