はじめに
AWS Configでは「ルール」より、設定ルールに準拠・非準拠のリソースを探し、その対象リソースに対して修復アクションを実行する機能があります。
この修復アクションでAWS Systems Manager Automation(SSM Automation)のrunbookを起動し、それを使って他のリソースにConfigで探したリソース一覧を渡すことができます。
今回このrunbookを作成して、それを修復アクションで起動するように設定しましたが、SSM Automationより直接runbookを実行した際は成功するのに、修復アクションから起動しようとすると失敗するエラーが出ており、その原因解決に手間取ったので共有します。
結論
直接runbookを実行した際のrunbookのバージョンと、修復アクションより実行したrunbookのバージョンが違ったことでした。
runbookは変更を加えると、バージョンの形で前状態が保存されます。
このとき、デフォルトバージョンを指定でき、AWS Configのルールで指定するrunbookも基本的にはこのバージョンが使われます。
このデフォルトバージョンを変えた後に、直接runbookを実行した際は変更後のデフォルトを使ってくれますが、どうもAWS Configのルールではその変更を自動的に認識してくれません。
これが原因でした。
解決策
「修復の管理」より、修復アクションを一度別のものにして保存し、再度設定したいアクションで保存することで、最新のデフォルトバージョンを認識してくれます。
感想
思い返せば当たり前のことですが、バージョン更新した際は、それに関係しているリソースがちゃんと動くか確かめた方がいいですね。