EC2 AMI erişimi için diğer AWS hesaplarına izin verin


0

Özel tutulması gereken, ancak her biri farklı bir AWS hesabı kullanan, artan sayıda ortak ve müşteri ile paylaşılan bir takım Amazon Makine Görüntüleri (AMI) var. Her hesap AMI'mi kullanarak örnekler başlatabilir.

AWS, AMI’nin ACL’sine Amazon hesap numaraları eklemenize izin vererek bunu önemsizce destekliyor, ancak bu yaklaşımın 10 hesapla sınırlı olduğu görülüyor. 50 müşterim varsa, AMI'yi bu yollarla onlarla paylaşamam.

Mantıksal değerlendirme bu erişimi sağlamak için bir politika kullanmak, ancak böyle bir politikayı formüle etmekte zorlanıyorum. Yabancı bir müdüre erişim vermek için bir politika özelliği vardır:

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

ancak belirli bir AMI'nin ARN'sine erişim sağlayan bir politika yazmaya çalıştığımda, validator tarafından bu reddedilir. Bunun başka hiçbir yerinde bulamıyorum. Herhangi bir ipucu ya da öneriniz var mı? Bu yaklaşım bile işe yarıyor mu?

Yanıtlar:


0

Bazı verileri yanlış yorumladığımız ve 10 hesap limiti olmadığı ortaya çıktı. Limitin ne olduğuna dair herhangi bir belge bulamadık, ancak en az 5700'dür. Bunu, batıdaki kamuya ait görüntüler listesinden 5700 hesap kimliği listesini çıkartarak ve bunları yaptığım sahte bir AMI'ye uygulayarak buldum. Testin amacı için. İlgilenen varsa kodunu yazınız:

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 giriş, 5706 çıkış.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.