Как создать временные учетные данные безопасности в 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")
создать учетные данные для доступа:
- Войдите в консоль управления идентификацией и доступом (IAM) по адресу https://console.aws.amazon.com/iam/.
- На панели навигации выберите Пользователи.
- Выберите имя нужного пользователя, а затем перейдите на вкладку "Учетные данные безопасности".
При необходимости раскройте раздел "Ключи доступа" и выполните любое из следующих действий:
Выберите "Создать ключ доступа", а затем "Загрузить учетные данные", чтобы сохранить идентификатор ключа доступа и секретный ключ доступа в файле 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)
Надеюсь, это кому-нибудь поможет.