EKSコンソールからnodeやworkload情報を見れるようにする
AWSコンソールのEKS画面で
Your current user or role does not have access to Kubernetes objects on this EKS cluster This may be due to the current user or role not having Kubernetes RBAC permissions to describe cluster resources or not having an entry in the cluster’s auth config map
と表示される場合は、権限設定が必要です。
例えばAWSコンソールにログインしているIAM Userが my-user
なら以下のように aws-auth
ConfigMapの mapUsers
に追加します。
apiVersion: v1 kind: ConfigMap data: mapRoles: | - rolearn: arn:aws:iam::1234567890:role/my-role username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes mapUsers: | - userarn: arn:aws:iam::1234567890:user/my-user username: my-user groups: - system:masters
権限を絞る
system:masters
だと 全てのリソースに対して全ての操作を許可してしまうので、権限を絞りたいというニーズが出てくるかもしれません。
その場合は、 https://docs.aws.amazon.com/eks/latest/userguide/add-user-role.html の 5 にある All Regions other than Beijing and Ningxia China
のリンクからダウンロードできるyamlを使います。
そのyamlは以下のようになってます(2021/01/08時点)
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: eks-console-dashboard-full-access-clusterrole rules: - apiGroups: - "" resources: - nodes - namespaces - pods verbs: - get - list - apiGroups: - apps resources: - deployments - daemonsets - statefulsets - replicasets verbs: - get - list - apiGroups: - batch resources: - jobs verbs: - get - list --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks-console-dashboard-full-access-binding subjects: - kind: Group name: eks-console-dashboard-full-access-group apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: eks-console-dashboard-full-access-clusterrole apiGroup: rbac.authorization.k8s.io
で、このyamlをapplyし、以下のようにgroupsにeks-console-dashboard-full-access-group
を指定します。
group mapUsers: | - userarn: arn:aws:iam::1234567890:user/my-user username: my-user groups: - eks-console-dashboard-full-access-group
これでEKSコンソールからnodeやworkload情報を見るための最低限の権限に絞られます。
その他注意点
注意点としては、
usernameに system:node:{{EC2PrivateDNSName}}
を指定してしまうと、以下のようなメッセージがでてnodeやworkload情報が見れません。
Your current user or role does not have access to Kubernetes objects on this EKS cluster This may be due to the current user or role not having Kubernetes RBAC permissions to describe cluster resources or not having an entry in the cluster’s auth config map
また、以下のように
groups: - system:bootstrappers - system:nodes
groupsにsystem:bootstrappers
、system:nodes
を指定してしまうと、以下のようなメッセージがでてnodeやworkload情報が見れません。
namespaces is forbidden: User "my-user" cannot list resource "namespaces" in API group "" at the cluster scope