【AWS】AWS Config 無効化→有効化時の挙動を確認する
背景
Control Tower を導入する時等、Organizations 全体に AWS Config を有効化したい場合、既に AWS Config が有効化されている AWS アカウントが存在するケースがあると思います。
その際、一度 AWS Config の無効化(含レコーダー削除)が必要となりますが、無効化中に記録されたリソースや既に記録済みのリソースがどうなるのか確認してみます。
結論
- 無効化中に作成したリソースは、有効化時に検出される
- 無効化中に既存リソースの変更を行うと Config としては変更情報は記録されない
- ただし、CloudTrail イベントから追跡することはできるので、LookupEvents API が返却する 90 日以内の情報であればタイムラインから追跡可能(90 日経過後は証跡取っていればそちらから追える)
前提
新規に AWS Config を有効化し、s3-bucket-versioning-enabled
のみ有効化しています。
確認すること
- S3 バケットをバージョニング無効で新規作成する(Config のログ出力先として作成)
- AWS Config を無効化し、作成したバケットのバージョニングを有効化する
- AWS Config を再度有効化する
S3 バケットをバージョニング無効で新規作成する
もちろん記録されている。
Config レコーダーと配信チャンネルの削除
Config レコーダーの削除
以下コマンドで確認したレコーダーの name
を利用して削除する。
aws configservice describe-configuration-recorders
{
"ConfigurationRecorders": [
{
"name": "default",
"roleARN": "arn:aws:iam::xxxx:role/aws-service-role/config.amazonaws.com/AWSServiceRoleForConfig",
"recordingGroup": {
"allSupported": false,
"includeGlobalResourceTypes": false,
"resourceTypes": [],
"exclusionByResourceTypes": {
"resourceTypes": [
"AWS::IAM::Policy",
"AWS::IAM::User",
"AWS::IAM::Role",
"AWS::IAM::Group"
]
},
"recordingStrategy": {
"useOnly": "EXCLUSION_BY_RESOURCE_TYPES"
}
},
"recordingMode": {
"recordingFrequency": "CONTINUOUS",
"recordingModeOverrides": []
}
}
]
}
aws configservice stop-configuration-recorder --configuration-recorder-name default
(出力なし)
以下コマンドで recording false になっていれば OK
aws configservice describe-configuration-recorder-status
{
"ConfigurationRecordersStatus": [
{
"name": "default",
"lastStartTime": "2024-10-22T05:01:12.642000+00:00",
"lastStopTime": "2024-10-22T05:12:53.607000+00:00",
"recording": false,
"lastStatus": "SUCCESS",
"lastStatusChangeTime": "2024-10-22T05:01:23.067000+00:00"
}
]
}
配信チャネルの削除
以下コマンドで確認した配信チャネルの name
を利用して削除する。
aws configservice describe-delivery-channels
{
"DeliveryChannels": [
{
"name": "default",
"s3BucketName": "config-bucket-20241022"
}
]
}
aws configservice delete-delivery-channel --delivery-channel-name default
(出力なし)
以下コマンドで DeliveryChannels が空であれば OK
aws configservice describe-delivery-channels
{
"DeliveryChannels": []
}
リソースの変更
作成したバケットのバージョニング有効化する。
ついでにもう1つバケット作っておく。
AWS Config を再度有効化する
14:20 頃に有効化しましたが、CloudTrail イベントからバージョニングの有効化が拾われています。
無効化中に新規作成したバケットも記録されています。
(記録されているというか Config を新規に有効化した時同様、現時点のリソースを検出している感じでしょうか。)
バケット作成イベントも拾われているので、無効化中に何があったのかの追跡はできそうです。
バージョニングを変更すると 設定変更
として記録されました。
Config 無効化中にバージョニングを変更した方は 設定変更
として記録されていませんでしたので、ここが大きな差分になりそうです。
CloudTrail イベントについては、Chrome の開発者ツールで見てみると、CloudTrail の LookupEvents API から取得していました。
なのでタイムライン上の CloudTrail イベントについては 90 日より前の情報は見れなさそうですね。90 日より前に関しては CloudTrail 証跡を取得していない限り追跡できなくなります。
Discussion