ヤマムギ

growing hard days.

*

Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました

   

2023/2/17のアップデートAWS Systems Manager をアカウント内すべての EC2 インスタンスにおいてデフォルトで有効にする新機能が登場を確認しました。

前提

SSM Agent3.2.582.0以降のバージョンが必要です。
この検証時点ではデフォルトのAmazon Linux 2023にプリインストールされているバージョンが3.1.1927.0でしたので、検証で使用しているEC2インスタンスは次のユーザーデータでAgentのインストールをしています。
東京リージョン向けです。

検証準備

デフォルトのホスト管理設定を有効化する前から起動していたEC2インスタンスに対しても有効になるかを確認するために、あらかじめ3つのEC2インスタンスを起動しました。

  • BeforeDemoNoRole: EC2インスタンスプロファイルなし(IAMロールなし)
  • BeforeDemoRoleNoSSM: EC2インスタンスプロファイルあるがアタッチされているポリシーにSSM許可なし
  • BeforeDemoRoleSSM: EC2インスタンスプロファイルあり、SSMManagedInstanceCoreアタッチ

この時点でBeforeDemoRoleSSMだけがSystems Managerフリートマネージャでマネージドノードとして確認できました。

設定

Systems Managerフリートマネージャの[デフォルトのホスト管理設定]ボタンを押下しました。

デフォルトのホスト管理設定を有効にしてIAMロールは推奨の自動作成にしました。

作成されたIAMロールには、AWS管理ポリシーAmazonSSMManagedEC2InstanceDefaultPolicyがアタッチされて、信頼関係のPrincipalにはssm.amazonaws.comが設定されました。

設定後の確認

事前に作成していた3つのEC2インスタンスと同様の設定でEC2インスタンスを3つ起動しました。

結果、すべてのEC2インスタンスがSystems Managerフリートマネージャでマネージドノードとして確認できました。
セッションマネージャも使用できます。

EC2インスタンスプロファイルがあってもなくても関係なく、SSMアクションが許可されていないEC2インスタンスはデフォルトのホスト管理設定が使用されて、Systems Managerで管理できるようになりました。

EC2インスタンスプロファイルを設定していない(IAMロールを引き受けてない)EC2インスタンスにセッションマネージャーで接続して、sts get-caller-identityを実行すると、Unable to locate credentialsになりました。
EC2メタデータにAssumeRoleしたキーが設定されているわけではなく、AgentからSystems Managerで管理するためにSystems ManagerのIAMロールが使用されているようです。

IAMロールでDenyした場合

EC2インスタンスプロファイルのIAMロールに次のポリシーをアタッチして、EC2インスタンスを起動してみました。

これでもSystems Managerフリートマネージャでマネージドノードとして確認できました。
拒否している場合もSSMアクションが許可されていないEC2インスタンスとして、デフォルトのホスト管理ロールが使用されるんですね。

デフォルトのホスト管理設定はアカウント、リージョンごとに有効なので、そのリージョンの特定のEC2インスタンスをSystems Managerで管理したくない場合には、従来どおり、デフォルトのホスト管理設定を無効化しておけば良いようです。


最後までお読みいただきましてありがとうございました!

「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。

「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。

「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。

「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。

「AWSではじめるLinux入門ガイド」という本を書きました。

 - AWS , ,

ad

ad

  関連記事

CodeBuildで執筆原稿データをまとめた

今書いている原稿に対して編集者さんから、「できればで構わないのですが、章ごとにマ …

JAWS DAYS 2018 「Cost-Driven AWS クラウドアーキテクチャデザインとコスト最適化方法 – Cost-Driven AWS Cloud Architecture Design : The Lean Startup on AWS」を聞きました

以下は、思ったことや気になったことをメモしていますので、必ずしも登壇者の発表内容 …

Lambda関数をPython3.6から3.9に変更

CodeGuru ProfilerでLambda関数(Python 3.9)のパ …

AWSアカウント内のLambda関数を削除するLambda(Python)

やりたいこと 特定のAWSアカウントの特定リージョンのAWS Lambda関数を …

AWSアカウント内のすべてのS3バケットを削除するLambda(Python)

やりたいこと 特定アカウント内のS3バケットを全部削除したいです。 バケット内の …

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE + 絶対圧センサーで遊ぼう!」ワークショップにいってきた

JAWS-UG関西IoT専門支部 ✕ SORACOM UG 関西「Wio LTE …

WordPressで画像アップロードができなくなった(AWS WAFでブロックしていた)

WordPressで画像がアップロードできなくなりました。 こんなメッセージです …

Route53でドメインを新規取得してDNSレコードを設定する

Elastic IPをAWSで発行しているのですから、DNSの設定も同じようにマ …

Redmineの添付ファイルをS3に同期する

RedmineをAWS上で構築するデザインを考えていて、せっかくなので冗長化しよ …

RDSの証明書をrds-ca-2019に更新しました

クライアント接続で署名書使ってないので、必要ないのですが、古いままなのも気持ち悪 …