首页 > 其他分享 >配置k8s的一个serviceaccount具有管理员权限并获取他的token

配置k8s的一个serviceaccount具有管理员权限并获取他的token

时间:2023-05-20 23:31:38浏览次数:35  
标签:Service Kubernetes serviceaccount 身份验证 token API 集群 Pod k8s

创建sa账户/授定管理员角色权限

cat > sa.yaml <<eof
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kubepi-user
  namespace: kube-system
eof  
cat > rolebe.yaml <<eof
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubepi-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: kubepi-user
    namespace: kube-system
eof

创建一个测试pod

cat > nginx-pod.yaml <<eof
apiVersion: v1
kind: Pod
metadata:
  namespace: kube-system
  labels:
    run: nginx
  name: nginx
spec:
  terminationGracePeriodSeconds: 0
  serviceAccount: kubepi-user
  containers:
  - image: nginx:latest
    imagePullPolicy: IfNotPresent
    name: nginx
  dnsPolicy: ClusterFirst
  restartPolicy: Always

获取token

kubectl -n kube-system exec -it nginx -- cat /run/secrets/kubernetes.io/serviceaccount/token

这个文件是在 Kubernetes 集群中使用的,它存储了一个用于进行身份验证和访问控制的令牌。在 Kubernetes 中,每个 Pod 都有一个名为 service account 的对象与之关联。service account 由 Kubernetes 自动创建,并且在默认情况下,每个 Pod 都会分配一个默认的 service account。

当 Pod 需要访问 Kubernetes API 服务器时,它可以使用该令牌向 API 服务器进行身份验证。该令牌也可以用于访问其他受 Kubernetes API 服务器保护的资源。具体来说,Pod 可以使用该令牌来获取一些敏感数据,如 Kubernetes Secret、ConfigMap 等。这使得 Kubernetes 能够实现细粒度的访问控制,从而提高集群的安全性。

在Kubernetes中,每个Pod都会分配一个Service Account,默认情况下,这个Service Account具有相应的权限来访问Kubernetes API服务器。当你在一个Pod中运行容器时,可以通过访问/run/secrets/kubernetes.io/serviceaccount/token文件来获得访问API服务器所需的Token。

这个文件可以提高集群的安全性,因为它使用了Kubernetes内置的身份验证机制,并确保只有拥有正确Token的容器才能访问Kubernetes API服务器。 它还提供了一种无需在Pod镜像中硬编码凭据的方法来进行身份验证,从而保护了Pod容器和整个集群免受凭据泄漏的风险。

此外,使用Service Account Token进行身份验证也可以帮助集群管理员更好地跟踪和管理特定操作和资源的访问。例如,他们可以查看哪些Pod使用了特定的Service Account,并对其进行必要的授权或限制。

总之,Service Account Token可以作为在Kubernetes集群中进行身份验证的一种有效方式,从而提高集群的安全性并减少潜在的安全威胁。

标签:Service,Kubernetes,serviceaccount,身份验证,token,API,集群,Pod,k8s
From: https://blog.51cto.com/yht1990/6318176

相关文章

  • k8s iptables链
    [root@k8s-masterdocker]#iptables-S-tnat-PPREROUTINGACCEPT-PINPUTACCEPT-POUTPUTACCEPT-PPOSTROUTINGACCEPT-NDOCKER-NKUBE-MARK-DROP-NKUBE-MARK-MASQ-NKUBE-NODEPORTS-NKUBE-POSTROUTING-NKUBE-SEP-2CJALHN5HAPMFVFM-NKUBE-SEP-3QOD56XR......
  • 一种基于token 和 Permission 的权限管理中间件示例
    1.先上封装后的使用效果[Permission(Key="/User/AddUser")][HttpPost]publicResultAddUser([FromBody]SaUseruser){//Dosth.thrownewNotImplementedException();}[Authorize]......
  • Cannot cast Newtonsoft.Json.Linq.JObject to Newtonsoft.Json.Linq.JToken.
    @@CannotcastNewtonsoft.Json.Linq.JObjecttoNewtonsoft.Json.Linq.JToken 解决方法方法参数为[FromBody]objectcontent JObjectjo=(JObject)JsonConvert.DeserializeObject(content.ToString());JToken[]jtoArray=jo["contentBody"].ToArray();List<......
  • k8s快速部署Redis单机
    1.创建Redis配置apiVersion:v1data:redis.conf:|-bind0.0.0.0port6379requirepassSystem@123pidfile/var/run/redis_6379.pidsave9001save30010save6010000rdbcompressionyesrdbchecksumyesdbfilenamedum......
  • solrcloud 7.5在k8s上的部署安装和使用教程
    全栈工程师开发手册(作者:栾鹏)架构系列文章solr的dockerhub官网:https://hub.docker.com/_/solr/solr简介ApacheSolr支持不同格式,例如数据库,PDF文件,XML文件,CSV文件。7.5版本的主要升级内容:https://www.w3cschool.cn/solr_doc/solr_doc-s4kg2fp6.html为什么选择ApacheSolrApa......
  • k8s快速部署MySQL单机
    1.创建PV/PVC略2.创建MySQL配置文件kind:ConfigMapapiVersion:v1metadata:name:mysql-confignamespace:ops-sharedata:my.cnf:|-[mysqld]skip-host-cacheskip-name-resolvedatadir=/var/lib/mysqlsocket=/var/run/mysqld/mysqld.s......
  • k8s 1.23.0 安装使用ingress 1.1.1
    1、部署ingresscontroller下载yaml文件,要指定版本wgethttps://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.1.1/deploy/static/provider/cloud/deploy.yaml2、修改配置文件中的镜像下载地址,总共3处修改image:registry.cn-hangzhou.aliy......
  • K8S Pod 优雅停机
    优雅停止(GracfulShutdown)与502/504报错如果Pod正在处理大量请求(比如1000QPS+)时,因为节点故障或「竞价节点」被回收等原因被重新调度,你可能会观察到在容器被terminate的一段时间内出现少量502/504。为了搞清楚这个问题,需要先理解清楚terminate一个Pod的流程:1.Pod......
  • K8s 资源缩写
    点击查看代码[root@nginx~]#kubectlapi-resourcesNAMESHORTNAMESAPIVERSIONNAMESPACEDKINDbindingsv1trueBindingcompon......
  • k8s集群环境搭建
    注:如下文档不是一次性搭建成功的,可能有一些地方ip地址和实际成功的那次地址不一样。首先,我们准备3台虚拟机,配置都是是2核心2.2G内存192.168.3.121k8s-master192.168.3.133k8s-node1192.168.3.119k8s-node21修改主机名经过实践,发现,如果不修改主机名的话,安装可能......