通常のAWS Configルール(サービスリンクルールではない)が、TCP 22を0.0.0.0/0へ公開するSecurity Groupを非準拠と評価している。承認済みのカスタムAutomation runbookはGroupIdとAutomationAssumeRoleを入力に取る。
各SGの違反ルールだけを自動で除去し、正当な管理CIDRの許可は保持したい。評価後に担当者が修正する場合もあるため、実行前に現在の設定を再確認する。必要な実行権限は用意済み。
要件を満たす修復構成はどれか。
対象SG IDとAutomation実行ロールを渡して自動修復を有効化し、実行時の現在状態から違反ルールだけを除去する。
詳細解説
修復手順の関連付けと自動実行の有効化は別である。Automatic=falseの手動修復設定だけでは検出後の自動対応を満たさない。
対象SGのIDを動的に渡し、指定したロールで承認済みの操作を行う。現在すでに準拠していれば変更を省略し、古い評価結果に基づく不要な変更を防ぐ。
固定IDでは評価されたSGと修復対象が一致しないことがある。GroupIdのResourceValue.ValueにRESOURCE_IDを指定して対象リソースのIDを渡す。
評価結果が古い場合、すでに準拠したSGにも自動修復が開始され得る。全ルールの削除は正当な管理CIDRも失わせるため、実行時の違反だけを確認して修復する。
公式資料で確認する
以下の項目を公式資料の記述と照合して確認します。
検証SGで違反の検出から修復までを確認し、評価後に手動修正したケースと同じ対象の再実行も試す。DescribeRemediationExecutionStatusとAutomation実行履歴を確認する。
参考にした公式資料
確認できる内容
評価対象とGroupIdが一致し、違反ルールだけが除去される。すでに準拠したSGの許可は維持され、実行結果と失敗理由を確認できる。
理解のポイント
- AWS Config remediation
- AutomationAssumeRole
- RESOURCE_ID
確認時の注意
- 確認環境: AWS公式SOA-C03試験ガイドとAWS公式ドキュメントの確認
- AWS公式SOA-C03試験ガイドと各サービスの公式ドキュメントを確認する。
基礎のおさらい
自動実行と対象・ロールを設定する
対象は通常のConfigルールに関連付けた承認済みrunbook。Automatic=trueで自動修復を有効化し、GroupIdのResourceValue.Value=RESOURCE_IDで評価対象のSG IDを渡す。自動修復にはAutomationAssumeRoleの値が必要で、runbookの入力・SSMの信頼関係・必要なEC2操作権限も確認する。Configの評価ロールと修復の実行ロールを同一視しない。
古い評価結果をそのまま変更命令にしない
Configの自動修復は評価スナップショットを利用するため、すでに準拠したリソースにも開始され得る。これは最新の状態だけで実行される保証ではない。runbook内で現在のSGを読み直し、違反がなければ変更を省略する。違反するTCP 22/0.0.0.0/0だけを除去し、正当な管理CIDRや他の許可は保持する。
繰り返し実行と結果を確認する
同じ対象の再実行でも、必要な変更だけを行う冪等な手順にする。再試行の回数・期間と同時実行の範囲を定める。DescribeRemediationExecutionStatusとAutomation実行履歴で対象ID・ステップ・失敗理由を確認し、修復後の再評価も確認する。自動化を設定しただけで準拠を保証しない。