Bingung dengan persyaratan peran ECS

13

Saya mencoba untuk membuat ECS tetapi sejauh ini saya telah menemukan beberapa masalah izin yang telah saya buat beberapa pertanyaan di forum ini.

Saya pikir saya terjebak sejauh ini karena jujur ​​saya tidak bisa mengetahui semua persyaratan peran ini di satu tempat secara singkat.

Sepertinya saya perlu mendefinisikan setidaknya dua peran:

1) Wadah ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

2) Tugas ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html#enable_task_iam_roles

Apakah itu benar?

Apakah saya melewatkan sesuatu? Apakah ada persyaratan IAM khusus?

Anthony Kong
sumber
Tidak jelas apa masalahnya. Bisakah Anda mengedit pertanyaan Anda untuk memasukkan spesifik?
EEAA

Jawaban:

24

Satu-satunya peran yang diperlukan adalah peran IAM Instansi Kontainer . Peran ini memungkinkan agen ECS (menjalankan instance EC2 Anda) untuk berkomunikasi dengan Amazon ECS.

Ada lima peran lain yang mungkin berguna bagi Anda, untuk tujuan yang berbeda:

  • ECS Service-Linked role (SLR) - Peran ini memungkinkan Amazon ECS untuk mengelola berbagai sumber daya AWS yang terkait dengan aplikasi Anda atas nama Anda. Saat menggunakan Layanan , peran ini memungkinkan Amazon ECS untuk mengelola penyeimbang beban (Penyeimbang Beban Klasik, Penyeimbang Beban Aplikasi, dan Penyeimbang Beban Jaringan) dan penemuan layanan (dengan Rute 53 ) yang terkait dengan layanan Anda. Saat menggunakan jaringan tugas , peran ini memungkinkan Amazon ECS untuk melampirkan dan melepaskan Elastic Network Interfaces (ENIs) ke tugas Anda. Peran ini diperlukan saat menggunakan AWS Fargate .
  • Penjadwal Layanan Peran IAM - Sebelum pengenalan ECS Service-Linked role (SLR), peran ini digunakan bersama dengan Layanan untuk memungkinkan Amazon ECS mengelola penyeimbang beban yang terkait dengan layanan Anda. Jika Anda ingin menggunakan Penyeimbang Beban Elastis (apakah Penyeimbang Beban Klasik, Penyeimbang Beban Aplikasi, atau Penyeimbang Beban Jaringan) dengan layanan ECS Anda, Anda dapat menggunakan peran ini. Sekarang setelah ECS SLR tersedia, Anda dapat menggunakan salah satu dari dua peran tersebut, tetapi Anda mungkin masih ingin menggunakan peran ini jika Anda ingin membatasi izin yang diberikan kepada Amazon ECS untuk mencakup sumber daya penyeimbang beban tertentu.
  • Auto I Scaling peran - Peran ini digunakan bersama dengan Layanan dan memungkinkan layanan Penskalaan Otomatis Aplikasi untuk skala penghitungan yang diinginkan dari Layanan Anda masuk atau keluar.
  • Peran Tugas IAM - Peran ini dapat digunakan dengan Tugas apa pun (termasuk Tugas yang diluncurkan oleh Layanan ). Peran ini sangat mirip dengan profil instance EC2 , tetapi memungkinkan Anda untuk mengaitkan izin dengan masing-masing Tugas alih-alih dengan instance EC2 mendasar yang menjadi tuan rumah Tugas tersebut. Jika Anda menjalankan sejumlah aplikasi berbeda di seluruh kluster ECS dengan izin berbeda yang diperlukan, Anda dapat menggunakan peran Tugas IAM untuk memberikan izin khusus untuk setiap Tugas daripada memastikan bahwa setiap instance EC2 di kluster Anda memiliki seperangkat izin gabungan yang aplikasi akan perlu.
  • Peran pelaksanaan tugas - Peran ini diperlukan saat menggunakan AWS Fargate dan menggantikan peran IAM Instance Kontainer , yang tidak tersedia untuk FARGATEjenis peluncuran. Peran ini memungkinkan AWS Fargate untuk menarik gambar kontainer Anda dari Amazon ECR dan untuk meneruskan log Anda ke Amazon CloudWatch Logs . Peran ini juga digunakan (pada jenis peluncuran Fargate dan EC2) untuk mengaktifkan otentikasi registri pribadi dan rahasia dari AWS Secrets Manager dan AWS Systems Manager Parameter Store .
Samuel Karp
sumber
1

Selain penjelasan yang sangat bagus dari @ samuel-karp, hari ini saya mengalami masalah ketika bermigrasi dari ELB klasik ke ALB dalam kombinasi kustom task_role_arnuntuk layanan ECS.

Meskipun saya mengikuti instruksi yang dijelaskan di belakang tautan Task IAM role, Kesalahan itu

Tidak dapat mengambil peran dan memvalidasi targetGroupArn yang ditentukan. Harap verifikasi bahwa peran layanan ECS yang diteruskan memiliki izin yang tepat.

Masalahnya adalah bahwa layanan tampaknya mendaftar sendiri di load balancer. Itu hanya bekerja ketika saya menukar Kepala Sekolah dari ecs.amazonaws.comke

"Principal": { "Service": "ecs-tasks.amazonaws.com" }

mana
sumber