Amazon ec2 有没有办法阻止aws iam验证器使用环境中的密钥?
问题 我的env有一些AWS密钥,但我仍然希望使用AWS iam authenticator对EKS进行身份验证的kubectl使用与ec2实例关联的角色。 我尝试在.kube/config中使用下面提到的代码段,但是aws iam authenticator仍然为env变量提供了更多的存在性Amazon ec2 有没有办法阻止aws iam验证器使用环境中的密钥?,amazon-ec2,amazon-iam,kubectl,amazon-eks,Amazon Ec2,Amazon Iam,Kubectl,Amazon Eks,问题 我的env有一些AWS密钥,但我仍然希望使用AWS iam authenticator对EKS进行身份验证的kubectl使用与ec2实例关联的角色。 我尝试在.kube/config中使用下面提到的代码段,但是aws iam authenticator仍然为env变量提供了更多的存在性 - name: eks user: exec: apiVersion: client.authentication.k8s.io/v1alpha1 command: a
- 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角色
有没有办法避免这种行为而不必强制取消环境变量的设置 根据文档,请“使用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使用链中第一个返回凭据的提供程序,该提供程序不会出错。默认提供程序链按以下顺序查找凭据:
aws/credentials
。您可以找到更多信息:
此方法允许隐式使用适当的配置文件。请注意,作为exec流的一部分设置的任何环境变量都将优先于环境中已设置的变量
根据文档,请“使用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使用链中第一个返回凭据的提供程序,该提供程序不会出错。默认提供程序链按以下顺序查找凭据:
aws/credentials
。您可以找到更多信息:
此方法允许隐式使用适当的配置文件。请注意,作为exec流的一部分设置的任何环境变量都将优先于环境中已设置的变量
谢谢你的回复,我的问题没什么不同。我希望我的kubectl使用kubeconfig文件中给出的aws配置文件,即使env中有可用的aws密钥。这看起来像是我在boto中实现的底层aws skd设置的优先级,尽管它的行为与预期一样,但我不知道是否有办法抑制这种行为。添加了新信息。请分享你的结果。谢谢你的回答。我的问题没有什么不同。我希望我的kubectl使用kubeconfig文件中给出的aws配置文件,即使env中有可用的aws密钥。这看起来像是我在boto中实现的底层aws skd设置的优先级,尽管它的行为与预期一样,但我不知道是否有办法抑制这种行为。添加了新信息。请分享你的结果。