久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長(zhǎng)資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      Kubernetes API服務(wù)器的安全防護(hù)

      正文

      12.1.了解認(rèn)證機(jī)制

        啟動(dòng)API服務(wù)器時(shí),通過命令行選項(xiàng)可以開啟認(rèn)證插件。

      12.1.1.用戶和組

      了解用戶:

        分為兩種連接到api服務(wù)器的客戶端:

        1.真實(shí)的人

        2.pod,使用一種稱為ServiceAccount的機(jī)制

      了解組:

        認(rèn)證插件會(huì)連同用戶名,和用戶id返回組,組可以一次性給用戶服務(wù)多個(gè)權(quán)限,不用單次賦予,

        system:unauthenticated組:用于所有認(rèn)證插件都不會(huì)認(rèn)證客戶端身份的請(qǐng)求。

        system:authenticated組:會(huì)自動(dòng)分配給一個(gè)成功通過認(rèn)證的用戶。

        system:serviceaccount組:包含 所有在系統(tǒng)中的serviceaccount。

        system:serviceaccount:<namespace>組:包含了所有在特定命名空間中的serviceAccount。

      12.1.2 ServiceAccount介紹

        每個(gè)pod中都包含/var/run/secrets/kubernetes.io/serviceaccount/token文件,如下圖所示,文件內(nèi)容用于對(duì)身份進(jìn)行驗(yàn)證,token文件持有serviceaccount的認(rèn)證token。

        Kubernetes API服務(wù)器的安全防護(hù)

        應(yīng)用程序使用token去連接api服務(wù)器時(shí),認(rèn)證插件會(huì)對(duì)serviceaccount進(jìn)行身份認(rèn)證,并將serviceaccount的用戶名傳回到api服務(wù)器內(nèi)部。

             serviceaccount的用戶名格式如下:

        system:serviceaccount:<namespace>:<service account name>

        ServiceAccount是運(yùn)行在pod中的應(yīng)用程序,和api服務(wù)器身份認(rèn)證的一中方式

      了解ServiceAccount資源

        ServiceAcount作用在單一命名空間,為每個(gè)命名空間創(chuàng)建默認(rèn)的ServiceAccount。

             Kubernetes API服務(wù)器的安全防護(hù)

        多個(gè)pod可以使用相同命名空間下的同一的ServiceAccount

       ServiceAccount如何與授權(quán)文件綁定

         在pod的manifest文件中,可以指定賬戶名稱的方式,將一個(gè)serviceAccount賦值給一個(gè)pod,如果不指定,將使用該命名空間下默認(rèn)的ServiceAccount.

         可以 將不同的ServiceAccount賦值給pod,讓pod訪問不同的資源。

       

       

      12.1.3創(chuàng)建ServiceAccount

        為了集群的安全性,可以手動(dòng)創(chuàng)建ServiceAccount,可以限制只有允許的pod訪問對(duì)應(yīng)的資源。

              創(chuàng)建方法如下:

      $ kubectl get sa
      NAME      SECRETS  AGE
      default  1        21h
       
       
      $ kubectl create serviceaccount yaohong
      serviceaccount/yaohong created
       
       
      $ kubectl get sa
      NAME      SECRETS  AGE
      default  1        21h
      yaohong  1        3s

        使用describe來查看ServiceAccount。

      $ kubectl describe sa yaohong
      Name:                yaohong
      Namespace:          default
      Labels:              <none>
      Annotations:        <none>
      Image pull secrets:  <none>
      Mountable secrets:  yaohong-token-qhbxn  //如果強(qiáng)制使用可掛載秘鑰。那么使用這個(gè)serviceaccount的pod只能掛載這個(gè)秘鑰
      Tokens:              yaohong-token-qhbxn
      Events:              <none>

        查看該token,

      $ kubectl describe secret yaohong-token-qhbxn
      Name:        yaohong-token-qhbxn
      Namespace:    default
      Labels:      <none>
      Annotations:  kubernetes.io/service-account.name: yaohong
                    kubernetes.io/service-account.uid: a3d0d2fe-bb43-11e9-ac1e-005056870b4d
       
      Type:  kubernetes.io/service-account-token
       
      Data
      ====
      ca.crt:    1342 bytes
      namespace:  7 bytes
      token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJkZWZhdWx0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZWNyZXQubmFtZSI6Inlhb2hvbmctdG9rZW4tcWhieG4iLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoieWFvaG9uZyIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImEzZDBkMmZlLWJiNDMtMTFlOS1hYzFlLTAwNTA1Njg3MGI0ZCIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDpkZWZhdWx0Onlhb2hvbmcifQ.BwmbZKoM95hTr39BuZhinRT_vHF-typH4anjkL0HQxdVZEt_eie5TjUECV9UbLRRYIqYamkSxmyYapV150AQh-PvdcLYPmwKQLJDe1-7VC4mO2IuVdMCI_BnZFQBJobRK9EdPdbZ9uxc9l0RL5I5WyWoIjiwbrQvtCUEIkjT_99_NngdrIr7QD9S5SxHurgE3HQbmzC6ItU911LjmxtSvBqS5NApJoJaztDv0cHKvlT67ZZbverJaStQdxr4yiRbpSycRNArHy-UZKbNQXuzaZczSjVouo5A5hzgSHEBBJkQpQ6Tb-Ko5XGjjCgV_b9uQvhmgdPAus8GdFTTFAbCBw  

       

      12.1.4將ServiceAccount分配給pod

        在pod中定義的spec.serviceAccountName字段上設(shè)置,此字段必須在pod創(chuàng)建時(shí)設(shè)置后續(xù)不能被修改。

        自定義pod的ServiceAccount的方法如下圖

            Kubernetes API服務(wù)器的安全防護(hù)

      12.2通過基于角色的權(quán)限控制加強(qiáng)集群安全

      12.2.1.介紹RBAC授權(quán)插件

        RBAC授權(quán)插件將用戶角色作為決定用戶能否執(zhí)行操作的關(guān)機(jī)因素。

       

      12.2.2介紹RBAC授權(quán)資源

        RBAC授權(quán)規(guī)則通過四種資源來進(jìn)行配置的,他們可以分為兩組:

          Role和ClusterRole,他們決定資源上可執(zhí)行哪些動(dòng)詞。

               RoleBinding和ClusterRoleBinding,他們將上述角色綁定到特定的用戶,組或者ServiceAccounts上。

        Role和RoleBinding是namespace級(jí)別資源

        ClusterRole和ClusterRoleBinding是集群級(jí)別資源

      12.2.3使用Role和RoleBinding

         Role資源定義了哪些操作可以在哪些資源上執(zhí)行,

      創(chuàng)建Role

        service-reader.yml

      apiVersion: rbac.authorization.k8s.io/v1
      kind: Role
      metadata:
        namespace: kube-system
        name: service-reader
      rules:
      – apiGroups: [“”]
        verbs: [“get”, “list”]
        resources: [“services”]

        在kube-system中創(chuàng)建Role

      #kubectl -n kube-system create -f service-reader.yml

        查看該namespace下的role

      $ kubectl -n kube-system get role
      NAME                                            AGE
      extension-apiserver-authentication-reader        41h
      kube-state-metrics-resizer                      41h
      service-reader                                  2m17s
      system::leader-locking-kube-controller-manager  41h
      system::leader-locking-kube-scheduler            41h
      system:controller:bootstrap-signer              41h
      system:controller:cloud-provider                41h
      system:controller:token-cleaner                  41h

      綁定角色到ServiceAccount

         將service-reader角色綁定到default ServiceAccount

      $ kubectl  create rolebinding test –role=service-reader
      rolebinding.rbac.authorization.k8s.io/test created

        Kubernetes API服務(wù)器的安全防護(hù)

      $ kubectl  get rolebinding test -o yaml
      apiVersion: rbac.authorization.k8s.io/v1
      kind: RoleBinding
      metadata:
        creationTimestamp: 2019-08-11T03:40:51Z
        name: test
        namespace: default
        resourceVersion: “239323”
        selfLink: /apis/rbac.authorization.k8s.io/v1/namespaces/default/rolebindings/test
        uid: d0aff243-bbe9-11e9-ac1e-005056870b4d
      roleRef:
        apiGroup: rbac.authorization.k8s.io
        kind: Role
        name: service-reader

       

      12.2.4使用ClusterRole和ClusterRoleBinding

       查看集群ClusterRole

      # kubectl get clusterrole
      NAME                                                                  AGE
      admin                                                                  42h
      cluster-admin                                                          42h
      edit                                                                  42h
      flannel                                                                42h
      kube-state-metrics                                                    42h
      system:aggregate-to-admin                                              42h

      創(chuàng)建ClusterRole

      kubectl create clusterrole flannel –verb=get,list -n kube-system

      查看yaml文件

      # kubectl get  clusterrole flannel -o yaml
      apiVersion: rbac.authorization.k8s.io/v1
      kind: ClusterRole
      metadata:
        annotations:
          kubectl.kubernetes.io/last-applied-configuration: |
            {“apiVersion”:”rbac.authorization.k8s.io/v1″,”kind”:”ClusterRole”,”metadata”:{“annotations”:{},”name”:”flannel”},”rules”:[{“apiGroups”:[“”],”resources”:[“pods”],”verbs”:[“get”]},{“apiGroups”:[“”],”resources”:[“nodes”],”verbs”:[“list”,”watch”]},{“apiGroups”:[“”],”resources”:[“nodes/status”],”verbs”:[“patch”]}]}
        creationTimestamp: 2019-08-09T09:58:42Z
        name: flannel
        resourceVersion: “360”
        selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/flannel
        uid: 45100f6f-ba8c-11e9-8f57-005056870608
      rules:
      – apiGroups:
        – “”
        resources:
        – pods
        verbs:
        – get
      – apiGroups:
        – “”
        resources:
        – nodes
        verbs:
        – list
        – watch
      – apiGroups:
        – “”
        resources:
        – nodes/status
        verbs:
        – patch

       

      創(chuàng)建clusterRoleBinding

      $ kubectl  create clusterrolebinding  cluster-tetst  –clusterrole=pv-reader  –serviceaccount=kuebsystem:yaohong
      clusterrolebinding.rbac.authorization.k8s.io/cluster-tetst created

        Kubernetes API服務(wù)器的安全防護(hù)

       

       

      12.2.5了解默認(rèn)的ClusterRole和ClusterRoleBinding

      如下所示使用kubectl get clusterroles和kubectl get clusterrolesbinding可以獲取k8s默認(rèn)資源。

      用edit ClusterRole允許對(duì)資源進(jìn)行修改

      用admin ClusterRole賦予一個(gè)命名空間全部的權(quán)限

      $ kubectl get clusterroles
      NAME                                                                  AGE
      admin                                                                  44h
      cluster-admin                                                          44h
      edit                                                                  44h
      flannel                                                                44h
      kube-state-metrics                                                    44h
      system:aggregate-to-admin                                              44h
      system:aggregate-to-edit                                              44h
      system:aggregate-to-view                                              44h
      system:auth-delegator                                                  44h
      system:aws-cloud-provider                                              44h
      system:basic-user                                                      44h
      system:certificates.k8s.io:certificatesigningrequests:nodeclient      44h
      system:certificates.k8s.io:certificatesigningrequests:selfnodeclient  44h
      system:controller:attachdetach-controller                              44h
      system:controller:certificate-controller                              44h
      system:controller:clusterrole-aggregation-controller                  44h
      。。。

      wps@wps:~$ kubectl get clusterrolebindings
      NAME                                                  AGE
      clust-tetst                                            17m
      cluster-admin                                          44h
      cluster-tetst                                          13m
      flannel                                                44h
      kube-state-metrics                                    44h
      kubelet-bootstrap                                      44h
      system:aws-cloud-provider                              44h
      system:basic-user                                      44h
      system:controller:attachdetach-controller              44h
      system:controller:certificate-controller              44h
      。。。

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)