Kubernetes 中使用 RBAC 限制用户权限的 kubeconfig 配置文件创建指南
要创建一个 kubeconfig 配置文件,其中用户对应的权限可以使用 RBAC 进行限制,而不使用服务账号 (serviceAccount) 来绑定角色,可以按照以下步骤进行操作:\n\n1. 创建证书和私钥:\n 首先,需要生成一个用于身份验证的证书和私钥。可以使用 openssl 命令生成:\n\n shell\n openssl genrsa -out user.key 2048\n openssl req -new -key user.key -out user.csr -subj "/CN=<username>"\n openssl x509 -req -in user.csr -CA /path/to/ca.crt -CAkey /path/to/ca.key -CAcreateserial -out user.crt -days 365\n \n\n 其中,<username>是要创建的用户的名称,/path/to/ca.crt 和 /path/to/ca.key 分别是 Kubernetes 集群的 CA 证书和私钥的路径。\n\n2. 创建 kubeconfig 文件:\n 接下来,需要创建一个 kubeconfig 文件,并将用户的证书和私钥配置到该文件中。可以使用 kubectl config 命令来创建 kubeconfig 文件:\n\n shell\n kubectl config set-cluster <cluster-name> --server=<api-server-url> --certificate-authority=/path/to/ca.crt --embed-certs=true\n kubectl config set-credentials <username> --client-certificate=/path/to/user.crt --client-key=/path/to/user.key --embed-certs=true\n kubectl config set-context <context-name> --cluster=<cluster-name> --user=<username>\n kubectl config use-context <context-name>\n \n\n 其中,<cluster-name> 是集群的名称,<api-server-url> 是 API 服务器的 URL,<username> 是要创建的用户名,<context-name> 是上下文的名称。\n\n3. 创建 RBAC 角色和绑定权限:\n 现在,需要创建一个 RBAC 角色,并将权限绑定到用户上。可以使用 kubectl create 命令来创建 RBAC 角色和绑定:\n\n shell\n kubectl create role <role-name> --verb=<verbs> --resource=<resources> --namespace=<namespace>\n kubectl create rolebinding <rolebinding-name> --role=<role-name> --user=<username> --namespace=<namespace>\n \n\n 其中,<role-name> 是角色的名称,<verbs> 是要允许的操作(如 get,create,update),<resources> 是要允许的资源(如 pods,deployments),<namespace> 是要绑定角色的命名空间。\n\n4. 验证权限:\n 现在,可以使用创建的 kubeconfig 文件进行身份验证,并验证用户的权限。可以使用 kubectl 命令来验证:\n\n shell\n kubectl --kubeconfig=<kubeconfig-file> get pods\n \n\n 其中,<kubeconfig-file> 是创建的 kubeconfig 文件的路径。\n\n通过以上步骤,你可以创建一个 kubeconfig 配置文件,其中用户对应的权限可以使用 RBAC 进行限制,而不使用服务账号来绑定角色。
原文地址: https://www.cveoy.top/t/topic/qdDN 著作权归作者所有。请勿转载和采集!