この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
いわさです。
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"
}
]