В процессе разработки я запускаю кластер k8s на своей машине разработки внутри Minikube, запуская несколько сервисов.
Сервисы должны получать доступ к ресурсам AWS, таким как корзина S3. Для этого модули должны каким-то образом получить учетные данные AWS.
Какие есть варианты аутентификации модулей с помощью пользователя AWS? я должен передать aws_access_key_id и aws_secret_access_key в оболочке докера?
Как это будет работать на производстве (внутри k8s на EKS)? передается ли роль узла в стручки?
Хороший способ пройти локальную аутентификацию — создать Kubernetes Secret
, содержащий учетные данные AWS. Затем вы можете ссылаться на секрет в переменных среды развертывания вашей службы, например:
name: AWS_ACCESS_KEY
valueFrom:
secretKeyRef:
name: my-aws-secret
key: access-key
В EKS все модули могут получить доступ к роли из узла. Это, конечно, не идеально для производственной ситуации, поскольку, скорее всего, вам нужен более ограниченный набор разрешений для определенного модуля. Вы можете проверить kube2iam как проект, который можно использовать для ограничения возможностей AWS одного модуля.