既存のCloudTrailのCloudTrail Insights を AWS CLIから有効化/無効化してみた

2021.05.24

この記事は公開されてから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"
  }
]