成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何保護Kubernetes的機密信息

安全 云安全
為了保證敏感信息的安全性,Secret對象應該被加密,并且應該使用Kubernetes RBAC機制對訪問進行控制。如果你正在使用AWS公有云來托管Kubernetes集群,則可以利用AWS密鑰管理服務(KMS)對靜態數據進行加密。

現如今開發的大多數應用程序,或多或少都會用到一些敏感信息,用于執行某些業務邏輯。比如使用用戶名密碼去連接數據庫,或者使用秘鑰連接第三方服務。在代碼中直接使用這些密碼或者秘鑰是最直接的方式,但同時也帶來了很大的安全問題,如何保證密碼、秘鑰不被泄露。

[[416050]]

如果你的應用程序已經被容器化,且使用Kubernetes(k8s),那情況會好很多。Kubernetes提供了一個原生資源,稱為“Secret”,可用于管理和存儲敏感信息。敏感信息被編碼為未加密的Base64格式,并被存儲在Secret對象中。Secret可以作為環境變量被注入到Pod內部的容器中,也可以作為數據卷掛載到容器內部。

為了保證敏感信息的安全性,Secret對象應該被加密,并且應該使用Kubernetes RBAC機制對訪問進行控制。如果你正在使用AWS公有云來托管Kubernetes集群,則可以利用AWS密鑰管理服務(KMS)對靜態數據進行加密。

Kubernetes的清單文件通常被提交到代碼倉庫中以進行版本控制。但是你可能不希望將敏感信息以純文本或Base64編碼字符串的形式提交到Git代碼倉庫中。我們都應該知道為什么,這不安全!但是,你在Kubernetes集群之外將敏感數據保存在何處,以確保它們是安全的?

有很多方法可以解決這個問題。下面列出了其中幾個:

選項1:加密純文本敏感數據,然后再提交到Git代碼倉庫中

  • 使用對稱或非對稱算法加密純文本敏感數據。
  • 使用Kubernetes Custom Resource Definition(CRD)創建自定義的Secret對象,以使用加密的文本數據。
  • 創建一個自定義Kubernetes控制器,該控制器讀取自定義Secret對象中的加密信息,并在運行時解密,并創建一個原生的Secret對象。

使用這種方法,你可以將加密的數據提交到Git代碼倉庫中。而且它沒有風險,因為數據是加密的,只能用你的私鑰解密。但是你把私鑰放在哪里?

如何存儲加密密鑰和管理整個加解密過程,可以使用Bitnami的Sealed Secrets。

選擇2:使用第三方服務來存儲敏感數據

  • 你可以將敏感數據存儲到第三方服務中,如AWS Secrets Manager或HashiCorp Vault。
  • 創建自定義Kubernetes控制器,基于配置從這些服務中獲取機密信息,并在運行時創建Kubernetes Secret對象。

External Secrets項目可以幫助你實現選項2。

你還可以增強應用程序邏輯,以便在應用程序啟動時從第三方服務讀取機密信息,但這里的整體思想是將機密信息管理與應用程序業務邏輯分離開來,并利用Kubernetes的功能來進行相同的管理。

快速概覽Sealed Secrets

在Sealed Secret開源項目中,你可以將你的Secret加密為一個SealedSecret,這樣就可以安全地存儲,甚至可以存儲到公共存儲庫中。SealedSecret只能由運行在目標集群中的控制器解密,其他人,甚至包括原始作者,都無法從SealedSecret獲得原始的Secret。

Sealed Secrets由兩部分組成:

  • 服務器端的控制器
  • 客戶端工具:kubeseal

kubeseal使用非對稱加密來加密數據,然后只有服務端的控制器才能解密數據。

這些加密數據被編碼在SealedSecret資源中,你可以將其視為創建Secret的配方。

下面是如何使用Sealed Secrets來管理Secret的具體步驟。

