Как создать временные учетные данные безопасности в AWS

Я пытаюсь использовать Apache Libcloud (Интернет) и чтение Документации о том, как использовать его с Amazon EC2, я застрял на шаг в начале.

На этом шаге:

from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver

cls = get_driver(Provider.EC2)
driver = cls('temporary access key', 'temporary secret key',
             token='temporary session token', region="us-west-1")

Вам нужно передать данные временного доступа и попросить вас прочитать документацию Amazon, но я также прочитал документацию, и мне не очень понятно, что мне нужно сделать, чтобы получить свои временные учетные данные.

В документе сказано, что вы можете взаимодействовать с AWS STS API подключиться к конечной точке, но я не понимаю, как вы получаете учетные данные. Более того, на примере Libcloud Web они используют личные учетные данные:

ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'

Так что я немного растерялся. Как я могу получить свои временные учетные данные для использования в моем коде?

Спасибо и всего наилучшего.

1 ответ

Решение

Если этот код не запускается на экземпляре EC2, я предлагаю вам использовать статические учетные данные:

ACCESS_ID = 'your access id'
SECRET_KEY = 'your secret key'

cls = get_driver(Provider.EC2)
driver = cls(ACCESS_ID, SECRET_KEY, region="us-west-1")

создать учетные данные для доступа:

  1. Войдите в консоль управления идентификацией и доступом (IAM) по адресу https://console.aws.amazon.com/iam/.
  2. На панели навигации выберите Пользователи.
  3. Выберите имя нужного пользователя, а затем перейдите на вкладку "Учетные данные безопасности".

При необходимости раскройте раздел "Ключи доступа" и выполните любое из следующих действий:

Выберите "Создать ключ доступа", а затем "Загрузить учетные данные", чтобы сохранить идентификатор ключа доступа и секретный ключ доступа в файле CSV на вашем компьютере. Храните файл в безопасном месте. После закрытия этого диалогового окна у вас больше не будет доступа к секретному ключу доступа. После загрузки файла CSV выберите "Закрыть".

если вы хотите запустить свой код с компьютера EC2, вы можете получить временные учетные данные, взяв на себя роль IAM, используя AWS SDK для Python https://boto3.readthedocs.io/en/latest/guide/quickstart.html, вызвав accept_role() в службе STS https://boto3.readthedocs.io/en/latest/reference/services/sts.html

@Aker666 из того, что я нашел в Интернете, вы все равно должны использовать обычный API AWS для получения этой информации.

Основной фрагмент, который мне подходит:

import boto3
from libcloud.compute.types import Provider
from libcloud.compute.providers import get_driver


boto3.setup_default_session(aws_access_key_id='somekey',aws_secret_access_key='somesecret',region_name="eu-west-1")
sts_client = boto3.client('sts')
assumed_role_object = sts_client.assume_role(
                    RoleArn="arn:aws:iam::701********:role/iTerm_RO_from_TGT",
                    RoleSessionName='update-cloud-hosts.aviadraviv@Aviads-MacBook-Pro.local'
)


cls = get_driver(Provider.EC2)
driver = cls(assumed_role_object['Credentials']['AccessKeyId'], assumed_role_object['Credentials']['SecretAccessKey'],
             token=assumed_role_object['Credentials']['SessionToken'], region="eu-west-1")


nodes = driver.list_nodes()
print(nodes)

Надеюсь, это кому-нибудь поможет.

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