手动创建受限 Kubernetes 配置文件以访问特定资源
要为访问 k8s apiserver 手动创建一个受限制的 .kube/config 配置文件,需要按照以下步骤进行操作:\n\n1. 打开终端,并使用kubectl config view --flatten命令获取当前的 kubeconfig 配置文件内容。将输出的内容复制到一个新的文件中,例如limited-kubeconfig.yaml。\n\n2. 打开limited-kubeconfig.yaml文件,并删除不需要的集群、用户和上下文配置。只保留需要访问的集群、用户和上下文的相关内容。\n\n3. 对于每个用户配置,找到contexts部分,并删除不需要的上下文配置。只保留需要访问的上下文配置。\n\n4. 对于每个上下文配置,找到context部分,并删除namespace字段。这样将允许使用该配置文件访问任何命名空间。\n\n5. 对于访问受限制的用户,可以使用 RBAC(Role-Based Access Control)来限制其访问权限。创建一个新的角色并绑定到用户,以限制用户只能访问特定的资源类型。\n\n6. 使用编辑器打开limited-kubeconfig.yaml文件,并为每个上下文配置添加authorization字段。在authorization字段中,添加resource字段并指定允许访问的资源类型。例如,对于只能访问pod、deployment、configmap、service和ingress的用户,可以将以下内容添加到authorization字段中:\n\nyaml\nauthorization:\n resource:\n - group: ""\n version: "v1"\n resource: "pods"\n namespace: ""\n - group: "apps"\n version: "v1"\n resource: "deployments"\n namespace: ""\n - group: ""\n version: "v1"\n resource: "configmaps"\n namespace: ""\n - group: ""\n version: "v1"\n resource: "services"\n namespace: ""\n - group: "networking.k8s.io"\n version: "v1beta1"\n resource: "ingresses"\n namespace: ""\n\n\n7. 保存并关闭limited-kubeconfig.yaml文件。\n\n现在,您已经手动创建了一个受限制的 .kube/config 配置文件,该文件仅允许用户访问指定的资源类型。您可以使用该配置文件来访问 k8s apiserver,并且只能获取 pod、deployment、configmap、service、ingress 等对象。
原文地址: https://www.cveoy.top/t/topic/qdDr 著作权归作者所有。请勿转载和采集!