<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # Kubernetes集群安全機制 ## 概述 當我們訪問K8S集群時,需要經過三個步驟完成具體操作 - 認證 - 鑒權【授權】 - 準入控制 進行訪問的時候,都需要經過 apiserver, apiserver做統一協調,比如門衛 - 訪問過程中,需要證書、token、或者用戶名和密碼 - 如果訪問pod需要serviceAccount ![image-20201118092356107](https://img.kancloud.cn/06/15/061545a97b8f68a3ff162e48b047558e_726x438.png) ### 認證 對外不暴露8080端口,只能內部訪問,對外使用的端口6443 客戶端身份認證常用方式 - https證書認證,基于ca證書 - http token認證,通過token來識別用戶 - http基本認證,用戶名 + 密碼認證 ### 鑒權 基于RBAC進行鑒權操作 基于角色訪問控制 ### 準入控制 就是準入控制器的列表,如果列表有請求內容就通過,沒有的話 就拒絕 ## RBAC介紹 基于角色的訪問控制,為某個角色設置訪問內容,然后用戶分配該角色后,就擁有該角色的訪問權限 ![image-20201118093949893](https://img.kancloud.cn/80/79/80792b019ec0e3e4dcf9e0e0d622e4c0_960x542.png) k8s中有默認的幾個角色 - role:特定命名空間訪問權限 - ClusterRole:所有命名空間的訪問權限 角色綁定 - roleBinding:角色綁定到主體 - ClusterRoleBinding:集群角色綁定到主體 主體 - user:用戶 - group:用戶組 - serviceAccount:服務賬號 ## RBAC實現鑒權 - 創建命名空間 ### 創建命名空間 我們可以首先查看已經存在的命名空間 ```bash kubectl get namespace ``` ![image-20201118094516426](https://img.kancloud.cn/d7/9a/d79a9a99bb076ae4f140595d4b393ec4_302x98.png) 然后我們創建一個自己的命名空間 roledemo ```bash kubectl create ns roledemo ``` ### 命名空間創建Pod 為什么要創建命名空間?因為如果不創建命名空間的話,默認是在default下 ```bash kubectl run nginx --image=nginx -n roledemo ``` ### 創建角色 我們通過 rbac-role.yaml進行創建 ![image-20201118094851338](https://img.kancloud.cn/0c/9a/0c9aea3b4e03119edcfd4a742a25c80f_705x239.png) tip:這個角色只對pod 有 get、list權限 然后通過 yaml創建我們的role ```bash # 創建 kubectl apply -f rbac-role.yaml # 查看 kubectl get role -n roledemo ``` ![image-20201118095141786](https://img.kancloud.cn/b2/9d/b29d3a133005a2d7d999d2a4634931f4_436x98.png) ### 創建角色綁定 我們還是通過 role-rolebinding.yaml 的方式,來創建我們的角色綁定 ![image-20201118095248052](https://img.kancloud.cn/2a/e7/2ae70505851f36d27c1672eee1623e87_1191x321.png) 然后創建我們的角色綁定 ```bash # 創建角色綁定 kubectl apply -f rbac-rolebinding.yaml # 查看角色綁定 kubectl get role, rolebinding -n roledemo ``` ![image-20201118095357067](https://img.kancloud.cn/2c/07/2c0773f290c6f39b41440b3c6901b199_549x128.png) ### 使用證書識別身份 我們首先得有一個 rbac-user.sh 證書腳本 ![image-20201118095541427](https://img.kancloud.cn/18/18/1818c8c06a1bab1257c4f4d831403160_319x324.png) ![image-20201118095627954](https://img.kancloud.cn/da/a7/daa72396e6fcecbaabeb83d84df2bc91_1104x297.png) 這里包含了很多證書文件,在TSL目錄下,需要復制過來 通過下面命令執行我們的腳本 ```bash ./rbac-user.sh ``` 最后我們進行測試 ```bash # 用get命令查看 pod 【有權限】 kubectl get pods -n roledemo # 用get命令查看svc 【沒權限】 kubectl get svc -n roledmeo ``` ![image-20201118100051043](https://img.kancloud.cn/4e/cf/4ecfa6128cfe79c4a6bc1570a3c7ea56_611x145.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看