1、安裝kubeseal,這是一個客戶端工具,可以幫助你創建SealedSecret

 

  1. > wget https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.15.0/kubeseal-linux-amd64 -O kubeseal  
  2. > sudo install -m 755 kubeseal /usr/local/bin/kubeseal 

2、安裝服務器端控制器,為SealedSecret創建Custom Resource Definition(CRD)

 

  1. > kubectl apply -f https://github.com/bitnami-labs/sealed-secrets/releases/download/v0.15.0/controller.yaml 
  2.  
  3. rolebinding.rbac.authorization.k8s.io/sealed-secrets-service-proxier created 
  4. role.rbac.authorization.k8s.io/sealed-secrets-key-admin created 
  5. clusterrole.rbac.authorization.k8s.io/secrets-unsealer created 
  6. deployment.apps/sealed-secrets-controller created 
  7. customresourcedefinition.apiextensions.k8s.io/sealedsecrets.bitnami.com created 
  8. service/sealed-secrets-controller created 
  9. clusterrolebinding.rbac.authorization.k8s.io/sealed-secrets-controller created 
  10. serviceaccount/sealed-secrets-controller created 
  11. role.rbac.authorization.k8s.io/sealed-secrets-service-proxier created 
  12. rolebinding.rbac.authorization.k8s.io/sealed-secrets-controller created 

3、驗證sealed-secret controller Pod是否運行

 

  1. > kubectl get pods -n kube-system -l name=sealed-secrets-controller 
  2.  
  3. NAME                                         READY   STATUS RESTARTS   AGE 
  4. sealed-secrets-controller-7c766b885b-d5r2r   1/1     Running   0          7m39s 

