Amazon Elastic Container Service (Amazon ECS) タスクに、Amazon Elastic Container Registry (Amazon ECR) イメージリポジトリからイメージを取得させたいと考えています。
簡単な説明
起動タイプで Amazon ECR イメージリポジトリにアクセスするには、次のいずれかのオプションを選択してください。
- Amazon Elastic Compute Cloud (Amazon EC2) の起動タイプ: ecsTaskExecutionRole またはコンテナインスタンスに関連付けられているインスタンスプロファイルにアクセス許可を与えます。ecsTaskExecutionRole に Amazon ECR のアクセス許可を与えることがベストプラクティスです。アクセス許可がインスタンスとロールの両方に提供されている場合、ecsTaskExecutionRole が優先されます。
- AWS Fargate 起動タイプの場合 Amazon ECS タスク実行ロールに Amazon ECR イメージリポジトリにアクセスするためのアクセス許可を付与します。
解決策
EC2 起動タイプ
EC2 起動タイプの Amazon ECR イメージリポジトリにアクセスするには、次の手順を実行します。
- AWS Identity and Access Management (IAM) コンソールを開きます。
- ナビゲーションペインで [ロール]、[ロールを作成] の順に選択します。
- [AWS サービス] ロールタイプを選択します。
- [ユースケース] セクションで、[EC2] を選択します。次に、[次へ] を選択します。
- デフォルトの AmazonEC2ContainerServiceforEC2Role 管理ポリシーを選択し、[次へ] を選択します。
注:AmazonEC2ContainerServiceforEC2Role ポリシー を使用すると、ECS クラスターにコンテナインスタンスを登録し、Amazon CloudWatch でログストリームを有効にすることもできます。
- (オプション) ポリシーにタグを追加し、**[次へ] **を選択します。
- [ロール名] に一意の名前 (ECSRoleforEC2 など) を入力し、[ロールを作成] を選択します。
- Amazon ECS に最適化された最新の Amazon Linux Amazon マシンイメージ (AMI) を使用して、新しいコンテナインスタンスを起動します。
- ロールを新しいコンテナインスタンスにアタッチします。
- タスク定義を作成します。
**重要:**タスク定義の Container セクションで、Image URI として ECR イメージ aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag を指定します。
- タスク定義を使用してタスクまたはサービスを実行します。
- (オプション) インスタンスプロファイルにアクセス許可を与えたくない場合は、ECS Task Execution Role にアクセス許可を付与します。次に、タスク定義に ecsTaskExecutionRole を指定し、このタスク定義を使用してタスクまたはサービスを実行します。
Fargate 起動タイプ
Amazon ECS タスク実行ロールは、Amazon ECS コンソールの初回実行時に自動的に作成されます。ロールが見つからない場合、またはロールが削除された場合は、次の手順を実行してください。
- IAM コンソールを開きます。
- ナビゲーションペインで [ロール]、[ロールを作成] の順に選択します。
- [信頼できるエンティティの種類の選択] セクションで、[Elastic Container Service] を選択します。
- [ユースケースの選択] では、[Elastic Container Service タスク] を選択してから [次へ] を選択します。
- [アクセス権限ポリシーをアタッチ] セクションで、「AmazonECSTaskExecutionRolePolicy」を検索します。ポリシーを選択し、[次へ] を選択します。
**注:**このポリシーでは、awslogs ログドライバー を使用するための許可も付与されます。
- [ロール名] に ecsTaskExecutionRole と入力し、[ロールを作成] を選択します。
- タスク定義を作成します。
**重要:**タスク定義の Container セクションで、Image URI として ECR イメージ aws_account_id.dkr.ecr.region.amazonaws.com/repository:tag を指定します。また、作成した IAM ロールも指定してください。
- タスク定義を使用してタスクまたはサービスを実行します。
関連情報
Amazon ECS の Amazon ECR イメージを使用する