Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 有没有办法阻止aws iam验证器使用环境中的密钥?_Amazon Ec2_Amazon Iam_Kubectl_Amazon Eks - Fatal编程技术网

Amazon ec2 有没有办法阻止aws iam验证器使用环境中的密钥?

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

问题 我的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: 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使用链中第一个返回凭据的提供程序,该提供程序不会出错。默认提供程序链按以下顺序查找凭据:

  • 环境变量
  • 共享凭据文件
  • 如果您的应用程序在AmazonEC2实例上运行,请为AmazonEC2指定IAM角色
  • 默认情况下,SDK检查AWS_PROFILE环境变量以确定要使用的配置文件。如果未设置AWS\U配置文件变量,则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使用链中第一个返回凭据的提供程序,该提供程序不会出错。默认提供程序链按以下顺序查找凭据:

  • 环境变量
  • 共享凭据文件
  • 如果您的应用程序在AmazonEC2实例上运行,请为AmazonEC2指定IAM角色
  • 默认情况下,SDK检查AWS_PROFILE环境变量以确定要使用的配置文件。如果未设置AWS\U配置文件变量,则SDK使用默认配置文件

    另一方面,您可以创建任意数量的配置文件
    aws/credentials
    。您可以找到更多信息:

    此方法允许隐式使用适当的配置文件。请注意,作为exec流的一部分设置的任何环境变量都将优先于环境中已设置的变量


    谢谢你的回复,我的问题没什么不同。我希望我的kubectl使用kubeconfig文件中给出的aws配置文件,即使env中有可用的aws密钥。这看起来像是我在boto中实现的底层aws skd设置的优先级,尽管它的行为与预期一样,但我不知道是否有办法抑制这种行为。添加了新信息。请分享你的结果。谢谢你的回答。我的问题没有什么不同。我希望我的kubectl使用kubeconfig文件中给出的aws配置文件,即使env中有可用的aws密钥。这看起来像是我在boto中实现的底层aws skd设置的优先级,尽管它的行为与预期一样,但我不知道是否有办法抑制这种行为。添加了新信息。请分享你的结果。