ENGINEER BLOG ENGINEER BLOG
  • 公開日
  • 最終更新日

【EC2】停止中インスタンスの IAM ロール変更が失敗した理由

この記事を共有する

目次

はじめに

本記事では停止中の EC2 インスタンス(以下「インスタンス」という)に関連付けられた IAM ロールを変更しようとしたら、エラーによって失敗した理由を説明します。

結論からお伝えすると、停止中のインスタンスは IAM ロールの置き換えができないことが原因でした。
解決策として、以下の手順を踏めば IAM ロールの置き換えができます

  1. インスタンスから既存の IAM ロールをデタッチ
  2. インスタンスに変更先の IAM ロールをアタッチ

経緯

ある日 AWS マネジメントコンソールにアクセスして、検証用に構築したインスタンスの IAM ロールの変更を試みました。 インスタンスを停止した後、IAM ロールの変更を実施したところ、以下のエラー¹ が表示されました。

(以下、固有情報は●●●と筆者が置き換えています)

インスタンスプロファイルを replace できませんでした
The association iip-assoc-●●● is not the active association

エラーの理由

原因はインスタンスが停止中は、 IAM ロールの変更ができないためでした。

ユーザーガイド「インスタンスへの IAM ロールのアタッチ」には、以下が記載² されています。

既に IAM ロールがアタッチされているインスタンスで IAM ロールを置き換えるには、インスタンスが実行されている必要があります。

IAM ロールのアタッチとデタッチについては、インスタンスが停止中であっても実行できます。
以下、ユーザーガイド「インスタンスへの IAM ロールのアタッチ」の内容² を元に筆者が表にまとめました。

画表

解決策

停止中のインスタンスの IAM ロールを置き換えたい場合、インスタンスを起動するしか方法がないのでしょうか?
そんなことはありません。
以下の手順を実施することで、停止中であっても IAM ロールの置き換えができます

  1. インスタンスから既存の IAM ロールをデタッチ
  2. インスタンスに変更先の IAM ロールをアタッチ

直接 IAM ロールを置き換える手順と比べて工程が1つ増えますが、インスタンスを起動することなく IAM ロールが置き換えられました。

まとめ

停止中のインスタンスは IAM ロールの置き換えを直接行うことができず、エラーにより失敗します。
解決策として、IAM ロールのデタッチとアタッチを経由することで、置き換えができます

本記事が少しでもお役に立てれば幸いです。

参考文献

¹ "IAM ロールを変更 | EC2 | ap-northeast-1". Amazon Web Services. https://ap-northeast-1.console.aws.amazon.com/ec2/home?region=ap-northeast-1#ModifyIAMRole:instanceId=●●●, (参照 2025-5-1)
² "インスタンスへの IAM ロールのアタッチ - Amazon Elastic Compute Cloud". AWS Documentation. https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/attach-iam-role.html, (参照 2025-5-17)

この記事は私が書きました

Hirano

記事一覧

AWSの知見を身につけるため、一大決心でP&Sに入社しました。 目標はシステム改善に大きく貢献できるエンジニアになることです。 簡単な内容であっても自身が戸惑った点を投稿することで、同じ苦労をしている方の助けになれば嬉しいです!

Hirano

この記事を共有する

クラウドのご相談

CONTACT

クラウド導入や運用でお悩みの方は、お気軽にご相談ください。
専門家がサポートします。

サービス資料ダウンロード

DOWNLOAD

ビジネスをクラウドで加速させる準備はできていますか?
今すぐサービス資料をダウンロードして、詳細をご確認ください。