開始使用

這個快速入門將向您展示如何設定一個本地的 KES 伺服器,將金鑰儲存在記憶體中。

非永久性
記憶體中的金鑰儲存將在重新啟動時遺失所有狀態。它僅應用於測試目的。
K E S C l i e n t K E S S e r v e r I n - M e m o r y

快速入門

開發模式

對於快速開發測試伺服器,請使用

kes server --dev

這會在 127.0.0.1:7373 上啟動一個 KES 伺服器,並將金鑰儲存在記憶體中。

  1. 安裝 KES 二進制檔

    您可以通過以下方式安裝 KES 二進制檔

    • 下載預編譯的 二進制發行版本
    • 提取 Docker 映像檔
    • 發出 Homebrew 命令
    • 使用您的 Go 工具鏈從 原始碼 編譯

    選擇您想使用的方法的選項卡。

    通過從您的提示符或終端機執行以下命令來確認命令是否可用

    kes --help
    

    您可能需要針對您的作業系統結構和 PATH 調整命令,例如使用 ./kes --help

  2. 產生 KES 伺服器私鑰和憑證

    為 KES 伺服器產生 TLS 私鑰和憑證。此金鑰用於網域名稱驗證。

    KES 伺服器是 預設安全的,並且只能使用 TLS 執行。在本指南中,為了簡單起見,我們使用自我簽署的憑證。

    以下命令會產生一個新的 TLS 私鑰(private.key)和一個為 IP 127.0.0.1 和 DNS 名稱 localhost 發佈的自我簽署 X.509 憑證(public.crt

    $ kes identity new --ip "127.0.0.1" --key "private.key" --cert "public.crt" localhost
    
      Private key:  private.key
      Certificate:  public.crt
      Identity:     2e897f99a779cf5dd147e58de0fe55a494f546f4dcae8bc9e5426d2b5cd35680
    
    現有金鑰和憑證
    如果您已經有 TLS 私鑰和憑證,例如來自 WebPKI 或內部憑證授權機構,則可以改用它們。請記住調整 tls 組態區段。
  3. 產生用戶端憑證

    用戶端應用程式需要憑證才能存取 KES 伺服器。從用戶端的金鑰和憑證產生 API 金鑰,以向 KES 伺服器驗證用戶端應用程式。

    以下命令會為 MyApp 產生新的 TLS 私有/公開金鑰對

    $ kes identity new --key=client.key --cert=client.crt MyApp
    
      Private key:  client.key
      Certificate:  client.crt
      Identity:     02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b
    

    識別碼 02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267bclient.crt 中公開金鑰的唯一指紋。您可以隨時重新計算指紋

    $ kes identity of client.crt
    
      Identity:  02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b
    
  4. 設定 KES 伺服器

    建立 KES 伺服器組態檔:config.yml。請確保 policy 區段中的識別碼與您的 client.crt 識別碼相符。

    address: 0.0.0.0:7373 # Listen on all network interfaces on port 7373
    
    admin:
      identity: 02ef5321ca409dbc7b10e7e8ee44d1c3b91e4bf6e2198befdebee6312745267b # The client.crt identity
    
    tls:
      key: private.key    # The KES server TLS private key
      cert: public.crt    # The KES server TLS certificate
    
  5. 啟動 KES 伺服器

    啟動 KES 伺服器執行個體

    kes server --config config.yml --auth off
    

KES CLI 存取

  1. 設定 KES_SERVER 端點

    此變數會告訴 KES CLI 要存取哪個 KES 伺服器。

    export KES_SERVER=https://127.0.0.1:7373
    
  2. 使用用戶端憑證

    這些變數會告訴 KES CLI 要使用哪些憑證來存取 KES 伺服器。

    export KES_CLIENT_CERT=client.crt
    
    export KES_CLIENT_KEY=client.key
    
  3. 執行操作

    現在,我們可以執行任何 API 操作。由於我們使用的是管理員識別碼,因此我們不必擔心原則權限。

    kes key create my-key-1
    

    然後,我們可以使用該金鑰產生新的資料加密金鑰

    $ kes key dek my-key-1
    {
      plaintext : UGgcVBgyQYwxKzve7UJNV5x8aTiPJFoR+s828reNjh0=
      ciphertext: eyJhZWFkIjoiQUVTLTI1Ni1HQ00tSE1BQy1TSEEtMjU2IiwiaWQiOiIxMTc1ZjJjNDMyMjNjNjNmNjY1MDk5ZDExNmU3Yzc4NCIsIml2IjoiVHBtbHpWTDh5a2t4VVREV1RSTU5Tdz09Iiwibm9uY2UiOiJkeGl0R3A3bFB6S21rTE5HIiwiYnl0ZXMiOiJaaWdobEZrTUFuVVBWSG0wZDhSYUNBY3pnRWRsQzJqWFhCK1YxaWl2MXdnYjhBRytuTWx0Y3BGK0RtV1VoNkZaIn0=
    }
    

升級 KES

若要升級 KES,請按照開始使用步驟操作,並在每個 KES 伺服器節點上將 KES 二進制檔替換為較新的版本。

由於 KES 處理密文的方式有所變更,因此在升級到 2024-02-29T08-12-28Z 或更高版本後,無法還原到較早的版本。MinIO 建議在升級生產環境之前,始終在較低的環境(例如預備環境或開發環境)中進行測試。

參考資料