Не авторизован для изображений: ошибка boto3

Я пытаюсь запустить этот скрипт:

from __future__ import print_function

import paramiko
import boto3


#print('Loading function')

paramiko.util.log_to_file("/tmp/Dawny.log")

# List of EC2 variables
region = 'us-east-1'
image = 'ami-<>'
keyname = '<>.pem'

ec2 = boto3.resource('ec2')


instances = ec2.create_instances(
    ImageId=image, MinCount=1, MaxCount=1, 
    InstanceType = 't2.micro', KeyName=keyname)

instance = instances[0]
instance.wait_until_running()

instance.load()

print(instance.public_dns_name)

Я запускаю этот сценарий на сервере, на котором выполнены все настройки aws (в aws configure)

И когда я запускаю его, я получаю эту ошибку:

botocore.exceptions.ClientError: Произошла ошибка (AuthFailure) при вызове операции RunInstances: не авторизовано для изображений: [ami-<>]

Есть причина почему? И как мне это решить?

[Изображение является частным. Но, поскольку я настроил boto на сервере, технически это не должно быть проблемой, верно?]

1 ответ

Есть несколько ответов на эту ошибку

  1. Недостаточно параметра, но create_instance выдает другую ошибку. например, идентификатор VPC, идентификатор подсети, группа безопасности отсутствуют.

  2. Ваш ключ доступа к API в учетных данных не имеет права инициировать запуск экземпляра. Перейдите в IAM и проверьте, назначены ли вашему пользователю адекватные роли для выполнения задачи.

Вы можете столкнуться с этой ошибкой, если попытаетесь использовать имя файла пары ключей вместо фактического имени в Консоль AWS> EC2 > Key Pairs.

aws ec2 run-instances --image-id ami-123457916 --instance-type t3.nano 
--key-name **my_ec2_keypair.pem**

Должно быть имя KeyPair, а не имя файла KeyPair.

Другие вопросы по тегам