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

#kubernetes #amazon-iam #minikube #amazon-eks

#kubernetes #amazon-iam #minikube #amazon-eks

Вопрос:

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

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

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

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

Ответ №1:

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

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

  

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