如果你查看Pod的日志,你將看到控制器為自己創建的一對秘鑰,這對秘鑰將被用于加解密過程。

 

  1. > kubectl logs sealed-secrets-controller-7c766b885b-d5r2r -n kube-system 
  2.  
  3. controller version: v0.15.0 
  4. 2021/05/01 20:13:34 Starting sealed-secrets controller version: v0.15.0 
  5. 2021/05/01 20:13:34 Searching for existing private keys 
  6. 2021/05/01 20:13:35 New key written to kube-system/sealed-secrets-keymt6dg 
  7. 2021/05/01 20:13:35 Certificate is  
  8. -----BEGIN CERTIFICATE----- 
  9. MIIErjCCApagAwIBAgIRAJqYfaZsali26I8pvBXoFGYwDQYJKoZIhvcNAQELBQAw 
  10. ADAeFw0yMTA1MDEyMDEzMzVaFw0zMTA0MjkyMDEzMzVaMAAwggIiMA0GCSqGSIb3 
  11. DQEBAQUAA4ICDwAwggIKAoICAQDp/yO5PY8ACHBDuguhtfpOwlbScK9hZorJloyx 
  12. ixVCc57j1zMSX0pSVcrk1Yuyf6sYvBQtDi16kM70z6y/ODiz+9g87K/jY7B0UAoi 
  13. mpzM/T0tWJiG9ixyNMZhHoNREauokSlbERq3Jl8ZNTfmxHWhLH7DhkJ7MdpQfMpK 
  14. a3XHcSZyz1mXFqv+OSCCwllWCRHmHgp/vqudAv8+NYm0gnAxKt2fjlv/ObX8J1RI 
  15. CtLnlsCpp/9SyVcSTeYYaqjUsI7fTUZ7tkTE/bdQHwf3xe4DhUty7xLqMF1OPSPw 
  16. EetL8fGO0VqoSQFKQ0Bf78+8vhAA2cwkuqB6vQQm9pT3yC5niSCUo+jwFcfyknjr 
  17. yx8DINbq6K9B40EXh8X7w4I6zwYpyT0GoNU54wW0ki8pHRm7EnFeBOkUvNspzmKn 
  18. t/EZEDVq74Kkl/BRNRvKHYlwudSoJuvvX6JM8DVvRp0lMPnXnG3RLSmCP3gEFQBZ 
  19. DhbnkwO+6ADX9Q4vyqelWoHWdVGVULDlMDhSzvEhFFgPcZXzWTShH81vfl8M6lpT 
  20. U0ysZkA6i3A29XEJpPj35yWPBDWmKF5fLM3ChMt/NSJEeoJN1RboPDAgVUTxEW59 
  21. q+Tq09/zlYD7Ch8PNc3IWNXjFNXmCAAOw9Z1VBbD8p6LrC5JvBtPoWYqufWVXQD9 
  22. KDe+6wIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAAEwDwYDVR0TAQH/BAUwAwEB/zAN 
  23. BgkqhkiG9w0BAQsFAAOCAgEAvu//VzDREYZPPIW1maTxo9C/nHEEuOP0rQU3zVQr 
  24. bBYf8N0b5wpCllESCgi0JDJJXrE8KrjfdtawjoBrBlHOdWHF+fIot2KbrC/i37em 
  25. /ulMAgiiJzrKM/ExJuCuH60fsSIx4wrg46tQpU8jHFWq7nGnsaE+UN3QPjuvQ+qo 
  26. KKDSBLDxLx+q9vBfaXElblh4okUI8Pr4UEEJrYiPzPM6nA9EPpy53N3si4jyDJJb 
  27. 2IsCUa2bW6iBhpyZOQQUPn22ziWRQ/sYYNmtP/gX0rwtk+Rr8TTdzPYGZcYfMQ6O 
  28. TFq4Zo2/TnpCL/CUr2DiSuF2qdWGGvbQOENYq2FNuDI4zeljElcZHXA8nhpbNSJs 
  29. 7VNqqz5ZTFCKyL0Gn6SawGT7EdwBT2AD3F33Qd/7bXG/On7KdVw6FKHbZOR2RcoS 
  30. YFQv7Xr8g/4atQjxDa7R5+zkxd5unsvpFhYM1UfNJc4cjJ7SmfCCHoPGiwZ0OgqB 
  31. 6SvUVU64QmMMJ/jYAJkYMOakSHaRITHAvvBjpAMKxSjjb7qZD5FnpXLhRY9lNiY6 
  32. MnnQRxJskCw+R6geIAHTMzAofMfc1haIEr+3oMFZfyh1LFFsz3B4hMxXYKrWYDje 
  33. +96bhAY9X7L0UfREjmw8HCeZneEuBJjX9z/PyIeMdhViLh9uO/MAL1MBxdBVA55+ 
  34. LW8= 
  35. -----END CERTIFICATE----- 
  36.  
  37. 2021/05/01 20:13:35 HTTP server serving on :8080 

運行以下命令查看公鑰/私鑰信息。

  1. > kubectl get secret -n kube-system -l sealedsecrets.bitnami.com/sealed-secrets-key -o yaml 

4、創建一個名為secrets.yaml的Secret清單文件

 

  1. apiVersion: v1 
  2. data: 
  3. DB_PWD: cGFzc3dvcmQ= //base64 encoded 
  4. DB_USER: cm9vdA==    //base64 encoded 
  5. kind: Secret 
  6. metadata: 
  7. name: db-secrets 

現在讓我們使用kubeseal命令,將secrets.yaml轉變為SealedSecret資源清單文件。

 

  1. > kubeseal --format=yaml < secret.yaml > sealed-secret.yaml 
  2.  
  3. > cat sealed-secret.yaml  
  4.  
  5. apiVersion: bitnami.com/v1alpha1 
  6. kind: SealedSecret 
  7. metadata: 
  8. creationTimestamp: null 
  9. name: db-secrets 
  10. namespace: default 
  11. spec: 
  12. encryptedData: 
  13. DB_PWD: AgDaCRi27RV4/sVI2ok7JlqBSKT5+c7gGJog+... 
  14. DB_USER: AgAZG67CrrOBnyKIKha7xhJulr+CQGPaE/PpsjvY8jJR0IDO2... 
  15. template: 
  16. metadata: 
  17.   creationTimestamp: null 
  18.   name: db-secrets 
  19.   namespace: default 

