EC2インスタンスで実行されているSpring BootアプリからSQSにアクセスしようとしています。コンシューマーとSQSキューの両方が同じAWSアカウントに存在します。 SQSにアクセスするには、インスタンスプロファイルをEC2インスタンスに追加する必要があると言われました。この場合のロールとインスタンスプロファイルの違いは何ですか?適切なポリシーを持つ役割で十分ではないでしょうか?
インスタンスプロファイルは、単一のIAMロールのコンテナです。
一般的な規則は、明確にするために、同じ名前のIAMロールとインスタンスプロファイルを作成することです。
EC2インスタンスに直接ロールを割り当てることはできませんが、ロールを含むインスタンスプロファイルを割り当てることはできます。
インスタンスプロファイルを使用する利点は、AWS_ACCESS_KEY_ID
およびAWS_SECRET_ACCESS_KEY
を管理する必要がないことです。アプリケーションは、その情報を安全に保存してアクセスする方法を心配する必要がなくなります。
EC2インスタンスに直接ロールをアタッチすることはできないため、ロールのコンテナーとして機能するインスタンスプロファイルを使用する必要があります。 ロールは複数のインスタンスプロファイルに含めることができますが、インスタンスプロファイルには1つのIAMロールのみを含めることができます。
EC2は、インスタンスプロファイルの一部であるロールの権限を取得します。
インスタンスプロファイルごとに1つのロールの制限を増やすことはできません。既存のロールを削除してから、インスタンスプロファイルに別のロールを追加できます。
AWSマネジメントコンソールを使用してAmazon EC2のロールを作成する場合、コンソールは自動的にインスタンスプロファイルを作成し、ロールと同じ名前を付けます。
cLIを使用している間、ロールとインスタンスプロファイルの作成は別のアクションです。ロールとインスタンスプロファイルには異なる名前を付けることができるからです。
詳細はこちら https://docs.aws.Amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html