Amazon web services 使用假定的IAM角色从EKS pod访问远程EKS群集
我已经讨论过这一点,允许EKS集群上运行的一个POD使用kubectl访问远程EKS集群 我目前正在集群内运行一个pod,安装一个服务帐户令牌,允许我根据上面的指南使用kubernetes RBAC配置IAM角色。我已经通过运行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
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中删除这些参数,并允许角色自行承担,但这两种解决方案都不起作用。