
AWS IAM のリソース/概念をもう少し理解しようとしています。EC2 を設定する方法 (基盤となる AMI または起動テンプレートのいずれかを使用) があることは知っています。これにより、初めて起動したときに、そのインスタンスがアクセスする必要があるものに対して適切なロール/権限が自動的に割り当てられます。たとえば、そのインスタンスで実行されているソフトウェア サーバーに S3 の読み取り/書き込みアクセスが必要であることがわかっている場合は、そのインスタンスに SSH で接続してファイルを設定する必要がないように設定できるはずです~/.aws/credentials
。
私の理解それはユーザーそして役割は、認証可能な ID を構成する IAM リソースです。つまり、ユーザー/ロールに認証情報のセットを付与し、それらの認証情報を使用して AWS に対して認証し、自身を識別できます。人間にはユーザー リソースを付与し、ソフトウェアにはロール リソースを付与することが推奨される方法だと思います。つまり、私は独自の AWS IAM ユーザーを持ち、そのユーザーには、AWS にアクセスするために Web コンソールまたは CLI に入力する認証情報があります。また、私のサーバー (AWS にデプロイされる) には、( myapp-server-dev
) などの AWS IAM ロールが付与され、そのロールには、サーバーが認証のために AWS API に提示できる認証情報があります。
私の理解それはグループユーザーやロールを特定の権限セットに割り当てるために使用される、ユーザーやロールの単なるコレクションです。
私の理解それはIAMポリシーこれらは権限セットであり、ユーザー、ロール、グループにポリシーをアタッチ/バインドして、さまざまな AWS サービス/リソースへの権限を付与します。
私の理解それはIAMインスタンスプロファイル何らかの方法で EC2 インスタンスをロールにバインドしますが、ここに私の主な混乱があります。
最後に、それは私の理解それが実現されるようにするため:
- EC2インスタンスを作成します。
- その EC2 インスタンスは、SSH 経由でインスタンスに認証情報ファイルを手動でインストールしなくても、正しい AWS サービス/リソースに自動的にアクセスできます...
...それを実現するためには、次のことが必要です。
- EC2 インスタンスと、同じ認証ニーズを持つ同種のサーバー ソフトウェアを実行するその他のインスタンスのロールを作成します。
- 作成するインスタンスプロファイルこのロールにバインドされているEC2インスタンス
- 添付ポリシー適切なサービス/リソースへのアクセスを許可するロール(またはロールがメンバーであるグループ)
まず、私が上で述べた内容に誤りがあれば、私に軌道修正や説明をお願いします。私の理解が正しいと仮定すると、私の質問は次のとおりです。特定の EC2 インスタンスを IAM インスタンス プロファイルに関連付ける方法と場所、およびそのプロファイルをロールに関連付ける方法と場所を教えてください。
答え1
コンソールを使用している場合、「IAM インスタンス プロファイル」はロールです。
インスタンスを作成するときに、「詳細」セクションで関連付けます。
舞台裏では、AWSがインスタンスプロファイルを作成しています。コマンドラインまたはAPIを使用している場合は、必要に応じて個別に作成できます。https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html詳細については。