EC2のインスタンスプロファイルとIAMロールの実務上の違い

毎度おなじみのクラスメソットさんがわかりやすい dev.classmethod.jp

インスタンスプロファイルってなに?

インスタンスプロファイルは IAM ロールのコンテナであり、
インスタンスの起動時に EC2 インスタンスにロール情報を渡すために使用できます。

参考URL http://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html

書いてある通り、IAMRoleを納めるための容器であり、EC2にアタッチする時に必要なコネクターの役割をします。

引用元に書いてある通りなんですが、 インスタンスプロファイルとiamロールが

  • 1対Nになってる
  • EC2に紐づけられるのはIAMロールそのものじゃなくてインスタンスプロファイル

サンプルで記載されているCloudformationのEC2立ち上げの設定を読んでみると

IamInstanceProfile: !Ref myInstanceProfile

iamロールを付与してるわけじゃなくてインスタンスプロファイルを指定してる

実務上意識することってどういうことなのかと勝手に解釈

該当記事を読んだ感じだとaws cliやcloudformationでインスタンスを立ち上げる時に理解していないとハマるってことかと思う。 コンソールから立ち上げるとIAMロールをそのままアタッチしてるように見えるけどそうではない。

繰り返しになるが EC2にアタッチするのはIAMロールではなくて「IAMロールを付与したインスタンスプロファイルである」ってことかと。