珠海网站建设哪家好微商怎么做_和淘宝网站一样吗?
news/
2025/10/2 11:54:20/
文章来源:
珠海网站建设哪家好,微商怎么做_和淘宝网站一样吗?,山东省青州市建设局网站,sql与网站开发认识RBAC
RBAC#xff08;基于角色的访问控制#xff09;是一种将权限分配给用户和服务的方法#xff0c;基于他们的角色来确定他们可以访问和修改的资源。K8s使用RBAC作为来访请求鉴权的机制之一。
场景#xff1a;访问K8s接口时的认证和鉴权
某些场景下#xff0c;我…认识RBAC
RBAC基于角色的访问控制是一种将权限分配给用户和服务的方法基于他们的角色来确定他们可以访问和修改的资源。K8s使用RBAC作为来访请求鉴权的机制之一。
场景访问K8s接口时的认证和鉴权
某些场景下我们需要与K8s API Server交互以获取或变更集群中资源的状态。我们知道访问K8s API Server是需要认证鉴权准入控制审计四个步骤的。
其中认证passwordService account tokenX509 客户端证书认证鉴权节点授权RBACABAC的信息需要客户端在请求中携带。因此为了请求K8s API首先我们需要从K8s获取认证鉴权信息。K8s为我们准备了这样一份信息: kubeconfig file。该文件在每一个可正常执行kubectl的K8s节点机的/root/.kube/config。获取这个文件后我们可以使用如下样例代码列举K8s特定命名空间中的所有deployments
from kubernetes import client, configdef list_deployments(namespace):# Load the kubeconfig fileconfig.load_kube_config(/root/.kube/config)# Create an instance of the API classapps_v1 client.AppsV1Api()print(fListing deployments in namespace: {namespace})# List deploymentsdeployments apps_v1.list_namespaced_deployment(namespace)for deployment in deployments.items:print(deployment.metadata.name)# Replace your_namespace with the desired namespace
list_deployments(your_namespace)通过这种方式获取访问K8s所需的认证鉴权信息方便有效。不过有安全隐患在后面的章节我们会通过分析这个文件的内容解析安全隐患在哪里。在此之前需先了解K8s RBACRole Based Access Control的基础知识。
RBAC中的resource和verb
RBAC中resource是可以被操作的资源对象verbs是操作的动作。
#resource
podsnodesdeploymentsservice
#verbs
create, delete, get, list, patch, watch通过下面的命令可以查看K8s中的资源和对应的动作 kubectl api-resources -o wide
RBAC中的role
Role定义了对resource做什么verb。
# 删除Pods
Delete Pods
# 更新Service
patch Service以下Role描述文件定义了该role能够对deployments, “statefulsets进行get”, “watch”, “list”, “patch”, “update”
apiVersion: rbac.authorization.k8s.io/v1
## 这里也可以使用 Role
kind: ClusterRole
metadata:name: deploy-cluster-role
rules:
- apiGroups: [apps]resources: [deployments, statefulsets]verbs: [get, watch, list, patch, update]RBAC中的ServiceAccount
以下yaml创建一个ServiceAccounttestapp。绑定该ServiceAccount的应用使用该身份与K8s集群进行交互。
apiVersion: v1
kind: ServiceAccount
metadata:name: testapp# change to desired namespacenamespace: defaultRBAC中的RoleBinding
RoleBinding将ServiceAccount绑定到Role上。表示应用对资源的操作。 以下yaml把Roledeploy-cluster-role绑定到ServiceAccounttestApp上
apiVersion: rbac.authorization.k8s.io/v1
## 这里也可以使用 RoleBinding
kind: ClusterRoleBinding
metadata:name: deploy-role-binding
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: deploy-cluster-role
subjects:
- kind: ServiceAccountname: testappnamespace: default小结
至此了解了RBAC的基本元素ResourceVerbRoleServiceAccountRoleBinding。并了解了这些概念在K8s中的落地。下篇我们介绍具体的实践。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/924866.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!