Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.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 web services 使用假定的IAM角色从EKS pod访问远程EKS群集_Amazon Web Services_Kubernetes_Amazon Iam_Amazon Eks - Fatal编程技术网

Amazon web services 使用假定的IAM角色从EKS pod访问远程EKS群集

Amazon web services 使用假定的IAM角色从EKS pod访问远程EKS群集,amazon-web-services,kubernetes,amazon-iam,amazon-eks,Amazon Web Services,Kubernetes,Amazon Iam,Amazon Eks,我已经讨论过这一点,允许EKS集群上运行的一个POD使用kubectl访问远程EKS集群 我目前正在集群内运行一个pod,安装一个服务帐户令牌,允许我根据上面的指南使用kubernetes RBAC配置IAM角色。我已经通过运行aws sts get caller identity确保正确地承担了角色,事实确实如此 我现在已经安装了kubectl,并像这样配置了kube/config- apiVersion: v1 clusters: - cluster: certificate-aut

我已经讨论过这一点,允许EKS集群上运行的一个POD使用kubectl访问远程EKS集群

我目前正在集群内运行一个pod,安装一个服务帐户令牌,允许我根据上面的指南使用kubernetes RBAC配置IAM角色。我已经通过运行
aws sts get caller identity
确保正确地承担了角色,事实确实如此

我现在已经安装了kubectl,并像这样配置了kube/config-

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <redacted>
    server: <redacted>
  name: <cluster-arn>
contexts:
- context:
    cluster: <cluster-arn>
    user: <cluster-arn>
  name: <cluster-arn>
current-context: <cluster-arn>
kind: Config
preferences: {}
users:
- name: <cluster-arn>
  user:
    exec:
      apiVersion: client.authentication.k8s.io/v1alpha1
      args:
      - --region
      - us-east-2
      - eks
      - get-token
      - --cluster-name
      - <cluster-name>
      - --role
      - <role-arn>
      command: aws
      env: null
apiVersion:v1 集群: -群集: 证书颁发机构数据: 服务器: 姓名: 上下文: -背景: 集群: 用户: 姓名: 当前环境: 种类:配置 首选项:{} 用户: -姓名: 用户: 执行官: apiVersion:client.authentication.k8s.io/v1alpha1 args: ---地区 -美国东部-2 -埃克斯 -领取代币 ---群集名称 - ---角色 - 命令:aws 环境:空 但是,我尝试使用kubectl执行的每个操作都会导致此错误-
错误:您必须登录到服务器(未经授权)


我不知道我误解了什么,如果您能告诉我如何获得更详细的错误消息,我将不胜感激。

如果AWS CLI已经在使用您想要的角色标识,那么就不需要在kubeconfig参数中指定
--role

如果将它们保留在中,则来自
aws sts get caller identity
的角色将需要对该角色拥有
sts:AssumeRole
权限。如果它们是相同的,那么角色就需要能够假设自己——这是多余的


因此,我会尝试从
kubeconfig.yml
中删除这些参数,看看是否有帮助。

谢谢Jason。我尝试过从kubeconfig中删除这些参数,并允许角色自行承担,但这两种解决方案都不起作用。