Как использовать роль пользователя AWS в ECS для доступа к хранилищу объектов Datafusion S3 вместо явной передачи ключейPython

Программы на Python
Ответить
Anonymous
 Как использовать роль пользователя AWS в ECS для доступа к хранилищу объектов Datafusion S3 вместо явной передачи ключей

Сообщение Anonymous »

В нашей текущей архитектуре микросервис Python, работающий на AWS, считывает файлы S3 Parquet с помощью DataFusion. Аутентификация осуществляется с помощью ключей доступа AWS, передаваемых через переменные среды, как показано ниже.

Код: Выделить всё

def get_s3_datafusion_context(bucket_name: str, table_name: str,
file_key: str) -> SessionContext:
from datafusion.object_store import AmazonS3

s3 = AmazonS3(
bucket_name=bucket_name,
region=settings.AWS_DEFAULT_REGION,
access_key_id=settings.AWS_ACCESS_KEY_ID,
secret_access_key=settings.AWS_SECRET_ACCESS_KEY,
)
ctx = SessionContext()
ctx.register_object_store("s3://", s3, None)
table_path = f"s3://{bucket_name}/{file_key}"
ctx.register_parquet(table_name, table_path)
return ctx
Однако из соображений безопасности нас просят использовать роль службы IAM, прикрепленную к EC2, вместо прямой передачи ключей через переменные среды. Как я могу изменить вышеуказанную функцию для достижения этой цели?

Примечание. Я пробовал удалить access_key_id и secret_access_key из параметров. Но, похоже, для соответствующего параметра ожидается непустое значение


Подробнее здесь: https://stackoverflow.com/questions/798 ... instead-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»