EC2インスタンスプロファイルがSSM機能をDENYしていてもSSM Default Host Management ConfigurationのIAMロールにフォールバックします

2023.05.31

2023年の2月にSSM Default Host Management Configuration(SSM DHMC)という機能がリリースされ、これまでEC2のインスタンスプロファイルでのみ設定可能だったSSM権限をSSMでもデフォルトとして設定可能になりました。

本機能発表時のしばたのブログ解説にもあるように、SSMのデフォルトロールは、EC2インスタンスプロファイルのフォールバックとして機能します。

このフォールバック

  • インスタンスプロファイルが設定されていない
  • インスタンスプロファイルでSSM系の権限がALLOWされていない

といったケースだけでなく

  • インスタンスプロファイルでSSM系の機能がDENYされている

といったケースも含みます。

IAM ポリシーでよく見かける評価フローでは明示的なDENYがあれば最優先されて評価を打ち切ります。

引用元

本機能の場合、EC2インスタンスプロファイルでSSMがDENYされていても、SSMのデフォルトロールにフォールバックするため、ご注意ください。

インスタンスプロファイルのロールはEC2を信頼できるエンティティとして許可し、SSM DHMCのロールはSSMを信頼できるエンティティとして許可し、ロールそのものも異なるため、このように動作しているものと思われます。

SSMを許可したくないEC2インスタンスはどうすれば良い?

SSM DHMCの最大のメリットはアカウント・組織レベルで一括してEC2のSSM機能を有効化できることです。

EC2インスタンスの中には、SSMを有効にしたくないインスタンスも含まれているでしょう。

そのようなインスタンスに対しては、インスタンスプロファイルで ssm:UpdateInstanceInformation を許可しましょう。

このアクションが許可されていると、SSM DHMCで設定したIAMロールにフォールバックしなくなります。

Before you begin, if you have instance profiles attached to your Amazon EC2 instances, remove any permissions that allow the ssm:UpdateInstanceInformation operation. The SSM Agent attempts to use instance profile permissions before using the Default Host Management Configuration permissions. If you allow the ssm:UpdateInstanceInformation operation in your instance profiles, the instance will not use the Default Host Management Configuration permissions.

Default Host Management Configuration - AWS Systems Manager

EC2インスタンスプロファイルから SSM DHMCへのフォールバックのフローまとめ