Share via


管理 Azure 容器應用程式中的祕密

Azure 容器應用程式可讓您的應用程式安全地儲存敏感性組態值。 一旦在應用層級定義秘密,安全值即可用於容器應用程式中的修訂。 此外,您可以在縮放規則內參考受保護的值。 如需搭配 Dapr 使用秘密的資訊,請參閱 Dapr 整合

  • 秘密的適用範圍是應用程式,不包含應用程式的任何特定修訂版本。
  • 新增、移除或變更秘密不會產生新的修訂。
  • 每個應用程式修訂版本都可以參考一或多個秘密。
  • 多個修訂版本可以參考相同的秘密。

更新或刪除的秘密不會自動影響您應用程式中現有的修訂。 當秘密更新或刪除時,您可以使用下列兩種方式之一回應變更:

  1. 新增修訂版本。
  2. 重新啟動現有的修訂版本。

在刪除秘密之前,請先部署不再參考舊密碼的新修訂版本。 然後停用參考秘密的所有修訂。

定義秘密

秘密會定義為一組名稱/值組。 每個秘密的值會直接指定或指定為儲存在 Azure 金鑰保存庫 中的秘密參考。

在 Container Apps 中儲存秘密值

當您透過入口網站或透過不同的命令列選項定義秘密時。

  1. 移至Azure 入口網站 中的 容器應用程式。

  2. [設定] 區段底下 ,選取 [ 秘密 ]。

  3. 選取新增

  4. 在 [ 新增秘密 內容] 窗格中,輸入下列資訊:

    • 名稱 :秘密的名稱。
    • 類型 :選取 [容器應用程式秘密 ]。
    • :秘密的值。
  5. 選取新增

參考來自金鑰保存庫的秘密

當您定義秘密時,您會建立 Azure 金鑰保存庫中所儲存秘密的參考。 Container Apps 會自動從金鑰保存庫擷取秘密值,並讓它成為容器應用程式中的秘密。

若要參考來自金鑰保存庫的秘密,您必須先在容器應用程式中啟用受控識別,並授與金鑰保存庫秘密的身分識別存取權。

若要在容器應用程式中啟用受控識別,請參閱 受控識別

若要授與金鑰保存庫秘密的存取權, 請在 金鑰保存庫中為您所建立的受控識別建立存取 原則。 啟用此原則的「取得」秘密許可權。

  1. 移至Azure 入口網站 中的 容器應用程式。

  2. [設定] 區段底下 ,選取 [ 身分 識別]。

  3. 在 [ 系統指派] 索引 標籤中,選取 [ 開啟 ]。

  4. 選取 [ 儲存 ] 以啟用系統指派的受控識別。

  5. [設定] 區段底下 ,選取 [ 秘密 ]。

  6. 選取新增

  7. 在 [ 新增秘密 內容] 窗格中,輸入下列資訊:

    • 名稱 :秘密的名稱。
    • 類型 :選取 金鑰保存庫參考
    • 金鑰保存庫秘密 URL :金鑰保存庫中秘密的 URI。
    • 身分 識別:用來從金鑰保存庫擷取秘密的身分識別。
  8. 選取新增

注意

如果您使用 UDR With Azure 防火牆 ,您必須將服務標籤和 login.microsoft.com FQDN 新增 AzureKeyVault 至防火牆允許清單。 請參閱 使用 Azure 防火牆 設定 UDR,以決定您需要的其他服務標籤。

金鑰保存庫秘密 URI 和秘密輪替

金鑰保存庫秘密 URI 必須具有下列其中一種格式:

  • https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931:參考特定版本的秘密。
  • https://myvault.vault.azure.net/secrets/mysecret:參考最新版本的秘密。

如果未在 URI 中指定版本,則應用程式會使用金鑰保存庫中存在的最新版本。 當較新版本可用時,應用程式會在 30 分鐘內自動擷取最新版本。 參考環境變數中秘密的任何使用中修訂都會自動重新開機,以挑選新的值。

若要完整控制使用哪一個秘密版本,請在 URI 中指定版本。

參考環境變數中的秘密

如定義秘密一節所述 ,在應用層級宣告秘密 之後,您可以在容器應用程式中建立新的修訂時,在環境變數中參考它們。 當環境變數參考秘密時,其值會以秘密中定義的值填入。

範例

下列範例展示在應用層級宣告連接字串的應用程式。 此連接會在容器環境變數和縮放規則中參考。

在容器應用程式中定義秘密 之後,您可以在建立新的修訂時,在環境變數中參考它。

  1. 移至Azure 入口網站 中的 容器應用程式。

  2. 開啟 [ 修訂管理 ] 頁面。

  3. 選取 [ 建立新修訂 ]。

  4. 在 [ 建立及部署新的修訂 ] 頁面中,選取容器。

  5. 在 [ 環境變數] 區段中,選取 [ 新增 ]。

  6. 輸入下列資訊:

    • 名稱 :環境變數的名稱。
    • 來源 :選取 [參考秘密 ]。
    • :選取您想要參考的秘密。
  7. 選取 [儲存]。

  8. 選取 [建立] 以建立新的修訂。

在磁片區中掛接秘密

如定義秘密一節所述 ,在應用層級宣告秘密 之後,您可以在容器應用程式中建立新的修訂時,在磁片區掛接中參考它們。 當您在磁片區中掛接秘密時,每個秘密都會掛接為磁片區中的檔案。 檔案名是秘密的名稱,而檔案內容則是秘密的值。 您可以在磁片區掛接中載入所有秘密,也可以載入特定秘密。

範例

在容器應用程式中定義秘密 之後,您可以在建立新的修訂時,在磁片區掛接中參考它。

  1. 移至Azure 入口網站 中的 容器應用程式。

  2. 開啟 [ 修訂管理 ] 頁面。

  3. 選取 [ 建立新修訂 ]。

  4. 在 [ 建立及部署新的修訂 ] 頁面中。

  5. 選取容器,然後選取 [ 編輯 ]。

  6. 在 [ 磁片區掛接] 區段中,展開 [ 秘密] 區 段。

  7. 選取 [ 建立新的磁片區 ]。

  8. 輸入下列資訊:

    • 名稱 :mysecrets
    • 掛接 所有秘密:已啟用

    注意

    如果您想要載入特定秘密,請停用 掛接所有秘密 ,然後選取您想要載入的秘密。

  9. 選取新增

  10. 在 [磁片區名稱] 底下 ,選取 [mysecrets ]。

  11. 在 [掛接路徑] 下 ,輸入 /mnt/secrets

  12. 選取 [儲存]。

  13. 選取 [建立 ] 以建立具有磁片區掛接的新修訂。

下一步