Как настроить аутентификацию для boto3
Статья создана
Обновлена 16 августа 2024 г.
Описание сценария
- Необходимо создать облачную функцию, которая будет записывать результат своей работы в AWS-совместимое хранилище данных;
- Необходимо понять, каким образом можно аутентифицироваться и авторизоваться в этих сервисах из кода облачной функции с использованием библиотек
boto3
.
Решение
Для работы с AWS-совместимыми сервисами необходимо использовать статические ключи доступа.
Примечание
К AWS-совместимым сервисам относятся:
В метаданных не хранятся AWS-ключи, только IAM-токен. Поэтому понадобится использовать либо переменные окружения, в которые явно заносить ключ и его секрет, либо предусмотреть интеграцию с Lockbox.
Пример кода настройки boto3
для работы с S3 через переменные окружения
import os, boto3
s3 = boto3.client('s3',
endpoint_url = 'https://storage.yandexcloud.net',
aws_access_key_id = os.environ['AWS_ACCESS_KEY_ID'],
aws_secret_access_key = os.environ['AWS_SECRET_ACCESS_KEY'],
region_name = os.environ['AWS_DEFAULT_REGION']
)
def handler(event, context):
return s3.list_buckets()['Buckets']