Amazon EC2 インスタンスで実行中のアプリケーション用の IAM ロール
Amazon EC2 インスタンスで実行されるアプリケーションには、他の AWS のサービス にアクセスするための認証情報が必要です。これらの認証情報を安全な方法で提供するには、IAM ロールを使用します。このロールは、アプリケーションが他の AWS リソースにアクセスするときに使用できる一時的なアクセス許可を付与します。アプリケーションに許可される操作は、ロールのアクセス許可で決定されます。
Auto Scaling グループ内のインスタンス用に、起動テンプレートまたは起動設定を作成し、インスタンスに関連付けるインスタンスプロファイルを選択する必要があります。インスタンスプロファイルは IAM ロールのコンテナであり、インスタンスの起動時に Amazon EC2 インスタンスに IAM ロール情報を渡すために使用できます。まず、AWS リソースにアクセスするために必要なアクセス許可のすべてを持つ IAM ロールを作成します。次に、インスタンスプロファイルを作成し、そのプロファイルにロールを割り当てます。
注記
ベストプラクティスとして、ロールを作成する場合、そのアクセス許可は、アプリケーションが AWS のサービス にアクセスするために必要な最低限のレベルにすることを強くお勧めします。
前提条件
Amazon EC2 で実行されているアプリケーションが引き受けることができる IAM ロールを作成します。結果としてロールを引き受けたアプリケーションが必要な特定の API 呼び出しを実行できるように、適切なアクセス許可を選択します。
AWS CLI または AWS SDK の代わりに IAM コンソールを使用すると、コンソールによってインスタンスプロファイルが自動的に作成され、対応するロールと同じ名前が付けられます。
IAM ロールを作成するには(コンソール)
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 -
左側のナビゲーションペインで、[Roles] を選択します。
-
[ロールの作成] を選択してください。
-
[Select trusted entity] (信頼されたエンティティの選択) で、[AWS のサービス] を選択します。
-
ユースケースに [EC2] を選択してから、[Next] (次へ) を選択します。
-
可能な場合は、アクセス許可ポリシーとして使用するポリシーを選択するか、[ポリシーの作成] を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。サービスに割り当てるアクセス許可ポリシーの横のチェックボックスをオンにします。
-
(オプション) アクセス許可の境界を設定します。これは、サービスロールに利用できる高度な機能です。詳細については、「IAM ユーザーガイド」の「IAM エンティティのアクセス許可境界」を参照してください。
-
[次へ] を選択します。
-
[Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、このロールの目的を識別するために役立つロール名を入力します。この名前は AWS アカウント内で一意である必要があります。他の AWS リソースがロールを参照している場合があるため、作成後はロールの名前を編集できません。
-
ロールを確認したら、[ロールを作成] を選択します。
IAM 許可
IAM アイデンティティーベースのポリシーを使用し、新しい IAM ロールへのアクセスを制御します。iam:PassRole 許可は、インスタンスプロファイルを指定する起動テンプレートを使用して Auto Scaling グループを作成または更新する IAM ID (ユーザーまたはロール) で必要です。
次のポリシーの例では、名前が で始まる IAM ロールのみを渡す許可を付与します。qateam-
重要
起動テンプレートを使用する Auto Scaling グループの iam:PassRole アクションの許可を Amazon EC2 Auto Scaling が検証する方法については、「ec2:RunInstances と iam:PassRole の許可の検証」を参照してください。
起動テンプレートの作成
AWS マネジメントコンソール を使用して起動テンプレートを作成するときは、[高度な詳細] セクションで、[IAM インスタンスプロファイル] からロールを選択します。詳細については、「詳細設定を使用して起動テンプレートを作成する」を参照してください。
AWS CLI からcreate-launch-template
aws ec2 create-launch-template --launch-template-namemy-lt-with-instance-profile--version-descriptionversion1\ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro","IamInstanceProfile":{"Name":"my-instance-profile"}}'
関連情報
Amazon EC2 の IAM ロールについて学習し、使用する方法の詳細については、「」を参照してください。
-
「Amazon EC2 ユーザーガイド」の「Amazon EC2 の IAM ロール」
-
IAM ユーザーガイドのインスタンスプロファイルの使用およびIAM ロールを使用して、Amazon EC2 インスタンスで実行されるアプリケーションにアクセス許可を付与する