ฉันกำลังพยายามใช้บทบาท IAM สำหรับบัญชีบริการใน EKS
https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html
เมื่อต้องสร้างบทบาท IAM เพื่อกำหนดให้กับบัญชีบริการ ฉันต้องสร้างด้วยนโยบายความน่าเชื่อถือที่อ้างถึงผู้ให้บริการ OIDC ของคลัสเตอร์เฉพาะ
https://docs.aws.amazon.com/eks/latest/userguide/create-service-account-iam-policy-and-role.html
โดยเฉพาะ:
นอกจากนี้ คุณต้องสร้างบทบาท IAM สำหรับบัญชีบริการ Kubernetes เพื่อใช้ก่อนที่จะเชื่อมโยงกับบัญชีบริการ ความสัมพันธ์ที่ไว้วางใจได้รับการกำหนดขอบเขตไปที่บัญชีคลัสเตอร์และบัญชีบริการของคุณ เพื่อให้ชุดค่าผสมของคลัสเตอร์และบัญชีบริการแต่ละรายการต้องมีบทบาทของตนเอง
ส่วนนี้: ความสัมพันธ์ที่ไว้วางใจถูกกำหนดขอบเขตไปที่คลัสเตอร์และบัญชีบริการของคุณ
เป็นข้อ จำกัด จริงๆ
ปัญหาของฉันคือฉันต้องการให้คลัสเตอร์เป็นแบบชั่วคราวและมีอายุสั้น แต่ฉันไม่ต้องการแตะต้องนโยบายความน่าเชื่อถือของบทบาท IAM ของแอปพลิเคชันทั้งหมดที่กำหนดให้กับบัญชีบริการในคลัสเตอร์ทุกครั้งที่ฉันสร้างคลัสเตอร์ใหม่ นอกจากนี้ ฉันต้องการใช้ manifest ของ kubernetes เดียวกัน (สำหรับบัญชีบริการเดียวกัน) ที่เหมือนกันกับคลัสเตอร์มากกว่าหนึ่งคลัสเตอร์ โดยอาจใช้กับคลัสเตอร์ที่ไม่มีอยู่เมื่อเขียนรายการและสร้างบทบาท IAM ของแอปพลิเคชัน
ในช่วงเวลาก่อน eks เมื่อใช้ kube2iam
ฉันแค่สร้างโหนดคลัสเตอร์ที่แชร์โปรไฟล์อินสแตนซ์ และใช้บทบาทของโปรไฟล์อินสแตนซ์ในนโยบายความน่าเชื่อถือของบทบาท IAM ที่กำหนดให้กับพ็อด นั่นทำให้ฉันสามารถเขียนรายการที่จะทำงานกับคลัสเตอร์มากกว่าหนึ่งรายการ
เห็นได้ชัดว่าฉันไม่สามารถแชร์ผู้ให้บริการ OIDC ระหว่างสองคลัสเตอร์ EKS ได้ในลักษณะเดียวกับที่ฉันเคยแชร์บทบาทของโหนด (โปรไฟล์อินสแตนซ์) มาก่อน
ฉันกำลังเข้าหาปัญหาจากจุดสิ้นสุดที่ไม่ถูกต้องหรือไม่? ฉันไม่ต้องการฮาร์ดโค้ดในนโยบายความน่าเชื่อถือของแอปพลิเคชัน IAM มีบทบาทบางอย่าง (ในกรณีนี้คือผู้ให้บริการ OIDC) ซึ่งเป็นคลัสเตอร์เฉพาะ เนื่องจากคลัสเตอร์ไม่ควรเป็นนิรันดร์ฉันต้องการสร้างใหม่ตั้งแต่ต้นโดยไม่ต้องสร้างบทบาทของแอปพลิเคชัน (หรือรายการบัญชีบริการ) ใหม่ที่ฉันอาจเรียกใช้
ฉันจะใช้ kube2iam แต่นั่นใช้ไม่ได้กับโปรไฟล์ fargate ดังนั้นบทบาท IAM สำหรับบัญชีบริการจึงเป็นทางออกเดียวของฉัน