ナスです。

結構前の話ですが、起動済みの EC2 インスタンスに IAM ロールをつけたり、別の IAM ロールに付け替えたりできるようになりました。これのおかげで、かなり前に作成した EC2 インスタンスにも SSM でコマンド実行できるようになりましたね。

で、実際にやってみたんですが、ちょっと気になる点があったので、まとめて書いておきます。

IAM ロールの権限が反映されるまでの時間がなんか長い

そのままなんですが、IAM ロールがついていない EC2 インスタンスにロールをつけて、すぐに SSM でなんかコマンド実行しようとしたら、この状態でした…

あれ? SSM の権限つけたはずなのに…

トラブルシューティングのドキュメントをみても、エージェントが動いているかどうかと、IAM ロールに必要な権限がついているかどうかを確認する旨の記載しかありません。

以下の情報を参考にして、Run Command に関する問題のトラブルシューティングを行います。

docs.aws.amazon.com

と、調べているうちに、気がついたら実行対象として選択できるようになっていました。

OS によって IAM ロールをつけた後のタイムラグの長さが違う

実際には条件は同じかもしれませんが、なんとなくそんな気がしています。自分の検証環境でテストしてみたところ、↓のような結果が出ました。

起動中の EC2 インスタンスの IAM ロールを変えてほったらかして、SSM の画面で表示されるまで

  • Amazon Linux : 約 5 分
  • Windows Server 2012 R2 : 約 15 分
  • 上記以外のOS : 試してないのでわかりません

起動中の EC2 インスタンスの IAM ロールを変えて再起動した場合

  • OS に関係なく即反映

雰囲気ですが、Linux だとわりと早く IAM ロールの内容が反映されて、Windows だとちょっと時間がかかる、と言う感じです。

私は IAM ロールを変更して反映されなかったらすぐに元に戻して調べていたのでこのことになかなか気づきませんでしたが、もし同じようなことで悩んでいる方がいたら、きっと反映されるので気長にそのままにして待ってみてください。もし再起動できる環境なら再起動してみましょう。きっと幸せが訪れますよ。

元記事はこちら

既存 EC2 インスタンスに IAM ロールをつけて気になったこと [cloudpack OSAKA blog]