Есть ли способ остановить использование aws-iam-authenticator секретных ключей из среды? - PullRequest
0 голосов
/ 11 мая 2019

Проблема У моего env есть несколько ключей AWS, и все же я хочу, чтобы мой kubectl, который использует aws-iam-authenticator для аутентификации в EKS, использовал роль, связанную с экземпляром ec2. Я попытался использовать приведенный ниже фрагмент в .kube / config, однако aws-iam-authenticator по-прежнему предоставляет больше переменных env.

- name: eks
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: aws-iam-authenticator
      args:
      - token
      - -i
      - eks-build-systems
      env:
      - name: AWS_PROFILE
        value: ec2-role

Здесь ec2-роль определена в файле .aws / config и указывает на роль ec2, связанную с экземпляром.

Есть идеи, если есть способ избежать такого поведения без необходимости сбрасывать переменные env?

1 Ответ

0 голосов
/ 13 мая 2019

В соответствии с документацией, пожалуйста, " Используйте команду AWS CLI update-kubeconfig для создания или обновления kubeconfig для вашего кластера ". Вы можете найти дополнительную информацию здесь и здесь .

После создания нового kubeconfig:

Добавьте этот путь к файлу в переменную среды KUBECONFIG, чтобы kubectl знал, где искать конфигурацию вашего кластера .

Временно как в примере export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel или навсегда echo 'export KUBECONFIG=$KUBECONFIG:~/.kube/config-devel' >> ~/.bashrc

Согласно документации здесь :

При инициализации нового клиента службы без предоставления аргументов учетных данных SDK использует цепочку поставщиков учетных данных по умолчанию для поиска учетных данных AWS. SDK использует первый поставщик в цепочке, который возвращает учетные данные без ошибок. Цепочка поставщиков по умолчанию ищет учетные данные в следующем порядке:

  1. Переменные среды.
  2. Общий файл учетных данных.
  3. Если ваше приложение выполняется на экземпляре Amazon EC2, роль IAM для Amazon EC2.

По умолчанию SDK проверяет переменную среды AWS_PROFILE, чтобы определить, какой профиль использовать. Если не задана переменная AWS_PROFILE , SDK использует профиль по умолчанию .

С другой стороны, вы можете создать столько профилей, сколько захотите aws/credentials. Вы можете найти больше информации здесь :

Этот метод позволяет неявно использовать соответствующий профиль. Обратите внимание, что любые переменные среды, установленные как часть потока exec, будут иметь приоритет над тем, что уже установлено в вашей среде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...