IAMロールを付けずにローンチしたEC2にIAMロールを設定する

記事タイトルとURLをコピーする

サーバーワークス カスタマーサポート課の伊藤です。
AWSから既存のEC2に対してIAMロールがアタッチできるというアップデートが発表されました。
Amazon EC2 Systems Manager など、IAMロールが必要なサービスが増えている中で既存のインスタンスの扱いに悩んでいた方には、待望のアップデートとなります。

早速手順を見てきたいと思います。

手順

この手順では既にAmazon EC2 Systems ManagerなどでIAMロールの利用を開始しているなかで、以前から運用していて、作り直しをしたくないインスタンスにIAMロールをアタッチするシナリオを想定します。
このため、IAMロールは既に作成済みであるとします。

  1. AWS CLIの更新
    新機能ですので、まずはAWS CLIの更新をおこなっておきます。
    https://aws.amazon.com/jp/cli/


  2. 状態の確認
    IAMロールをアタッチしたいインスタンスを確認しておきます。
  3. コマンドの実行
    以下のコマンドを実行します。
     $aws ec2 associate-iam-instance-profile --instance-id i-9b887705 --iam-instance-profile Name=support-SSM
    $aws ec2 associate-iam-instance-profile --instance-id <インスタンスID> --iam-instance-profile Name=<インスタンスプロファイル名>
  4. 状態の確認
    コマンドを実行するだけで、インスタンスにIAMロールが追加されました。

注意

公式ドキュメントでは、IAMロールの作成、インスタンスプロファイルの作成、インスタンスへのインスタンスプロファイルへのアタッチをCLIでおこなっています。
今回ご紹介した手順では、既に運用中という想定で、マネージメントコンソールで作成したIAMロールをインスタンスにアタッチするシナリオをご紹介しました。

マネージメントコンソールでIAMロールを作成した場合は、自動的にIAMロールと同一名のインスタンスプロファイルが作成されるので、IAMロール=インスタンスプロファイルとなりますが、
CLIでIAMロールを作成した場合にはIAMロールとインスタンスプロファイルが別になりますので、IAMにアタッチする際はご注意ください。
インスタンスプロファイルの詳細については公式ドキュメントをご参照ください。

まとめ

今回のアップデートでIAMロールを付けずにローンチしたインスタンスを止めること無くIAMロールをアタッチすることができるようになりました。
IAMロールはSystems ManagerやRun Comand などEC2の運用を効率化していく際に欠かせないサービスとなっています。
この機能を利用して、これまでのシステムをIAMロールに対応させ、運用効率化を進めてみてはいかがでしょうか。