※ 2023 年 1 月 30 日現在の情報をもとに作成しています
1. はじめに
本記事では、Amazon S3 との連携機能を有効にしている環境で、aws コマンドを使ったログのダウンロード方法について説明します。
How to: Downloading logs from Cisco Umbrella Log Management using the AWS CLI
https://support.umbrella.com/hc/en-us/articles/360000739983-How-to-Downloading-logs-from-Cisco-Umbrella-Log-Management-using-the-AWS-CLI
2. Amazon S3 連携
Amazon S3 連携は、アクティビティ検索レポートに記録されるアクティビティ ログ (および管理者監査ログ) を Umbrella のデータセンター以外の外部のストレージ (Amazon S3) にも保存する機能です。
この機能を使う主な目的としては、外部ツール (SIEM など) に Umbrella のアクティビティ ログを転送する、または組織内のバックアップ サーバーなどにログを転送する上での情報源を用意することになります。
その際、Amazon S3 に保存されたログを他所に転送する一番シンプルな方法としては、本記事で紹介する Windows PC 上で AWS CLI (aws コマンド) を使う方法が挙げられます。
なお、Amazon S3 連携には、Company-managed (組織が契約した Amazon S3) と Cisco-managed (Cisco が契約した Amazon S3) の 2 種類のオプションがありますが、より制限の厳しい Cisco-managed を前提に説明します。
3. aws コマンドの使用例
まずは、こちらの Amazon AWS のサイトから AWS CLI の Windows 64-bit 版のインストーラーをダウンロードし、インストールします。インストール中の設定はデフォルトのままで問題ありません。
※ 上記の Amazon AWS のサイトには aws コマンドの詳細な使用方法の記載もあります
コマンドプロンプトを開き、aws とだけ実行すると、以下のように aws コマンドのヘルプが表示され、aws コマンドが使用可能であることが分かります。
>aws
usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:
aws help
aws <command> help
aws <command> <subcommand> help
aws: error: the following arguments are required: command
もし、「コマンドとして認識されていません」というようなエラー メッセージが表示される場合、実行ファイルのパス設定が正常に行われなかったことが考えられます。その場合は、再度 AWS CLI をインストールしなおすことをお勧めします。
次に、aws configure を実行し、Amazon S3 にアクセスするための認証設定を行います。
> aws configure
AWS Access Key ID [None]: (Umbrella Dashboard に表示された Access Key を入力)
AWS Secret Access Key [None]: (Umbrella Dashboard に表示された Secret Key を入力)
Default region name [None]:
Default output format [None]:
※ Company-managed の場合は、組織が契約している Amazon S3 の情報を入力します
入力情報に誤りがなければ、今後実行するコマンドにおいて、権限に関するエラーは出力されません。
では、以下のコマンドで実際にログファイルを取得してみます。
>aws s3 sync s3://(Umbrella Dashboard に表示された Data Path)/ (ログ保存先のローカル フォルダー)
例)
>aws s3 sync s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280/ C:\logs\
download: s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280/dnslogs/2023-01-27/2023-01-27-06-30-cb6f.csv.gz to ..\..\logs\dnslogs\2023-01-27\2023-01-27-06-30-cb6f.csv.gz
download: s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280/dnslogs/2023-01-27/2023-01-27-06-30-ade8.csv.gz to ..\..\logs\dnslogs\2023-01-27\2023-01-27-06-30-ade8.csv.gz
download: s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280/dnslogs/2023-01-27/2023-01-27-06-30-a6fd.csv.gz to ..\..\logs\dnslogs\2023-01-27\2023-01-27-06-30-a6fd.csv.gz
ダウンロード後、指定したフォルダーを開くと、dnslogs や proxylogs というログの種別を示すフォルダーがあり、その中に GZIP で圧縮されたログファイルがあります。
ログファイル名のフォーマットやログファイルの内容については、以下の公開文書を参照してください。
Log Formats and Versioning
https://docs.umbrella.com/umbrella-user-guide/docs/log-format-and-versioning
なお、Cisco-Managed の場合、同じファイルを何度もダウンロードすると、その行為が何らかの攻撃や乱用とみなされ、ダウンロードができなくなる場合があります。
そのため、2 回目以降のコマンド実行では差分のみがダウンロードされるよう、ダウンロード済みのログファイルは消さないことをお勧めします。
4. ls オプションの制約
Amazon S3 側のフォルダの中身を確認する ls オプションを使用する際、以下のように、最上位を指定すると、エラーが表示されます。
>aws s3 ls s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280
An error occurred (AccessDenied) when calling the ListObjectsV2 operation: Access Denied
これは、Cisco-managed を使っている場合において、アクセス可能な範囲に制約があることを示しています。
なお、最上位よりも下の階層を指定すると、問題なく実行できます。
>aws s3 ls s3://cisco-managed-us-west-1/2548830_0bd5e62bc7f505fed7cb075d6b8365f02daf6280/
PRE dnslogs/
PRE proxylogs/