[小ネタ]AWS CloudTrail Lakeの外部イベント統合で使うエンドポイントを確認してみた

cloudtrail-dataって新しいAPIエンドポイントなのかどうか、確認しました。
2023.03.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、臼田です。

みなさん、ログ集めてますか?(挨拶

今回はエンドポイントマニア向けの小ネタです。

概要

先日AWS CloudTrail LakeがCloudTrail以外の外部のログを取り込めるようになりました。

CloudTrail以外では、AWS Configが取り込みできるようになっていましたが、他のAWSのログを差し置いて外部のログを取り込めるようになってなかなか衝撃的なアップデートでした。

で、このアップデートに伴ってログ取り込み用のAPIが実装されたことが上記ブログで解説されています。

AWS CLI もアップデートされていて、新たにcloudtrail-dataというサブコマンドが提供されています。 この中のput-audit-events相当の API が上記コードでは実行されていました。

新しくcloudtrail-dataが出てきたということで、「エンドポイントが増えたのでは?」と思い調べてみることにしました。

調べてみた

AWS CLIリファレンス

こちらがブログに貼ってあったので確認してみました。

「cloudtrail-data」で個別にページが作られていて、今の所APIはput-audit-eventsのみでした。ただここにはエンドポイントが別れているかの記述が無かったので、別のところを調べに行きました。

APIリファレンス

上記からリファレンスに行くと左上は「AWS CloudTrail」とだけなっています。しかしActionは「PutAuditEvents」だけなので、何かがおかしいです。

1階層上に上がるとここは既存のものと別に「CloudTrail-Data API Reference」って書いてあります。一応APIリファレンスが別れていることが確認できましたが、エンドポイントはどこにも書いてませんでした。

エンドポイント一覧

「よく考えたらエンドポイント一覧見ればいいや」と気づいて見に行きました。

しかし、こちらは英語表示にしても、CloudTrailのページしかなく、Endpoint欄の記載も特に増えていませんでした。これはエンドポイントは一緒なのか…?

動作確認

結局確証が得られなかったので、実際の動きを見ることにしました。CloudShellを立ち上げて、適当にファイルを準備して(参照したブログでやり方書いてあるので参考にしています)、下記コマンドを実行します。

[cloudshell-user@ip-10-2-93-140 ~]$ aws cloudtrail-data put-audit-events --channel-arn a --audit-events file://hoge.json --debug
…省略…
2023-03-01 13:50:16,628 - MainThread - botocore.auth - DEBUG - CanonicalRequest:
POST
/PutAuditEvents
channelArn=a
content-type:application/json
host:cloudtrail-data.ap-northeast-1.amazonaws.com
x-amz-date:20230301T135016Z
…省略…
An error occurred (InvalidChannelARN) when calling the PutAuditEvents operation: The specified channel ARN is not a valid channel ARN.

--debugをつけるとHTTPのリクエストが確認できます。

正解はcloudtrail-data.ap-northeast-1.amazonaws.comでした。ちゃんと分かれていましたね。

まとめ

新しいサービスとかならエンドポイント分かれているのは当然ですが、今回みたいなパターンだと気になりますよね?

動かすのめんどくさいなーと思っていろいろ調べましたが、やっぱり動かすのが一番早いですね。

ドキュメントたちはそのうち反映されていると思います。