【问题标题】:aws-iam-authenticator & EKSaws-iam-authenticator & EKS
【发布时间】:2020-04-03 03:09:39
【问题描述】:

我已经使用适当的 configMap 部署了一个测试 EKS 集群,并且 SSO 的用户可以通过导出会话凭据(AWS_ACCESS_KEY_ID、SECRET_ACCESS_KEY_ID、AWS_SESSION_TOKEN 等)访问集群并拥有aws-iam-authenticator 客户端安装在他们的终端中。当用户尝试使用 aws-iam-authenticator 使用存储在 ~/.aws/config 中的 aws sso 配置文件时,就会出现问题。运行任何kubectl 命令时收到的错误如下:

 $ kubectl get all
    could not get token: NoCredentialProviders: no valid providers in chain. Deprecated.
        For verbose messaging see aws.Config.CredentialsChainVerboseErrors

我已在本地计算机 (AWS CLI v2) 上对此进行了测试,但没有取得任何成功。我通过export AWS_PROFILE=User1 导出了在~/.aws/config 文件中找到的AWS 配置文件,并且运行aws sts get-caller-identity 正确显示了正在导出的配置文件。我已经在多个命名配置文件之间切换,每个配置文件都获得了正确的身份和权限,但是,当运行任何 kubectl 命令时,我得到了上述错误。我也尝试过符号链接 config -> credentials 但没有运气。唯一可行的方法是将 access_key、secret_key 和 session_token 导出到环境变量。

我想我可以忍受必须粘贴来自 AWS SSO 的动态凭据,但我需要解决解决方案不会让我放弃:(。我正在关注这个 github issue 中的线程但没有运气。我设置的 kube 配置文件是 AWS 文档中指定的。

我怀疑aws-iam-authenticator 服务器部署可能有问题,但 pod 日志中没有显示任何内容。这是来自工具 github page 的 sn-p,我 think 我正确地遵循了它,但由于我忘记的原因我确实跳过了第 3 步:

Kubernetes API 与 AWS IAM Authenticator 集成 Kubernetes 使用令牌认证 webhook。当你跑 aws-iam-authenticator 服务器,它将生成一个 webhook 配置 文件并将其保存到主机文件系统中。您需要添加一个 API 服务器配置的附加标志:

Kube 配置文件

apiVersion: v1
clusters:
- cluster:
    server: <endpoint-url>
    certificate-authority-data: <base64-encoded-ca-cert>
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: aws
  name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      command: aws-iam-authenticator
      args:
        - "token"
        - "-i"
        - "eks-cluster-name"
        - "-r"
        - "EKS-ADMIN-ROLE:ARN:::::::"
      env:
        - name: AWS_PROFILE
          value: "USER"

【问题讨论】:

    标签: kubernetes amazon-eks aws-iam-authenticator


    【解决方案1】:

    AWS CLI v2 现在是supports AWS SSO,所以我决定更新我的 Kube 配置文件以利用 aws 命令而不是 aws-iam-authenticator。现在通过 SSO 进行身份验证变得轻而易举!看起来 AWS 想要摆脱必须拥有额外的二进制文件才能在 EKS 集群中进行身份验证的情况,这对我来说很好!希望这可以帮助。

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-08-22
      • 2021-02-16
      • 1970-01-01
      • 2022-07-28
      • 2019-05-15
      • 1970-01-01
      相关资源
      最近更新 更多