既存のCloudTrailのCloudTrail Insights を AWS CLIから有効化/無効化してみた
いわさです。
CloudTrail Insights は CloudTrail で有効化できるオプションです。
マネジメントコンソール上では上記から「有効化」を行うだけですぐ利用可能ですが、AWSCLIでも設定するインターフェースが用意されていたので、今回はAWSCLIにて実行してみました。
CloudTrail Insights はまだCloudFormationに対応していないようなので、コード化したい場合はAWSCLIを使いましょう。
既存TrailへのInsights有効化
CloudShellから実行しました。
まずTrailの一覧を調べて証跡名を取得します。
[cloudshell-user@ip-10-0-x-x ~]$ aws cloudtrail describe-trails { "trailList": [ { "Name": "hoge", ... "IsOrganizationTrail": false }, { "Name": "iwasa20210524", "S3BucketName": "xxx", "IncludeGlobalServiceEvents": true, "IsMultiRegionTrail": true, "HomeRegion": "ap-northeast-1", "TrailARN": "arn:aws:cloudtrail:ap-northeast-1:xxx:trail/iwasa20210524", "LogFileValidationEnabled": true, "KmsKeyId": "arn:aws:kms:ap-northeast-1:xxx:key/xxxxxxx", "HasCustomEventSelectors": false, "HasInsightSelectors": false, "IsOrganizationTrail": false } ] }
iwasa20210524
を対象にします。
有効化は put-insight-selectors を使用します。
[cloudshell-user@ip-10-0-x-x ~]$ aws cloudtrail put-insight-selectors --trail-name iwasa20210524 --insight-selectors ' [ { "InsightType": "ApiCallRateInsight" } ] '
マネジメントコンソールを確認すると、有効化されています。
簡単ですね。
なお、"insight-selectors"パラメータ配列要素内の"InsightType"プロパティへは、"ApiCallRateInsight"のみ指定可能なので、現時点では上記のパラメータで固定となるでしょう。
既存TrailへのInsights無効化
次にCloudTrail Insights が有効化されたリソースのInsights無効化も試してみます。
無効化も同じく put-insight-selector を使用します。
違いとしては、insight-selectorsパラメータに空の配列を指定します。
[cloudshell-user@ip-10-0-x-x ~]$ aws cloudtrail put-insight-selectors --trail-name iwasa20210524 --insight-selectors '[]'
無効化されています。
簡単ですね。
Insightsを有効化した新規Trailを作成
これはできません。
HasInsightSelectorsをcreate-trail時に指定するオプションは現在存在しないようです。
create-trail実行後にput-insight-selectorsを実行しましょう。
さいごに
コマンド実行するだけの簡単な内容ですが、Insightsが無効化されたTrailへのCloudTrailの有効化をCLIから行うケースが今後ありそうなので検証かねて記事にしました。
2021年11月16日追記
APIエラー率のInsightタイプが追加され、AWS CLIも対応されています。
以下の形でApiErrorRateInsight
を指定することで有効化が可能です。
iwasa.takahito@hoge ~ % aws cloudtrail put-insight-selectors --trail-name iwasa20210524 --profile hoge --insight-selectors ' [ { "InsightType": "ApiCallRateInsight" }, { "InsightType": "ApiErrorRateInsight" } ]