สับสนกับความต้องการบทบาทของ ECS


14

ฉันกำลังพยายามตั้งค่า ECS แต่จนถึงตอนนี้ฉันได้พบปัญหาการอนุญาตบางประการซึ่งฉันได้สร้างคำถามในฟอรัมนี้แล้ว

ฉันคิดว่าฉันยังติดขัดอยู่เพราะความจริงแล้วฉันไม่สามารถหาข้อกำหนดของบทบาทเหล่านี้ทั้งหมดได้ในที่เดียว

ดูเหมือนว่าฉันต้องกำหนดอย่างน้อยสองบทบาท:

1) คอนเทนเนอร์ ECS http://docs.aws.amazon.com/AmazonECS/latest/developerguide/instance_IAM_role.html

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

ถูกต้องหรือไม่

ฉันพลาดอะไรไปหรือเปล่า? มีข้อกำหนดพิเศษของ IAM หรือไม่?


มันไม่ชัดเจนว่าปัญหาคืออะไร คุณสามารถแก้ไขคำถามของคุณเพื่อรวมเฉพาะ?
EEAA

คำตอบ:


25

บทบาทที่จำเป็นเท่านั้นคือบทบาทคอนเทนเนอร์อินสแตนซ์ IAM บทบาทนี้อนุญาตให้ตัวแทน ECS (ทำงานบนอินสแตนซ์ EC2 ของคุณ) เพื่อสื่อสารกับ Amazon ECS

มีห้าบทบาทอื่น ๆ ที่คุณอาจพบว่ามีประโยชน์สำหรับวัตถุประสงค์ที่แตกต่างกัน:

  • บทบาทที่เชื่อมโยงกับบริการ ECS (SLR) - บทบาทนี้ทำให้ Amazon ECS สามารถจัดการทรัพยากร AWS ที่หลากหลายที่เกี่ยวข้องกับแอปพลิเคชันของคุณในนามของคุณ เมื่อใช้บริการบทบาทนี้จะช่วยให้ Amazon ECS สามารถจัดการโหลดบาลานเซอร์ (โหลดบาลานซ์แบบคลาสสิกโหลดแอพพลิเคชั่นโหลดบาลานเซอร์และโหลดเน็ตเวิร์คโหลดบาลานซ์) และการค้นหาบริการ (พร้อมเส้นทาง 53 ) ที่เชื่อมโยงกับบริการของคุณ เมื่อใช้เครือข่ายงานบทบาทนี้จะช่วยให้ Amazon ECS สามารถแนบและแยกElastic Network Interfaces (ENIs)กับงานของคุณ บทบาทนี้เป็นสิ่งจำเป็นเมื่อใช้AWS Fargate
  • บทบาท IAM ของตัวจัดกำหนดการบริการ - ก่อนที่จะมีการแนะนำบทบาทที่เชื่อมโยงกับบริการ (SLR) บทบาทนี้ถูกใช้ร่วมกับบริการเพื่อให้ Amazon ECS สามารถจัดการโหลดบาลานซ์ที่เกี่ยวข้องกับบริการของคุณ หากคุณต้องการใช้ Elastic Load Balancer (ไม่ว่าจะเป็น Classic Load Balancer, Application Load Balancer หรือ Network Load Balancer) กับบริการ ECS ของคุณคุณสามารถใช้บทบาทนี้ เมื่อถึงตอนนี้ ECS SLR มีให้ใช้งานแล้วคุณสามารถใช้หนึ่งในสองบทบาทนี้ แต่คุณอาจต้องการใช้บทบาทนี้หากคุณต้องการ จำกัด การอนุญาตที่ Amazon ECS ให้สิทธิ์เพื่อครอบคลุมทรัพยากร load balancer ที่เฉพาะเจาะจง
  • บทบาทการปรับขนาดอัตโนมัติ IAM - บทบาทนี้ใช้ร่วมกับบริการและช่วยให้บริการการปรับขนาดอัตโนมัติของแอปพลิเคชันสามารถขยายจำนวนบริการที่คุณต้องการเข้าหรือออก
  • บทบาทงาน IAM - บทบาทนี้สามารถใช้กับงานใด ๆ(รวมถึงงานที่เปิดตัวโดยบริการ ) บทบาทนี้คล้ายกับโปรไฟล์อินสแตนซ์ของ EC2มาก แต่อนุญาตให้คุณเชื่อมโยงการอนุญาตกับแต่ละงานแทนที่จะเป็นอินสแตนซ์ EC2 พื้นฐานที่โฮสต์งานเหล่านั้น หากคุณใช้งานแอปพลิเคชั่นที่แตกต่างกันจำนวนมากในคลัสเตอร์ ECS ของคุณด้วยการอนุญาตที่แตกต่างกันคุณสามารถใช้บทบาทภารกิจ IAM เพื่อให้สิทธิ์เฉพาะกับงานแต่ละงานแทนที่จะให้แน่ใจว่าทุกอินสแตนซ์ EC2 ในคลัสเตอร์ของคุณ แอปพลิเคชันจะต้อง
  • บทบาทการดำเนินงาน - บทบาทนี้จำเป็นเมื่อใช้AWS Fargateและแทนที่บทบาท Container Instance IAMซึ่งไม่พร้อมใช้งานสำหรับFARGATEชนิดการเรียกใช้ บทบาทนี้จะช่วยให้ AWS Fargate ที่จะดึงภาพภาชนะของคุณจากAmazon ECRและส่งบันทึกของคุณเพื่อAmazon CloudWatch บันทึก บทบาทนี้จะใช้ (ทั้ง Fargate และประเภทการเปิดตัว EC2) เพื่อช่วยให้การตรวจสอบรีจิสทรีส่วนตัวและความลับจาก AWS ผู้จัดการลับและ AWS ระบบ Manager พารามิเตอร์ร้าน

1

นอกเหนือจากคำอธิบายที่ดีมากของ @ samuel-karp แล้ววันนี้ฉันพบปัญหาเมื่อย้ายจาก ELB แบบคลาสสิคไปยัง ALB ด้วยการรวมกันของtask_role_arnบริการ ECS แบบกำหนดเอง

แม้ว่าฉันจะทำตามคำแนะนำที่อธิบายไว้ด้านหลังลิงก์Task IAM roleข้อผิดพลาดคือ

ไม่สามารถสมมติบทบาทและตรวจสอบ targetGroupArn ที่ระบุได้ โปรดตรวจสอบว่าบทบาทบริการ ECS ที่ถูกส่งผ่านนั้นมีสิทธิ์ที่เหมาะสม

สิ่งหนึ่งคือบริการดูเหมือนว่าจะลงทะเบียนตัวเองที่ load balancer จะทำงานได้ก็ต่อเมื่อฉันแลกเปลี่ยนอาจารย์ใหญ่จากecs.amazonaws.comเป็น

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.