Кластер k8s, работающий локально на Minkube, должен иметь учетные данные AWS для доступа к ресурсам на AWS

В процессе разработки я запускаю кластер k8s на своей машине разработки внутри Minikube, запуская несколько сервисов.

Сервисы должны получать доступ к ресурсам AWS, таким как корзина S3. Для этого модули должны каким-то образом получить учетные данные AWS.

Какие есть варианты аутентификации модулей с помощью пользователя AWS? я должен передать aws_access_key_id и aws_secret_access_key в оболочке докера?

Как это будет работать на производстве (внутри k8s на EKS)? передается ли роль узла в стручки?

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
1
0
1 742
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хороший способ пройти локальную аутентификацию — создать Kubernetes Secret, содержащий учетные данные AWS. Затем вы можете ссылаться на секрет в переменных среды развертывания вашей службы, например:

name: AWS_ACCESS_KEY
valueFrom:
  secretKeyRef:
    name: my-aws-secret
    key: access-key    

В EKS все модули могут получить доступ к роли из узла. Это, конечно, не идеально для производственной ситуации, поскольку, скорее всего, вам нужен более ограниченный набор разрешений для определенного модуля. Вы можете проверить kube2iam как проект, который можно использовать для ограничения возможностей AWS одного модуля.

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