amazon-web-services - 通过 IAM 角色访问 EKS 集群
问题描述
请帮助了解我收到的原因
错误:您必须登录到服务器(未经授权)
我创建了一个空的 EKS 主机并通过手动创建了内部角色:
eksctl create iamidentitymapping \
--cluster eks-cluster \
--arn arn:aws:iam::account_number:role/eks_test_full_role \
--username admin \
--group system:masters
它正在工作
eksctl get iamidentitymapping --cluster eks-cluster
ARN USERNAME GROUPS
arn:aws:iam::account_number:role/eks_test_full_role admin system:masters
arn:aws:iam::account_number:role/eks-cluster-eks-workers-iam-role system:node:{{EC2PrivateDNSName}} system:bootstrappers,system:nodes
在我创建了 IAM 用户之后,该用户可以担任具有所有必需权限的已创建角色
aws sts assume-role --role-arn arn:aws:iam::account_number:role/eks_test_full_role --role-session-name test
{
"Credentials": {
"AccessKeyId": "",
"SecretAccessKey": "",
"SessionToken": "",
"Expiration": "2021-02-04T10:24:59Z"
},
"AssumedRoleUser": {
"AssumedRoleId": "Role_id:test",
"Arn": "arn:aws:sts::account_number:assumed-role/eks_test_full_role/test"
}
}
我错过了什么让它起作用的步骤?
PS我的角色和角色绑定
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: dev
name: get-pods
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "watch", "list"]
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: get-pods-bind
namespace: dev
subjects:
- kind: User
name: admin
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: Role
name: get-pods
apiGroup: rbac.authorization.k8s.io
解决方案
您将需要编辑 aws-auth configmap 并允许这个不同的 IAM 用户访问集群。如下所示:
1. kubectl edit cm aws-auth -n kube-system
- 添加以下配置并编辑用户名占位符和帐户 ID 占位符。如果
mapusers
已经存在,那么只需从-
下一行开始添加一个新条目:
mapUsers: |
- userarn: arn:aws:iam::<account-id>:user/<name of IAM user>
username: <name of IAM user>
groups:
- system:masters
推荐阅读
- angular7 - 如何防止 ngAfterViewInit() 在 ngOninit 完成执行之前被调用
- python - 将自定义图例(标记颜色)添加到 plotly python
- sass - SASS如何获取列表的第n个值和键?
- google-cloud-platform - 如何在 Google Cloud Storage 上创建和写入 XLSX 文件
- c# - Visual Studio 重构变量类型
- java - Xpath:使用同级同级 xpath 定位同级 xpath
- cassandra - 当我们提供所有分区键时,ALLOW FILTERING 是如何工作的?
- php - 如何显示表中的最后一条记录以及剩余记录?
- python - Config 设置窗口大小 Kivy 的最小值和最大值
- git - 为什么 git stash 手册中不存在“保存”