目次
CloudTrail Lakeとは
- CloudTrail Lakeは、CloudTrailのデータをSQL文で検索できます。
- CloudTrail Lakeを有効にしてからデータが蓄積されていきます。
- 料金は、取り込みと分析でかかります。
https://aws.amazon.com/jp/cloudtrail/pricing/
取り込み | 最初の 5 TB: 1 GB あたり 2.5 USD その後の 20 TB: 1 GB あたり 1 USD 25 TB 以上: 1 GB あたり 0.5 USD |
分析 | スキャンしたデータ 1 GB あたり 0.005 USD |
CloudTrail Lakeを設定する
1.検索入力欄で「CloudTrail」と入力し、表示された「CloudTrail」をクリックします。
※画面右上のリージョンを確認します。例:東京 ap-northeast-1
2.画面左の「レイク」をクリックします。
3.「イベントデータストアの作成」をクリックします。
4.イベントデータストア名、保存期間を入力します。次へをクリックします。
5.必要なイベントタイプにチェックを入れます。
管理イベントは、ログインやEC2インスタンスの作成、削除等を指します。
データイベントは、リソースの操作ログを指します。
データイベントは以下を選択できます。(2023/06時点)
6.管理イベントです。必要に応じてチェックを入れます。
7.データイベントです。必要に応じて選択します。
次へをクリックし確認画面で問題なければイベントデータストアの作成をクリックすると作成されます。
8.作成後は一覧に表示されます。
CloudTrail LakeのデータをSQLで確認する
1.画面左の「レイク」をクリックします。
2.「エディター」でSQLを入力できます。
fromのテーブルを指定する箇所は、イベントデータストアIDを指定します。
eventTimeで日時の範囲を指定し、LIMITで出力件数を絞ります。
実行ボタンをクリックするとSQLが実行されます。
eventTime >= '2022-07-01 00:00:00' and eventTime < '2022-08-16 00:00:00'
LIMIT 30;
※betweenはうまくいきません。時間の00が0だとうまくいきません。
3.SQLの実行結果は、画面下にスクロールすると表示されています。
CloudTrail LakeのSQLの例
CloudTrail Lakeは、json形式になっていますが、SQLで指定できます。
取得方法1:イコールで指定、否定は!=
取得方法2:項目をドットつなぎにする
取得方法3:element_atで指定する(requestParametersの項目)
取得方法4:errorCode is not null ,is nullでエラー有り無しの抽出
取得方法1:イコールで指定、否定は!=
SELECT * FROM テーブル名
WHERE eventName = 'PutObject' and sourceIPAddress = '10.0.10.4'
limit 10
値はシングルコーテーションで括ります。
否定は、!=です。
limitは出力件数です。
日時のfrom-to指定
SELECT * FROM テーブル名
eventTime >= '2022-07-01 00:00:00' and eventTime < '2022-08-16 00:00:00'
LIMIT 30;
※betweenはうまくいきません。時間の00が0だとうまくいきません。
取得方法2:項目をドットつなぎにする
波括弧で括られている箇所は、JSONのオブジェクトです。
{
"eventVersion": "1.08",
"userIdentity": "{type=AWSService, ・・・identityprovider=null}",
like文
SELECT * FROM テーブル名
WHERE userIdentity.type like 'AWSSer%'
ドットでつなぎます。
in句 (tlsのバージョンを指定)
SELECT * FROM テーブル名
WHERE tlsDetails.tlsVersion IN ('TLSv1','TLSv1.1','TLSv1.2')
取得方法3:element_atで指定する(requestParametersの項目)
{
"eventVersion": "1.08",
"requestParameters": "{tableName=library}",
element_atを使用します
SELECT * FROM テーブル名
WHERE (element_at(requestParameters, 'tableName') like 'lib%')
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/query-limitations.html#query-supported-functions
※CloudTrail Lakeの画面の「サンプルクエリ」のタブにサンプルのSQLがあります。
取得方法4:errorCode is not null ,is nullでエラー有り無しの抽出
SELECT * FROM テーブル名
WHERE errorCode is null
limit 10
is null またはis not nullを使用できます。
SQLの結果の全件をCSVで取得する
1.「結果をS3に保存」にチェックを入れSQLを実行します。
「S3を参照」をクリックすると対象のS3が表示されます。
対象のS3のバケットがない場合は自動で作成されます。
2.csv.gzの行にチェックをいれダウンロードをクリックするとCSVでダウンロードされます。
拡張子のgzはダウンロードすると外れます。
3.以下のようなCSVがダウンロードされます。
CloudTrail Lakeを削除する
1.画面左のレイクをクリックします。
2.イベントデータストアをクリックします。
3.削除するイベントデータストアのリンクをクリックします。
4.アクションから削除をクリックします。
削除がグレイアウトの場合は、終了保護の変更をクリックして終了保護を無効にします。
関連の記事