ฉันใช้คำสั่ง "aws ec2 run-instance" (จากAWS Command Line Interface (CLI) ) เพื่อเปิดใช้งานอินสแตนซ์Amazon EC2 ฉันต้องการตั้งค่าบทบาท IAM สำหรับอินสแตนซ์ EC2 ที่ฉันเปิดตัว บทบาท IAM ได้รับการกำหนดค่าและฉันสามารถใช้งานได้สำเร็จเมื่อเปิดตัวอินสแตนซ์จาก AWS web UI แต่เมื่อฉันพยายามทำสิ่งนี้โดยใช้คำสั่งนั้นและตัวเลือก "--iam-instance-profile" มันล้มเหลว การทำ "aws ec2 run-instance help" แสดง Arn = และ Name = ฟิลด์ย่อยสำหรับค่า เมื่อฉันพยายามค้นหา Arn โดยใช้ "aws iam list-instance-profiles" มันให้ข้อความแสดงข้อผิดพลาดนี้:
เกิดข้อผิดพลาดของไคลเอ็นต์ (AccessDenied): ผู้ใช้: arn: aws: sts :: xxxxxxxxxxxx: สันนิษฐานว่ามีบทบาท / เชลล์ / i-15c2766d ไม่ได้รับอนุญาตให้ดำเนินการ: iam: ListInstanceProfiles บนทรัพยากร: arn: aws: iam :: xxxxxxxxxxxx: อินสแตนซ์ -ข้อมูลส่วนตัว/
(โดยที่ xxxxxxxxxxxx คือหมายเลขบัญชี AWS 12 หลักของฉัน)
ฉันค้นหาสตริง Arn ผ่าน UI ของเว็บและใช้มันผ่าน "--iam-instance-profile Arn = arn: aws: iam :: xxxxxxxxxxxx: instance-profile / shell" ในคำสั่ง run-instance และล้มเหลวด้วย :
มีข้อผิดพลาดของไคลเอ็นต์ (UnauthorizedOperation) เกิดขึ้น: คุณไม่ได้รับอนุญาตให้ดำเนินการนี้
หากฉันออกจากตัวเลือก "--iam-instance-profile" ทั้งหมดอินสแตนซ์จะเปิดขึ้น แต่จะไม่มีการตั้งค่าบทบาท IAM ที่ฉันต้องการ ดังนั้นการอนุญาตดูเหมือนจะมีบางอย่างเกี่ยวกับการใช้ "--iam-instance-profile" หรือการเข้าถึงข้อมูล IAM ฉันทำซ้ำหลายครั้งในกรณีที่ AWS บกพร่อง (เกิดขึ้นบางครั้ง) และไม่ประสบความสำเร็จ
ฉันสงสัยว่าอาจมีข้อ จำกัด ว่าอินสแตนซ์ที่มีบทบาท IAM ไม่ได้รับอนุญาตให้เปิดตัวอินสแตนซ์ที่มีบทบาท IAM ที่ทรงพลังกว่า แต่ในกรณีนี้อินสแตนซ์ที่ฉันทำคำสั่งมีบทบาท IAM เดียวกับที่ฉันพยายามใช้ ชื่อ "shell" (แม้ว่าฉันจะลองใช้อีกอันหนึ่งโดยไม่มีโชค)
การตั้งค่าบทบาท IAM ไม่ได้รับอนุญาตจากอินสแตนซ์ (ผ่านข้อมูลรับรองบทบาทของ IAM) หรือไม่
จำเป็นต้องมีการอนุญาตบทบาท IAM ที่สูงขึ้นเพื่อใช้บทบาท IAM มากกว่าที่จำเป็นสำหรับการเปิดตัวอินสแตนซ์ธรรมดาหรือไม่
"--iam-instance-profile" เป็นวิธีที่เหมาะสมในการระบุบทบาทของ IAM หรือไม่
ฉันจำเป็นต้องใช้ชุดย่อยของสตริง Arn หรือจัดรูปแบบด้วยวิธีอื่นหรือไม่?
เป็นไปได้ไหมที่จะตั้งค่าบทบาท IAM ที่สามารถเข้าถึงบทบาท IAM ใด ๆ (อาจเป็น "Super Root IAM" ... สร้างชื่อนี้)
FYI, ทุกอย่างเกี่ยวข้องกับ Linux ที่ทำงานบนอินสแตนซ์ นอกจากนี้ฉันกำลังเรียกใช้ทั้งหมดนี้จากอินสแตนซ์เนื่องจากฉันไม่สามารถติดตั้งเครื่องมือเหล่านี้บนเดสก์ท็อปของฉัน และผมไม่ต้องการที่จะนำข้อมูลประจำตัวของผู้ใช้ในการจัดเก็บ IAM AWS ใด ๆ ที่เป็นคำแนะนำจาก AWS ที่นี่
หลังจากตอบแล้ว:
ฉันไม่ได้กล่าวถึงการอนุญาตการเปิดตัวอินสแตนซ์ของ "PowerUserAccess" (vs. "AdministratorAccess") เพราะฉันไม่ได้ตระหนักถึงการเข้าถึงเพิ่มเติมที่จำเป็นในเวลาที่คำถามถูกถาม ฉันสันนิษฐานว่าบทบาท IAM คือ "ข้อมูล" ที่แนบมากับการเปิดตัว แต่มันเป็นมากกว่านั้นจริงๆ มันเป็นการอนุญาตที่ได้รับอนุญาต