Amazon ECS コンテナインスタンスの IAM ロール - Amazon Elastic Container Service

Amazon ECS コンテナインスタンスの IAM ロール

Amazon ECS コンテナインスタンス (Amazon EC2 および外部インスタンスの両方を含む) は、Amazon ECS コンテナエージェントを実行し、エージェントがユーザーに属していることをサービスに知らせる IAM ロールを必要とします。コンテナインスタンスを起動してクラスターに登録する前に、使用するコンテナインスタンス用の IAM ロールを作成します。

重要

クラスターに外部インスタンスを登録する場合、使用する IAM ロールにも Systems Manager アクセス許可が必要です。詳細については、外部インスタンスに必要な IAM アクセス許可 を参照してください。

Amazon ECS は、完全な Amazon ECS 機能セットを使用するために必要なアクセス許可を含む AmazonEC2ContainerServiceforEC2Role 管理 IAM ポリシーを提供します。この管理ポリシーは、IAM ロールにアタッチし、コンテナインスタンスに関連付けることができます。または、使用するカスタムポリシーを作成するときに、管理ポリシーをガイドとして使用することもできます。コンテナインスタンスロールは、Amazon ECS コンテナエージェントと Docker デーモンがユーザーに代わって AWS API を呼び出すために必要なアクセス許可を提供します。マネージドポリシーの詳細については、AmazonEC2ContainerServiceforEC2Role を参照してください。

Amazon ECS コンテナインスタンス IAM ロールの作成

重要

クラスターに外部インスタンスを登録する場合は、外部インスタンスに必要な IAM アクセス許可 を参照してください。

Amazon ECS コンソールの初回実行エクスペリエンスを完了すると、Amazon ECS インスタンスロールが自動的に作成されます。ただし、機能や機能強化が今後導入されたときに Amazon ECS がそれらに対するアクセス許可を追加できるように、手動でロールを作成して、IAM 管理ポリシーをコンテナインスタンスに手動でアタッチできます。次の手順を使用してアカウントに既に Amazon ECS コンテナインスタンスの IAM ロールが存在するか確認し、必要に応じてマネージド IAM ポリシーをアタッチします。

IAM コンソールで ecsInstanceRole を確認するには

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

  2. ナビゲーションペインで [ロール] を選択します。

  3. ロールのリストで ecsInstanceRole を検索します。ロールが存在しない場合は、次のセクションの手順を使用してロールを作成します。ロールが存在する場合は、そのロールを選択して、アタッチされているポリシーを表示します。

  4. [アクセス許可] タブを選択します。

  5. [Permissions policies] (アクセス許可ポリシー) セクションで、AmazonEC2ContainerServiceforEC2Role 管理ポリシー、または同等のカスタムポリシーがロールにアタッチされていることを確認します。ポリシーがアタッチされている場合、コンテナインスタンスのロールが適切に構成されています。そうでない場合、次のサブステップに従ってポリシーをアタッチします。

    重要

    The AmazonEC2ContainerServiceforEC2Role managed policy should be attached to the container instance IAM role, otherwise you will receive an error using the AWS Management Console to create clusters.

    1. [Attach policies (ポリシーをアタッチします)] を選択します。

    2. [Filter policies] (フィルタポリシー) 検索ボックスに、アタッチする利用可能なポリシーを絞り込むために AmazonEC2ContainerServiceforEC2Role と入力します。

    3. AmazonEC2ContainerServiceforEC2Role ポリシーの左側にあるチェックボックスをオンにし、[Attach policy] (ポリシーのアタッチ) を選択します。

  6. [Trust relationships] タブと、[Edit trust relationship] を選択します。

  7. 信頼関係に以下のポリシーが含まれていることを確認します。信頼関係が以下のポリシーと一致する場合、[Cancel] を選択します。信頼関係が一致しない場合、ポリシーを [Policy Document] ウィンドウにコピーし、[Update Trust Policy] を選択します。

    { "Version": "2008-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

コンテナインスタンスの ecsInstanceRole IAM ロールを作成するには

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

  2. ナビゲーションペインで [Roles] を選択した後、[Create role] を選択します。

  3. [AWS service] (AWS のサービス) ロールタイプを選択し、続いて [Elastic Container Service] を選択します。

  4. [EC2 Role for Elastic Container Service (Elastic コンテナサービス用 EC2 ロール)] ユースケースを選択してから、[Next: Permissions (次の手順: アクセス許可)] を選択します。

  5. [Attached permissions policies] (アタッチされたアクセス許可ポリシー) セクションで、AmazonEC2ContainerServiceforEC2Role ポリシーが選択されていることを確認し、[Next:Tags] (次へ: タグ) を選択します。

    重要

    The AmazonEC2ContainerServiceforEC2Role managed policy should be attached to the container instance IAM role, otherwise you will receive an error using the AWS Management Console to create clusters.

  6. [Add tags (optional)] (タグを追加 (オプション)) で、ポリシーに関連付けるカスタムタグを指定し、[Next: Review] (次へ: 確認) を選択します。

  7. [Role name] に、ecsInstanceRole と入力します。必要に応じて説明を入力することもできます。

  8. ロール情報を確認し、[Create role] を選択して終了します。

Amazon S3 の読み取り専用アクセスをコンテナインスタンスの IAM ロールに追加する

設定情報を Amazon S3 のプライベートバケットに保存し、コンテナインスタンスの IAM ロールに読み取り専用アクセス権限を付与するのが、コンテナインスタンスの起動時に設定を許可する安全で便利な方法です。ecs.config ファイルのコピーをプライベートバケットに保存し、Amazon EC2 ユーザーデータを使用して AWS CLI をインストールします。その後、インスタンスの起動時に設定情報を /etc/ecs/ecs.config にコピーします。

ecs.config ファイルの作成と Amazon S3 への保存、およびこの構成を使用したインスタンスの起動の詳細については、Amazon S3 にコンテナインスタンスの構成を保存する を参照してください。

Amazon S3 の読み取り専用アクセス権限をコンテナインスタンスのロールに許可するには

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

  2. ナビゲーションペインで [Roles (ロール) ] を選択します。

  3. コンテナインスタンスに対して使用する IAM ロールを選択します (このロールには多くの場合、ecsInstanceRole というタイトルが付けられます)。詳細については、「Amazon ECS コンテナインスタンスの IAM ロール」を参照してください。

  4. [Permissions] タブで [Attach policy] を選択します。

  5. [Attach policy] ページで、ポリシーの結果を絞り込むために [Filter: Policy type] フィールドに S3 と入力します。

  6. [AmazonS3ReadOnlyAccess] ポリシーの左側にあるチェックボックスをオンにし、[Attach policy] をクリックします。

    注記

    このポリシーは、すべての Amazon S3 リソースへの読み取り専用アクセスを許可します。制限の厳しいバケットポリシーの他の例については、Amazon Simple Storage Service 開発者ガイド の「バケットポリシーの例」を参照してください。