美文网首页
笔记-权限

笔记-权限

作者: 李潇_d8d7 | 来源:发表于2019-01-25 15:21 被阅读0次

    k8s鉴权:

    k8s不存储用户信息,主要有一下集中识别用户的方式

    X509 Client Certs: 使用由 k8s 根 CA 签发的证书,提取O字段

    Static Token File: 预先在 API Server 放置 Token 文件(bootstrap 阶段使用过)

    Bootstrap Tokens: 一种在集群内创建的 Bootstrap 专用 Token(新的 Bootstarp 推荐)

    Static Password File: 跟静态 Token 类似

    Service Account Tokens: 使用 Service Account 的 Token

    ------------------------------------------------------------------------------------------------------------------------

    RBAC(Role Base Access Control)

    基于角色的权限控制

    所有的外部访问都会经过集群的统一入口api-server进入集群,访问的方式有kubectl、客户端库以及restful请求。

    Account:

    ServiceAccounts:用来访问 kubernetes API,通过 kubernetes API 创建和管理,每个 account 只能在一个namespace 上生效,存

    储在kubernetes API 中的 Secrets 资源。kubernetes 会默认创建,并且会自动挂载到Pod中的

    /run/secrets/kubernetes.io/serviceaccount 目录下如果pod没有指定sa那么会使用默认的default

    ROLE:定义权限规则,维度为namespace

    CLusterRole:在集群维度来定义用户权限规则,忽略namespace

    RoleBinding:将用户和rules进行绑定

    ClusterRoleBinding:将用户与集群资源做绑定,可以使用ClusterRole绑定RoleBinding

    ------------------------------------------------------------------------------------------------------------------------

    ------------------------------------------------------------------------------------------------------------------------

    创建dashboard登录用的账户过程

    首先必须是SA

    token认证:

    创建sa,根据管理目标进行rolebinding和clusterrolebinding 绑定到role或者cluterrole

    获取sa的secret查看token信息

    (kubectl get secret lixiao-admin-token-8spcl -o jsonpath={.data.token} |base64 -d)

    config文件认证

    创建sa,根据管理目标进行rolebinding和clusterrolebinding 绑定到role或者cluterrole

    创建配置文件:

    kubectl config set-context lixiao@kubernetes --cluster=kubernetes --user=lixiao --kubeconfig=/datafs/lixiao.conf

    kubectl config set-credentials lixiao --token=${sa_token} --kubeconfig=/datafs/lixiao.conf

    kubectl config use-context lixiao@kubernetes --kubeconfig=/datafs/lixiao.conf

    标准的配置文件包含三段

    contexts:上下文描述集群和用户关系

    current-context:当前上下文

    users:包含用户名和集群中的tocken信息

    其他节点使用kubectl配置需要导出主节点的

    ------------------------------------------------------------------------------------------------------------------------

    证书认证:

    CN:Common Name,kube-apiserver 从证书中提取该字段作为请求的用户名 (User Name)

    “O”:Organization,kube-apiserver 从证书中提取该字段作为请求用户所属的组 (Group)

    1:制作一组证书

    2:将证书信息写入kubeconfig配置文件 kubectl config set-credentials

    3:创建role和binding 绑定CN或者O (根据binding.subjects.kind)

    cfssl和openssl

    相关文章

      网友评论

          本文标题:笔记-权限

          本文链接:https://www.haomeiwen.com/subject/cramjqtx.html