AWSアップデート Configを用いたAMIの監査
導入
背景・目的
- 2025年3月11日のアップデートにより、Allowed AMI の機能がAWS Config と統合されました。
- 今までは、許可されていないAMIの検出向けにConfigカスタムルールを作成する必要があったのですが、ConfigマネージドルールによってAMI監査を実装できるようになりました。
- Allowed AMI の監査モードとConfigマネージドルールを組み合わせたAMI監査について、実際に試してみます。
対象読者
- 本記事は、AWS 認定ソリューションアーキテクト - アソシエイトレベルの知識を持つ読者を想定しており、AWSサービスの基本的な解説は省略します。
Allowed AMIの監査モード有効化
まずは、Allowed AMI の監査モードを有効化します。
AWSコンソールからEC2ダッシュボードにアクセスして、Allowed AMIsの設定を有効化します。
Allowed AMIs settingsにAudit mode
を選択したうえで、自分自身のAWSアカウントで作成されたAMIのみを許可対象として定義します。
設定後にAMIコンソール画面へアクセスし、パブリックイメージのAmazon Linuxを検索・表示したところ、Allowed imageカラムがNoと表示されていることを確認しました。
Configのマネージドルール設定
次に、Configのマネージドルールを設定していきます。
AWSコンソールからAWS Config
> ルール
画面に遷移して、ルールを追加
ボタンをクリックします。
マネージド型ルールの中から、ec2-instance-launched-with-allowed-ami
を選択します。
今回はデフォルト設定のまま作成しました。
動作検証
それでは、Allowed AMI の監査モードとConfigマネージドルールの動作を検証してみましょう。
CDKを用いて、Allowed AMIに含まれないAMI(AmazonLinux2023)でEC2インスタンスを起動してみます。
new ec2.Instance(this, "MyInstance", {
vpc: networking.vpc,
instanceType: ec2.InstanceType.of(ec2.InstanceClass.BURSTABLE3, ec2.InstanceSize.MICRO),
machineImage: ec2.MachineImage.latestAmazonLinux2023(),
vpcSubnets: { subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS },
})
インスタンス起動後にConfigルールを確認すると、コンプライアンス非準拠になっていました。
次に、Allowed AMIsの設定画面に戻り、許可するImageProvidersとしてamazonを追加してみます。
設定変更後にConfigルールを再評価すると、コンプライアンス準拠になっていました。
所感
監査モードとConfigマネージドルールとを組み合わせることで、インスタンス起動時に利用されるAMIの監査の仕組みを容易に実装することができました。
Allowed AMIsの設定を厳格化して許可されたAMI以外でのEC2起動を禁止する前に、本アップデートの内容でお試ししてみるのが良さそうです。
参考
注意事項
- 本記事は万全を期して作成していますが、お気づきの点がありましたら、ご連絡よろしくお願いします。
- なお、本記事の内容を利用した結果及び影響について、筆者は一切の責任を負いませんので、予めご了承ください。
Discussion