ให้สิทธิ์บัญชี AWS อื่น ๆ สำหรับการเข้าถึง EC2 AMI


0

ฉันมีอิมเมจ Machine Amazon (AMIs) จำนวนหนึ่งซึ่งต้องเก็บเป็นความลับ แต่แชร์กับคู่ค้าและลูกค้าจำนวนมากขึ้นโดยแต่ละบัญชีใช้บัญชี AWS แต่ละบัญชีควรจะสามารถเปิดใช้งานอินสแตนซ์โดยใช้ AMI ของฉัน

AWS สนับสนุนสิ่งนี้เพียงเล็กน้อยโดยให้คุณเพิ่มหมายเลขบัญชี Amazon ลงใน ACL ของ AMI แต่ปรากฏว่าวิธีนี้ จำกัด เพียง 10 บัญชี หากฉันมีลูกค้า 50 รายฉันไม่สามารถแบ่งปัน AMI กับพวกเขาด้วยวิธีนี้

การพิจารณาเชิงตรรกะกำลังใช้นโยบายเพื่อให้สิทธิ์การเข้าถึงนี้ แต่ฉันมีปัญหาในการกำหนดนโยบายดังกล่าว มีนโยบายนโยบายสำหรับให้สิทธิ์การเข้าถึงเงินต้นต่างประเทศ:

"Principal": {"AWS": "accountnumber"}

แต่ตัวตรวจสอบนี้ถูกปฏิเสธเมื่อฉันพยายามเขียนนโยบายที่ให้การเข้าถึง ARN ของ AMI ที่เฉพาะเจาะจง ฉันไม่พบตัวอย่างของสิ่งนี้ที่อื่น ไม่มีใครมีเบาะแสหรือข้อเสนอแนะ? วิธีนี้ใช้ได้ผลหรือไม่

คำตอบ:


0

ปรากฎว่าเราตีความข้อมูลบางอย่างผิดพลาดและไม่มีการ จำกัด จำนวน 10 บัญชี เราไม่พบเอกสารใด ๆ เกี่ยวกับขีด จำกัด แต่อย่างน้อย 5700 ฉันพบสิ่งนี้โดยการแยกรายการรหัสบัญชี 5700 จากรายการภาพสาธารณะในสหรัฐอเมริกาตะวันตกและใช้กับดัมมี่ AMI สำหรับจุดประสงค์ของการทดสอบ รหัสถ้าใครสนใจ:

aws --profile dgc@domain --region us-west-2 ec2 describe-images >images.json

jq -r .Images[].OwnerId <images.json | sort | uniq <images.json >ids.txt

wc -l ids.txt
5705

(
    echo '{"Add":['
    for id in $(cat ids.txt); do
        echo '{"UserId":"'$id'"},'
    done
    echo '{"UserId":"##one-last-id-to-end-the-json-array-with##"}'
    echo ']}'
) >perms.json

aws --profile dgc@domain --region us-west-2 ec2 modify-image-attribute --image-id example-ami-id --launch-permission "$(cat perms.json)"

aws --profile dgc@domain --region us-west-2 ec2 describe-image-attribute --image-id example-ami-id --attribute launchPermission | jq -r '.LaunchPermissions[].UserId' | wc -l
    5706

5706 ใน, 5706 ออก

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