在現代雲原生應用程式開發中,機密資料(Secrets)的管理是一項至關重要的任務。對於採用 GitOps 策略的團隊來說,如何安全地儲存和佈署機密資料更是一項挑戰。本文將介紹如何使用 Bitnami 的 Sealed Secrets,這是一個簡化 Kubernetes 機密資料管理流程的解決方案。
挑戰:GitOps 與機密資料管理
在 GitOps 的世界中,程式碼倉函式庫一的真實來源。這意味著所有應用程式設定,包括機密資料,都應該儲存在程式碼倉函式庫然而,將機密資料直接儲存在程式碼倉函式庫然是不安全的。為瞭解決這個問題,開發者通常會尋求各種機密管理解決方案。
Sealed Secrets:簡化的機密資料管理方案
Sealed Secrets 提供了一種更簡單的替代方案,無需依賴複雜的機密管理系統,例如 AWS Secrets Manager 或 HashiCorp Vault。Sealed Secrets 的運作方式是利用佈署在 Kubernetes 叢集中的 Sealed Secrets 控制器,使用其公鑰憑證來加密機密資料。只有控制器才能解密這些加密後的機密資料。
Sealed Secrets 的運作原理
- 產生加密金鑰:Sealed Secrets 控制器會產生一對公鑰和私鑰。
- 加密機密資料:開發者使用公鑰加密機密資料,產生 SealedSecret 清單檔案。
- 儲存 SealedSecret:SealedSecret 清單檔案可以安全地儲存在程式碼倉函式庫
- 佈署 SealedSecret:將 SealedSecret 佈署到 Kubernetes 叢集。
- 解密機密資料:Sealed Secrets 控制器使用私鑰解密 SealedSecret,並建立 Kubernetes Secret。
- 應用程式使用機密資料:應用程式可以像往往常一樣使用 Kubernetes Secret。
暴露機密資料給 Pod 的方法
有多種方法可以將機密資料暴露給 Pod,包括:
- 環境變數(Environment Variables):將機密資料作為環境變數注入到容器中。
- 卷掛載(Volume Mounts):將機密資料作為檔案掛載到 Pod 內,使其可以從檔案系統存取。
- Kubernetes 向下 API(Kubernetes Downward API):透過 Kubernetes 向下 API 將機密資料提供給應用程式,允許容器將機密資料作為 Pod 的元資料的一部分使用。
為了簡化範例,本文將重點介紹如何將機密資料作為環境變數注入。
實作範例:佈署一個使用機密資料的 Web 應用程式
以下是一個實作範例,展示如何使用 Sealed Secrets 佈署一個使用機密資料的 Web 應用程式。
前提條件
- 一個可用的 Kubernetes 叢集
- 一個容器映像登入檔
- 已安裝在 Kubernetes 叢集中的 Bitnami Sealed Secrets 控制器
kubeseal
CLI 工具,用於與 Sealed Secrets 控制器互動
安裝 kubeseal
CLI
kubeseal
命令列介面(CLI)是一個用於管理 Kubernetes 中 Sealed Secrets 的工具。它允許您將機密資料加密為 SealedSecret,然後只有在您的 Kubernetes 叢集中執行的 Sealed Secrets 控制器才能解密。
您可以參考官方安裝 kubeseal
CLI。
應用程式架構
- 取得公鑰憑證:開發者從 Sealed Secrets 控制器中檢索公鑰憑證。此憑證對於加密機密資料是必要的,以便只有 Sealed Secrets 控制器可以解密它們。
- 建立 Kubernetes Secret 清單:開發人員建立一個包含需要加密的敏感資訊的 Kubernetes Secret 清單檔案。
- 加密機密資料:使用
kubeseal
CLI 和取得的公鑰憑證,開發人員對 Kubernetes Secret 進行加密。 - 儲存 SealedSecret 清單:加密的 SealedSecret 清單已儲存到檔案中,準備提交到版本控制。
- 佈署 SealedSecret 清單:SealedSecret 清單將佈署到 Kubernetes 叢集。
- 建立 Kubernetes Secret:Sealed Secrets 控制器從 SealedSecret 物件建立 Kubernetes Secret。
- 應用程式使用機密資料:在 Kubernetes 叢集中執行的應用程式現在可以存取和使用 Kubernetes Secret。
範例專案
此範例將佈署一個虛擬的 Web 應用程式,該應用程式將使用一些機密資料。
Web 應用程式將從機密資料中讀取資料並將其用作環境變數。此範例包含兩個鍵值對:
- 使用者名稱(Username)
- 密碼(Password)
應用程式也包含一個 Ingress,可以在瀏覽器中檢視資料。
該應用程式根據 Flask,程式碼如下:
from flask import Flask
import os
app = Flask(__name__)
@app.route('/')
@app.route('/home')
def home():
html = f'''
<h1>Web App</h1>
<p>Welcome to the home page</p>
<p>Username: {os.environ.get('USERNAME')}</p>
<p>Password: {os.environ.get('PASSWORD')}</p>
'''
return html
if __name__ == '__main__':
app.run(debug=False, host='0.0.0.0', port=5050)
應用程式會從環境變數中取得值,這些值將暴露給 Pod。
建立映像並推播到登入檔
在應用程式資料夾中,有一個 Dockerfile 用於建立容器映像。前往應用程式資料夾並執行:
docker build -t <my_registry>/web-app-sealed-secret:0.1.0 .
請務必將 <my_registry>
替換為您的容器映像登入檔。
接下來,將映像推播到登入檔:
docker push <my_registry>/web-app-sealed-secret:0.1.0
Sealed Secrets 的優勢與限制
Sealed Secrets 具有以下優勢:
- 簡化機密資料管理:無需複雜的機密管理系統。
- 與 GitOps 整合:可以安全地儲存機密資料在程式碼倉函式庫
- 易於使用:
kubeseal
CLI 工具簡化了機密資料的加密和佈署流程。
Sealed Secrets 也存在一些限制:
- 依賴於 Sealed Secrets 控制器:如果控制器不可用,則無法解密機密資料。
- 金鑰管理:需要安全地儲存 Sealed Secrets 控制器的私鑰。
Sealed Secrets 提供了一種簡化 Kubernetes 機密資料管理流程的有效方法。它特別適合於小型專案和團隊,可以安全地儲存機密資料在程式碼倉函式庫並且 GitOps 工作流程整合。透過瞭解 Sealed Secrets 的運作原理和實作範例,開發者可以更好地保護 Kubernetes 應用程式中的機密資訊,確保應用程式的安全性。
在雲原生應用程式開發中,金鑰管理(Secrets Management)是至關重要的一環。傳統上,將金鑰儲存在版本控制系統中存在安全風險。Sealed Secrets 提供了一個解決方案,允許您將金鑰儲存在公開的儲存函式庫同時確保其安全性。本文將探討如何使用 Sealed Secrets 在 Kubernetes 環境中安全地管理金鑰,並整合到 GitOps 工作流程中。
準備工作:建立可用的映像
首先,確認您有一個可用的映像檔。以下是一個範例,展示如何將映像推播到私有容器登入檔:
docker tag web-app-sealed-secret:latest 192.168.64.54:30500/web-app-sealed-secret:0.1.0
docker push 192.168.64.54:30500/web-app-sealed-secret:0.1.0
這個過程將標記本地映像,並將其推播到指定的容器登入檔。這一步驟確保您的應用程式映像在 Kubernetes 叢集中可用。
佈署環境:設定 Kubernetes 清單檔案
在 k8s-manifests
資料夾中,您需要設定 Kubernetes 清單檔案,包括 Deployment、Ingress 和 Service。
Deployment 清單
在 Deployment 檔案 (deployment.yaml
) 中,請確保映像名稱設定正確:
spec:
containers:
- name: web-app
image: 192.168.64.54:30500/web-app-sealed-secret:0.1.0
Ingress 清單
您需要在 Ingress 檔案 (ingress.yaml
) 中更改主機名稱:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: web-app-ingress
namespace: gitops-sealed-secret-demo
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: <設定您的主機名稱 (Set Your Hostname)>
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: web-app-service
port:
number: 80
如果您沒有設定 Ingress Controller,您可以將流量直接轉發到 Service。
建立 Sealed Secret:加密您的金鑰
建立 Sealed Secret 清單檔案的步驟如下:
- 取得公鑰憑證: 從在 Kubernetes 中執行的 Sealed Secrets Controller 取得公鑰憑證。
- 建立 Kubernetes 金鑰: 在本地建立 Kubernetes 金鑰清單檔案,以保留您的金鑰資料。
- 加金鑰: 使用公鑰憑證透過
kubeseal
加密 Kubernetes 金鑰。
取得公鑰憑證
kubeseal
CLI 工具在 kubectl
環境中執行。要取得憑證,請執行以下命令:
kubeseal --fetch-cert --controller-name=sealed-secrets --controller-namespace=sealed-secrets > public-key-cert.pem
確保您擁有效的公鑰憑證,方法是檢查 public-key-cert.pem
檔案的內容。
建立 Kubernetes 金鑰
接下來,我們將建立一個 Kubernetes 金鑰。重要的是,我們不會將這個金鑰提交到 Git 儲存函式庫反,我們將建立另一個名為 Sealed Secret 的清單檔案。
kubectl create secret generic mysecret --dry-run=client --from-literal=username=admin --from-literal=password='supersecretpassword' -o yaml > mysecret.yaml
這個命令會產生一個 mysecret.yaml
檔案,其中包含您的金鑰資料。
使用 kubeseal 加密 Kubernetes 金鑰
使用 kubeseal
加密我們建立的金鑰。這將生成一個 Sealed Secret 的清單檔案。
kubeseal -n sealed-secret-demo --cert public-key-cert.pem --format yaml < mysecret.yaml > sealedsecret.yaml
請注意,如果您在 kubeseal
命令中不使用 -n
選項指定名稱空間,則清單檔案將包含您在 kubectl
連貫的背景與環境中設定的名稱空間。
透過 Sealed Secrets,您可以安全地在 Kubernetes 環境中管理金鑰,並將其整合到 GitOps 工作流程中。這種方法不僅提高了安全性,還簡化了金鑰的管理和佈署過程。玄貓(BlackCat)建議您在實務中多加嘗試,以確保您的金鑰管理策略既安全又高效。掌握 Sealed Secrets 的使用,將有助於您在雲原生應用程式開發中更好地保護敏感資料。
在雲原生應用程式的開發和佈署中,安全地管理金鑰(Secrets)至關重要。傳統上,直接將金鑰儲存在 Git 儲存函式庫極不安全的做法。Sealed Secrets 提供了一種解決方案,允許您加密 Kubernetes 金鑰,並將其安全地儲存在公共儲存函式庫例如 Git。本文將探討如何使用 Sealed Secrets 來保護 Kubernetes 環境中的敏感資訊,並將其整合到 GitOps 工作流程中。
Sealed Secrets:加金鑰的安全守護者
Sealed Secrets 是一種 Kubernetes 控制器和相關工具,旨在解決在 Git 儲存庫存金鑰的安全問題。它透過非對稱加密(Asymmetric Encryption)的方式,將金鑰加密成只有 Kubernetes 叢集才能解密的 SealedSecret 資源。
其核心概念是:
- 加密:使用只有 Kubernetes 叢集知道的公鑰(Public Key)加金鑰。
- 儲存:將加密後的 SealedSecret 儲存在 Git 儲存函式庫
- 解密:Kubernetes 叢集中的 Sealed Secrets 控制器使用私鑰(Private Key)解密 SealedSecret,並建立原始的 Kubernetes Secret 資源。
這種方法確保了即使有人獲得了 Git 儲存函式庫取權,也無法解金鑰,因為他們沒有私鑰。
佈署 Sealed Secrets 控制器
首先,您需要在 Kubernetes 叢集中佈署 Sealed Secrets 控制器。Bitnami 提供了一種簡單的方法來使用 Helm 安裝 Sealed Secrets:
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install sealed-secrets bitnami/sealed-secrets --namespace kube-system
這將在 kube-system
名稱空間(Namespace)中佈署 Sealed Secrets 控制器。
建立 SealedSecret
一旦 Sealed Secrets 控制器執行,您就可以建立 SealedSecret 資源。以下是一個範例:
首先,建立一個 Kubernetes Secret:
kubectl create secret generic mysecret \
--namespace gitops-sealed-secret-demo \
--from-literal=username=myuser \
--from-literal=password=mypassword
然後,使用 kubeseal
工具將其加密:
kubeseal --namespace gitops-sealed-secret-demo \
--format yaml < mysecret.yaml > sealedsecret.yaml
kubeseal
工具會連線到 Kubernetes API 伺服器(API Server),檢索公鑰,並使用它來加金鑰。sealedsecret.yaml
檔案包含加密後的金鑰,可以安全地儲存在 Git 儲存函式庫
檢視 SealedSecret 檔案
驗證您是否擁有密封的金鑰,方法是列印出 sealedsecret.yaml
檔案:
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: mysecret
namespace: gitops-sealed-secret-demo
spec:
encryptedData:
password: AgB0rhJWYqojdSVcn+49XQGnKkN+j79cza08goDBJrMd3dX7qTbgJJ+Klko929f7VUBv0LOP1gQBz/XJEMmLze4iqIHhz/w9ZDmxEOOjufTSYQy1/lztSMKb6qVt54Hj038iKbq43zIL3YgUZiF5aqqpj+F9CIoQKhsPACtM/VTN3sYHy1JwWyH6M/89uPjj/jPE9Khblm9iKIsx2BfqipR0K8fMOo9XtX+fUA4L8ORJBYKjN4yaGihnyTZV/3HKZd3gOsuL70GL7oPrBWLOh1ERVhh+dnoIv2RMPMJ94le53Fi8QWdBGI3zznPrf9fWDSwJa/76Zx3leqSTcBTwSftdcFTDpFEKd30qllav8lTMvr/jWsHKKrIZLFLZZ+tyBopHyCx3DrWoI39v9w1TilrVtL6+W4Uc/UAxdyHRLio9glWxANH+GjvLHHRrxsnGHtRqSEHNP2PeZ+EEhAKYSdOXURMWAbpIVbTiwd4NT6mD14plYx0Gxn+KLJkwhLFKhVUZPCjv+0SJhzHseW+xgNyoMHdq4bvYaICmSmmZLbMaqaPVeSWCElpiSzVCFLpYQleP6CDnnoQMRliNd84WAv9SjKRFQcuqM3NOp8gREBG05ucNKPk26UUF1+3+Xef2i9LEAkHtVDBumYjx07SUiCZ6usU2xxLaDttpOlp9xQdA/Mm9LXvCGS/N6a9pxE0Hwllo+geU/nJWgHU0LKV+9w==
username: AgBaNDSRzBL/FqZUZXoGuttfOdecsB5Jqfiau7dJJFvqW4PLwV513Bhv9NLe59zavxg+dZe27HGszSZfbt0mDtiw4Usjk5icWnF9ZrZNAlim4cPJNslnYUxU8A5bTPsuQ9ZBJ88z2CEa7O6I08i5CpIyp6L6A2r2Y/S5Tz4YKyKbXzTAW8kBoOCsCqJ/5XsfKpgNBedP+xDYi+U3UxvET95RS/1HFPE8mTERdrqzTflNmduccgyJ34yuANFbi7YXO8UPE+4Ogcpw6LEPRKHNi4sajPbxCnAXZtiw9X30/DGF64V4RtB413U5m+3N9OrkQmK/Uq/YBsz7pr66C0JUyMAOeEdITfWEy8qtT5N4eG1PESr75zKz/n45kSXkkqbbv6WXCtFhKFd0Lrn9YHIfImgny93ZhyCjEnKRpGmno82Ut1PuykiPBCxnECORGn7+GxlWScdkRYt4Tv2c4ZctZUsSzP3Hrh1IIACMDw7smB879cXgXebKkEyZltPyyBMLN4gxcRw59Vk495LEvUAp4cteVwywPlx6mhPUX1gLMpqiXk5SXHT296C8m5sjNtGmzgx9ddDnmIzL4uL2ComtnxkENDupPyHk/FX4XFahN+FvaGZ+5hQh9eg91zN37reXY2uS8Ss019YIoFUjUBcPDA9FPpF9RoN/KzcQaZRV1PPl886ZJT6FnnjHFqdbMmSwXE5wsdu4uA==
template:
metadata:
creationTimestamp: null
name: mysecret
namespace: gitops-sealed-secret-demo
您可以安全地將 sealedsecret.yaml
新增到您的其他清單檔案中。它只能由 Sealed Secrets 控制器解密,因為它保留了私鑰憑證(Private Key Certificate)。請確保您的佈署清單檔案參照了正確的金鑰名稱,在我們的例子中是 mysecret
:
spec:
containers:
- name: web-app
image: 192.168.64.54:30500/web-app-sealed-secret:0.1.0
env:
- name: USERNAME
valueFrom:
secretKeyRef:
name: mysecret
key: username
- name: PASSWORD
valueFrom:
secretKeyRef:
name: mysecret
key: password
ports:
- containerPort: 5000
提交與佈署
您可以將新的 Sealed Secret 檔案新增到您的 Git 儲存函式庫
git add k8s-manifests/sealed_secret.yaml
git commit -m "Add SealedSecret for application credentials"
git push origin <branch-name>
現在由您決定如何佈署應用程式。在我的情況下,我正在執行 ArgoCD。如果您也這樣做,您需要為 Web 應用程式準備一個應用程式清單檔案。ArgoCD 應用程式清單範例:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: gitops-secret-example
namespace: argocd
spec:
project: default
source:
repoURL: 'git@github.com:devoriales/gitops-secret-example.git'
path: k8s-manifests
targetRevision: main
destination:
server: 'https://kubernetes.default.svc'
namespace: gitops-sealed-secret-demo
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
如果您沒有 ArgoCD,您可以直接使用 kubectl
應用清單檔案:
kubectl apply -f k8s-manifests/
輸出:
deployment.apps/web-app configured
ingress.networking.k8s.io/web-app-ingress configured
Sealed Secrets 的優勢與限制
優勢:
- 安全性:透過加密保護敏感資訊,防止未授權存取。
- GitOps 友善:允許將金鑰儲存在 Git 儲存函式庫並透過 GitOps 工作流程進行管理。
- 易於使用:
kubeseal
工具簡化了金鑰加密過程。 - 自動化:Sealed Secrets 控制器自動解金鑰,並建立 Kubernetes Secret 資源。
限制:
- 需要額外的控制器:需要在 Kubernetes 叢集中佈署 Sealed Secrets 控制器。
- 金鑰輪換:金鑰輪換需要重新加密 SealedSecret 資源。
- 私鑰管理:需要安全地管理 Sealed Secrets 控制器的私鑰。
Sealed Secrets 提供了一種安全與方便的方法來管理 Kubernetes 環境中的金鑰,並將其整合到 GitOps 工作流程中。透過加金鑰,您可以安全地將其儲存在公共儲存函式庫並確保只有 Kubernetes 叢集才能解密它們。雖然存在一些限制,但 Sealed Secrets 的優勢使其成為雲原生應用程式中金鑰管理的理想選擇。玄貓(BlackCat)建議您在評估金鑰管理方案時,將 Sealed Secrets 納入考量,以提升應用程式的安全性與可維護性。
在雲原生應用程式的開發與佈署中,金鑰管理(Secret Management)始終是一項重要的挑戰。傳統的 Kubernetes Secret 並非真正的安全,因為它們以 Base64 編碼儲存,容易被解碼。為瞭解決這個問題,Sealed Secrets 提供了一種更安全的方案,允許開發者將加密後的金鑰儲存在 Git 儲存函式庫同時確保只有 Kubernetes 叢集才能解密這些金鑰。本文將探討 Sealed Secrets 的原理、設定與實際應用。
Sealed Secrets:更安全的金鑰管理方案
Sealed Secrets 是一種 Kubernetes 控制器,它使用非對稱加密(Asymmetric Encryption)來加密 Kubernetes Secret。這種加密方式使用公鑰(Public Key)加密,私鑰(Private Key)解密,確保只有擁有私鑰的 Kubernetes 叢集才能解金鑰。這使得開發者可以安全地將 SealedSecret 的 YAML 檔案儲存在公開的 Git 儲存函式庫而不用擔心敏感資訊外洩。
Sealed Secrets 的運作原理
Sealed Secrets 的核心在於其非對稱加密機制。以下是其運作原理:
- 產生金鑰對(Key Pair): Sealed Secrets 控制器在啟動時會產生一對公鑰和私鑰。
- 公鑰加密(Public Key Encryption): 開發者使用公鑰加密 Kubernetes Secret,生成 SealedSecret 物件。
- 儲存 SealedSecret: SealedSecret 物件可以安全地儲存在 Git 儲存函式庫
- 私鑰解密(Private Key Decryption): Sealed Secrets 控制器監聽 SealedSecret 物件的建立,並使用私鑰解密,生成 Kubernetes Secret。
由於私鑰只存在於 Kubernetes 叢集中,因此只有叢集才能解密 SealedSecret,確保金鑰的安全性。
設定 Sealed Secrets
以下是在 Kubernetes 叢集中設定 Sealed Secrets 的步驟:
- 安裝 Sealed Secrets 控制器: 可以使用 Helm 或 YAML 檔案安裝 Sealed Secrets 控制器。
- 取得公鑰憑證(Public Key Certificate): 取得 Sealed Secrets 控制器的公鑰憑證,用於加密 Kubernetes Secret。
- 建立 SealedSecret: 使用
kubeseal
CLI 工具或 YAML 檔案建立 SealedSecret。 - 佈署 SealedSecret: 將 SealedSecret 佈署到 Kubernetes 叢集。
建立和加密 Kubernetes 金鑰
首先,你需要一個 Kubernetes Secret。你可以使用 kubectl
命令建立一個:
kubectl create secret generic mysecret \
--from-literal=username=admin \
--from-literal=password=supersecretpassword \
-o yaml --dry-run=client | kubeseal --format yaml > sealedsecret.yaml
這個命令會建立一個名為 mysecret
的 Kubernetes Secret,包含 username
和 password
兩個鍵值對。然後,它會使用 kubeseal
工具將這個 Secret 加密成 SealedSecret,並儲存到 sealedsecret.yaml
檔案中。
將 SealedSecret 清單提交到 Git 倉函式庫現在,你可以將 sealedsecret.yaml
檔案提交到你的 Git 倉函式庫於 SealedSecret 已經被加密,因此即使檔案被公開,也不會洩漏敏感資訊。
透過 ArgoCD 佈署應用程式
如果你的 Kubernetes 叢集使用 ArgoCD 進行佈署,你可以將 SealedSecret 的 YAML 檔案新增到 ArgoCD 的應用程式清單中。ArgoCD 會自動將 SealedSecret 佈署到 Kubernetes 叢集,並由 Sealed Secrets 控制器解密成 Kubernetes Secret。
驗證網頁應用程式和金鑰值
佈署完成後,你可以驗證你的網頁應用程式是否正常執行,並且金鑰值是否正確。你可以檢查 Kubernetes Secret 是否已成功建立,並驗證應用程式是否可以正常讀取金鑰。
Sealed Secrets 的優勢與限制
Sealed Secrets 提供了許多優勢,包括:
- 安全性: 使用非對稱加密保護金鑰,防止敏感資訊外洩。
- GitOps 友善: 允許將加密後的金鑰儲存在 Git 儲存函式庫符合 GitOps 原則。
- 易於使用: 提供簡單易用的 CLI 工具,方便建立和管理 SealedSecret。
然而,Sealed Secrets 也有一些限制:
- 需要額外的控制器: 需要在 Kubernetes 叢集中安裝 Sealed Secrets 控制器。
- 金鑰管理: 需要妥善管理 Sealed Secrets 控制器的私鑰。
解密 Sealed Secret 的方法
雖然 Sealed Secrets 的主要目的是保護金鑰,但在某些情況下,你可能需要解密 Sealed Secret。以下是解密 Sealed Secret 的步驟:
- 取得私鑰: 從 Sealed Secrets 控制器所在的名稱空間取得私鑰。
- 使用
kubeseal
解密: 使用kubeseal
CLI 工具和私鑰解密 SealedSecret。
Sealed Secrets 提供了一種安全、可靠的 Kubernetes 金鑰管理方案,特別適合遵循 GitOps 原則的團隊。透過使用 Sealed Secrets,開發者可以安全地將加密後的金鑰儲存在 Git 儲存函式庫同時確保只有 Kubernetes 叢集才能解密這些金鑰。這不僅提高了金鑰的安全性,也簡化了金鑰管理的流程。在實際應用中,請務必妥善管理 Sealed Secrets 控制器的私鑰,並定期更新金鑰,以確保金鑰的安全性。透過本文的介紹,相信您已對 Sealed Secrets 有更深入的瞭解,並能在您的 Kubernetes 環境中安全地管理金鑰。