在上面的步驟中,kubeseal從Kubernetes集群獲取公鑰并使用該公鑰加密數據。

5、讓我們使用SealedSecret資源清單文件,在Kubernetes中創建資源。

  1. > kubectl apply -f sealed-secret.yaml 

如果你再次檢查控制器的日志,你將看到控制器攔截了請求,并解密來自SealedSecret的加密數據,數據被解密后,將創建Kubernetes的Secret對象。

 

  1. > kubectl logs sealed-secrets-controller-7c766b885b-d5r2r -n kube-system  
  2. 2021/05/01 20:38:06 Updating default/db-secrets  
  3. 2021/05/01 20:38:06 Event(v1.ObjectReference{Kind:"SealedSecret", Namespace:"default"Name:"db-secrets", UID:"fd89a7e7-c81a-4110-9de6-6b65195169d3", APIVersion:"bitnami.com/v1alpha1", ResourceVersion:"19365", FieldPath:""}): type: 'Normal' reason: 'Unsealed' SealedSecret unsealed successfully 

一旦創建了Kubernetes Secret對象,就可以將它作為環境變量注入到容器中,或者作為數據卷掛載。

上面步驟4中創建的SealedSecret資源清單文件可以被提交到Git代碼倉庫中。secrets.yaml文件可以丟棄,因為它不再需要了。被存儲在sealed-secret.yaml文件中的數據是安全的,它是被加密的,且只能由運行在k8s集群中的Controller解密。

希望這篇文章能讓你知道如何保護Kubernetes的機密信息。

責任編輯:未麗燕 來源: Dockone.io
相關推薦

2010-12-28 09:29:00

2009-07-07 22:43:15

信息安全DLP億賽通

2009-04-28 23:24:07

2011-02-14 09:53:51

2010-11-15 09:59:00

2011-05-04 11:17:40

飛魚星防火墻路由器

2023-06-09 15:49:55

2015-05-26 09:44:37

2009-02-09 09:19:30

2022-09-21 09:03:46

機密計算數據安全

2025-02-26 11:07:45

2011-08-03 13:03:46

2023-03-21 18:37:45

2022-12-06 17:32:18

2010-09-30 12:56:33

企業網絡機密保護

2014-08-14 17:01:23

斯諾登機密信息泄露

2024-03-11 15:41:50

2021-10-04 11:15:28

區塊鏈技術秘密

2020-04-16 08:00:00

Ansible Vau敏感數據加密

2010-07-05 14:58:21

企業機密信息泄漏
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 深夜福利亚洲 | 亚洲精品久久久 | 亚洲欧美综合 | 一区二区高清 | 成人九区 | 国产精品视频免费观看 | 国产在线精品一区二区三区 | 日本精品在线观看 | 久久综合一区二区 | 999精品视频| 嫩草视频入口 | 日中文字幕在线 | 成人精品一区二区三区中文字幕 | 亚洲精品亚洲人成人网 | 国精品一区 | 男人电影天堂 | 毛片久久久 | 欧美成人精品在线观看 | 久久久久久亚洲 | 啪视频在线 | 中文字幕一区二区三区精彩视频 | 操操操av | 天天久久 | 免费在线看黄 | 久久综合伊人 | 成人国产免费观看 | 日韩爱爱网 | 国产成人精品久久二区二区91 | 午夜爽爽爽男女免费观看 | 欧美一级二级视频 | 国产欧美精品一区二区色综合朱莉 | 成人欧美一区二区三区黑人孕妇 | 91精品国产综合久久久亚洲 | 国产成都精品91一区二区三 | 91看片免费版 | 久草资源| 国产伦一区二区三区四区 | 国产一级电影网 | 宅女噜噜66国产精品观看免费 | 欧美国产视频一区二区 | 狠狠色综合欧美激情 |