使用 KES 的伺服器端物件加密
此程序假設單一本地主機運行 MinIO 和 KES 流程。如需有關運行 KES 的說明,請參閱 KES 文件。
注意
對於生產協調環境,請使用 MinIO Kubernetes Operator 來部署租戶,並啟用 SSE,並設定為與您的 KMS 搭配使用。
對於生產裸機環境,請參閱 Linux 上 MinIO 文件,以了解有關使用 KES 和您的 KMS 設定 MinIO 的教學課程。
作為此程序的一部分,您將
重要
在 MinIO 部署上啟用 SSE 會自動使用預設加密金鑰加密該部署的後端資料。
MinIO *需要* 存取 KES 和外部 KMS 才能解密後端並正常啟動。KMS **必須** 維護並提供對 MINIO_KMS_KES_KEY_NAME
的存取權限。您稍後無法停用 KES 或「取消」稍後的 SSE 設定。
先決條件
確保 KES 可以存取支援的 KMS 目標
此程序假設存在一個現有的 KES 安裝,該安裝已連接到支援的 KMS 安裝(兩者都可從本地主機存取)。請參閱您 支援的 KMS 目標的安裝說明,以部署 KES 並將其連接到 KMS 解決方案。
KES 操作需要未密封的目標
某些支援的 KMS 目標允許您密封或取消密封 Vault 執行個體。如果設定的 KMS 服務已密封,KES 會傳回錯誤。
如果您重新啟動或以其他方式密封您的 Vault 執行個體,KES 無法針對 Vault 執行任何加密操作。您必須取消密封 Vault,以確保正常操作。
請參閱您選擇的 KMS 解決方案的文件,以了解是否可能需要取消密封的更多資訊。
請參閱您選擇的支援 KMS 的 KES 文件中的組態說明
部署或確保存取 MinIO 部署
此程序提供有關修改 MinIO 部署的啟動環境變數,以透過 KES 和 KMS 目標啟用 SSE 的說明。
有關新生產部署的說明,請參閱 多節點多磁碟 (分散式) 教學課程。如需新的本地或評估部署的說明,請參閱 單節點單磁碟 教學課程。
在建立部署的環境檔案時,請暫停並切換回此教學課程,以包含必要的環境變數以支援 SSE。
對於現有的 MinIO 部署,您可以修改現有的環境檔案,並依照此程序中的指示重新啟動部署。
使用伺服器端加密部署 MinIO 和 KES
在開始這些步驟之前,請先建立以下資料夾
New-Item -Path "C:\minio-kes-vault\certs" -ItemType "directory"
New-Item -Path "C:\minio-kes-vault\config" -ItemType "directory"
New-Item -Path "C:\minio-kes-vault\minio" -ItemType "directory"
先決條件
根據您選擇的支援的 KMS 目標配置,您可能需要將 kes-server.cert
作為信任的憑證授權單位 (CA) 傳遞。請參閱客戶端文件以了解信任第三方 CA 的說明。
1) 建立 MinIO 設定
建立 MinIO 環境檔案
使用您偏好的文字編輯器建立環境檔案。以下範例使用 Windows 的記事本程式
notepad C:\minio-kes-vault\config\minio
將以下行新增至 Windows 主機上的 MinIO 環境檔案。有關基本 MinIO 環境檔案的詳細說明,請參閱部署 MinIO:單節點單硬碟 的教學。
此命令假設 minio-kes.cert
、minio-kes.key
和 kes-server.cert
憑證可在指定位置存取
# Add these environment variables to the existing environment file
MINIO_KMS_KES_ENDPOINT=https://127.0.0.1:7373
MINIO_KMS_KES_API_KEY=<API-key-identity-string-from-KES>
MINIO_KMS_KES_CAPATH=C:\minio-kes-vault\certs\kes-server.cert
MINIO_KMS_KES_KEY_NAME=minio-backend-default-key
注意
API 金鑰是與 KES 伺服器進行驗證的首選方式,因為它為 KES 伺服器提供了簡化且安全的驗證過程。
或者,指定
MINIO_KMS_KES_KEY_FILE
和MINIO_KMS_KES_CERT_FILE
,而不是MINIO_KMS_KES_API_KEY
。API 金鑰與基於憑證的驗證是互斥的。請指定 API 金鑰變數 或 金鑰檔案和憑證檔案變數 兩者其中之一。
本網站上的文件使用 API 金鑰。
MinIO 使用 MINIO_KMS_KES_KEY_NAME
金鑰執行以下加密操作
minio-kes
憑證僅啟用 MinIO 部署與 KES 伺服器之間的 mTLS。它們不會為其他客戶端連線到 MinIO 啟用 TLS。
2) 啟動 MinIO 伺服器
注意
您 必須 在啟動 MinIO 之前 啟動 KES。MinIO 部署需要存取 KES 作為其啟動的一部分。
啟動 MinIO 伺服器
在終端機或 Shell 中執行以下命令,以前景處理程序的形式啟動 MinIO 伺服器。
export MINIO_CONFIG_ENV_FILE=C:\minio-kes-vault\config\config\minio
C:\minio.exe server --console-address :9001
3) 產生新的加密金鑰
MinIO 要求根 KMS 上存在 EK 才能 使用該金鑰執行 SSE 操作。使用 kes key create
或 mc admin kms key create
來建立新的 EK 以用於 SSE。
以下命令使用 kes key create
命令在根 KMS 伺服器上建立新的外部金鑰 (EK),以用於加密 MinIO 後端。
export KES_SERVER=https://127.0.0.1:7373
export KES_CLIENT_KEY=C:\minio-kes-vault\certs\minio-kes.key
export KES_CLIENT_CERT=C:\minio-kes-vault\certs\minio-kes.cert
C:\kes.exe key create -k encrypted-bucket-key
4) 為儲存貯體啟用 SSE-KMS
您可以使用 MinIO 主控台或 MinIO mc
CLI 來使用產生的金鑰啟用儲存貯體預設的 SSE-KMS
開啟 MinIO 主控台,方法是在您偏好的瀏覽器中導覽至 http://127.0.0.1:9001 並使用指定給 MinIO 伺服器的根憑證登入。如果您使用不同的主控台接聽埠部署 MinIO,請將 9001
替換為該埠值。
登入後,建立新的儲存貯體並將其命名為您偏好的名稱。選取齒輪圖示以開啟管理檢視。
選取 加密 欄位旁的鉛筆圖示以開啟用於設定儲存貯體預設 SSE 方案的模式對話方塊。
選取 SSE-KMS,然後輸入在上一步中建立的金鑰名稱。
儲存變更後,嘗試上傳檔案至儲存貯體。在物件瀏覽器中檢視該檔案時,請注意側邊欄中繼資料包含 SSE 加密方案以及用於加密該物件的金鑰資訊。這表示該物件已成功加密。