Amazon EC2 インスタンスで実行中のアプリケーション用の IAM ロール - Amazon EC2 Auto Scaling

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon EC2 インスタンスで実行中のアプリケーション用の IAM ロール

Amazon EC2 インスタンスで実行されるアプリケーションには、他の AWS のサービスにアクセスするための認証情報が必要です。これらの認証情報を安全な方法で提供するには、IAM ロールを使用します。このロールは、アプリケーションが他の AWS リソースにアクセスするときに使用できる一時的なアクセス許可を付与します。アプリケーションに許可される操作は、ロールのアクセス許可で決定されます。

Auto Scaling グループ内のインスタンス用に、起動テンプレートまたは起動設定を作成し、インスタンスに関連付けるインスタンスプロファイルを選択する必要があります。インスタンスプロファイルは IAM ロールのコンテナであり、インスタンスの起動時に Amazon EC2 インスタンスに IAM ロール情報を渡すために使用できます。まず、 AWS リソースへのアクセスに必要なすべてのアクセス許可を持つ IAM ロールを作成します。次に、インスタンスプロファイルを作成し、そのプロファイルにロールを割り当てます。

注記

ベストプラクティスとして、アプリケーション AWS のサービス が必要とする他の に対する最小限のアクセス許可を持つように、ロールを作成することを強くお勧めします。

前提条件

Amazon EC2 で実行されているアプリケーションが引き受けることができる IAM ロールを作成します。結果としてロールを引き受けたアプリケーションが必要な特定の API 呼び出しを実行できるように、適切なアクセス許可を選択します。

AWS CLI または AWS SDKsコンソールを使用する場合、コンソールは自動的にインスタンスプロファイルを作成し、対応するロールと同じ名前を付けます。

IAM ロールを作成するには(コンソール)
  1. IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. 左側のナビゲーションペインで、[Roles] を選択します。

  3. [ロールの作成] を選択します。

  4. [Select trusted entity] (信頼されたエンティティの選択) で、[AWS のサービス] を選択します。

  5. ユースケースに [EC2] を選択してから、[Next] (次へ) を選択します。

  6. 可能な場合は、アクセス許可ポリシーとして使用するポリシーを選択するか、[ポリシーの作成] を選択して新しいブラウザタブを開き、新しいポリシーをゼロから作成します。詳細については、『IAM ユーザーガイド』の「IAM ポリシーの作成」を参照してください。ポリシーを作成したら、そのタブを閉じて元のタブに戻ります。サービスに割り当てるアクセス許可ポリシーの横のチェックボックスをオンにします。

  7. (オプション) アクセス許可の境界を設定します。これは、サービスロールに利用できる高度な機能です。詳細については、「IAM ユーザーガイド」の「IAM エンティティのアクセス許可境界」を参照してください。

  8. [次へ] をクリックします。

  9. [Name, review, and create] (名前、確認、および作成) ページの [Role name] (ロール名) に、このロールの目的を識別するために役立つロール名を入力します。この名前は AWS アカウント内で一意である必要があります。他の AWS リソースはロールを参照する可能性があるため、ロールの作成後にロールの名前を編集することはできません。

  10. ロールを確認したら、[Create role] (ロールを作成) を選択します。

IAM アクセス許可

IAM アイデンティティーベースのポリシーを使用し、新しい IAM ロールへのアクセスを制御します。iam:PassRole 許可は、インスタンスプロファイルを指定する起動テンプレートを使用して Auto Scaling グループを作成または更新する IAM ID (ユーザーまたはロール) で必要です。

次のポリシーの例では、名前が qateam- で始まる IAM ロールのみを渡す許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::account-id:role/qateam-*", "Condition": { "StringEquals": { "iam:PassedToService": [ "ec2.amazonaws.com", "ec2.amazonaws.com.cn" ] } } } ] }
重要

起動テンプレートを使用する Auto Scaling グループの iam:PassRole アクションの許可を Amazon EC2 Auto Scaling が検証する方法については、「ec2:RunInstances と iam:PassRole の許可の検証」を参照してください。

起動テンプレートの作成

を使用して起動テンプレートを作成する場合 AWS Management Console、詳細セクションで、IAM インスタンスプロファイル からロールを選択します。詳細については、「詳細設定を使用して起動テンプレートを作成する」を参照してください。

create-launch-template コマンドを使用して起動テンプレートを作成するときは AWS CLI、次の例に示すように、IAM ロールのインスタンスプロファイル名を指定します。

aws ec2 create-launch-template --launch-template-name my-lt-with-instance-profile --version-description version1 \ --launch-template-data '{"ImageId":"ami-04d5cc9b88example","InstanceType":"t2.micro","IamInstanceProfile":{"Name":"my-instance-profile"}}'

以下も参照してください。

Amazon EC2 の IAM ロールについて学習し、使用する方法の詳細については、「」を参照してください。