Acontece que interpretamos erroneamente alguns dados e não há um limite de 10 contas. Não encontramos nenhuma documentação sobre o limite, mas são pelo menos 5700. Achei isso extraindo uma lista de 5700 IDs de conta da lista de imagens públicas em us-west e aplicando-as a uma AMI fictícia que fiz para o propósito do teste. Código se alguém estiver interessado:
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 em, 5706 fora.