關於 Azure Key Vault 秘密

Key Vault 提供儲存通用祕密 (例如密碼和資料庫連接字串) 的安全機制。

從開發人員的觀點來看,Key Vault API 會以字串的形式接受和傳回秘密值。 在內部,Key Vault 會以八位元序列 (8 位元的位元組) 的形式來儲存和管理祕密,大小上限為 25k 位元組。 Key Vault 服務不提供秘密的語意。 它只會接受資料並加以加密和儲存,然後傳回祕密識別碼 ("id")。 識別碼可用來在稍後擷取秘密。

對於高度敏感的資料,用戶端應考慮為資料提供更多層的保護。 使用個別的保護金鑰為資料加密再儲存到 Key Vault 中,即是一例。

Key Vault 也支援秘密的 contentType 欄位。 用戶端可以指定祕密的內容類型,以利在擷取秘密資料時進行解譯。 此欄位的長度上限為 255 個字元。 建議的用法是作為解譯秘密資料的提示。 例如,實作可能會將密碼和憑證儲存為秘密,然後使用此欄位來區分。 沒有任何預先定義的值。

加密

您 Key Vault 中的所有秘密都會以加密方式儲存。 Key Vault 使用加密金鑰階層來加密待用秘密,該階層中的所有金鑰都會受到符合 FIPS 140-2 規範的模組保護。 這種加密是透明的,使用者無須執行任何動作。 Azure Key Vault 服務會在您新增秘密時將其加密,並在您讀取秘密時自動加以解密。

金鑰階層的加密分葉金鑰,對每個金鑰保存庫都是唯一的。 金鑰階層的加密根金鑰,對安全世界都是唯一的,而且其保護層級在區域之間有所不同:

  • 中國:根金鑰是由驗證過 FIPS 140-2 層級 1 的模組保護。
  • 其他區域:根金鑰是由驗證過 FIPS 140-2 層級 2 或更高的模組保護。

秘密屬性

除了秘密內容,您可以指定下列屬性:

  • exp:選擇性的 IntDate,預設值為永久 (forever)。 Exp (到期時間) 屬性會識別到期時間,在此時間點或之後「不應」擷取秘密資料,除非在特定情況下。 此欄位僅供參考用,因為它告知金鑰保存庫的使用者服,特定祕密可能無法使用。 其值必須是包含 IntDate 值的數字。
  • nbf:選擇性的 IntDate,預設值為現在 (now)。 nbf (不早於) 屬性會識別一個時間,在此時間之前「不應」擷取秘密資料,除非在特定情況下。 此欄位僅供參考用。 其值必須是包含 IntDate 值的數字。
  • enabled :選擇性的布林值,預設值是 true。 此屬性會指定是否可以擷取秘密資料。 當作業發生於 nbfexp 之間時,enabled 屬性會用來搭配 nbfexp 使用,只有在 enabled 設定為 true 時,才能允許此作業。 發生於 nbf 和 exp 範圍外的作業將自動禁止,除了在特定情況下

任何包含秘密屬性的回應中,可包含其他唯讀屬性:

  • created:選擇性的 IntDate。 created 屬性會指出建立此秘密版本的時間。 若秘密是在新增此屬性之前建立的,則此值為 Null。 其值必須是包含 IntDate 值的數字。
  • updated:選擇性的 IntDate。 updated 屬性會指出更新此秘密版本的時間。 若秘密是在新增此屬性之前進行最後一次更新,則此值為 Null。 其值必須是包含 IntDate 值的數字。

若要了解每個金鑰保存庫物件類型的一般屬性,請參閱 Azure Key Vault 金鑰、秘密和憑證概觀

受到日期時間控制的作業

秘密的取得作業將會用於尚未生效和過期的秘密 (在 nbf / exp 範圍外)。 呼叫祕密的取得作業來取得尚未生效的秘密,可以用於測試。 擷取 (取得) 過期的密碼,可用於復原作業。

秘密存取控制

對於在 Key Vault 中管理的秘密,其存取控制會在 Key Vault 的層級上提供,也就是包含這些秘密的 Key Vault。 在相同 Key Vault 中,秘密的存取控制原則與金鑰的存取控制原則並不相同。 使用者可建立一個或多個保存庫來保存秘密,而且必須維護適當區分和管理秘密的案例。

下列權限可以在保存庫上的祕密存取控制項目中使用 (以每個主體為基礎),且密切地對映秘密物件上所允許的作業:

  • 秘密管理作業的權限

    • get:讀取祕密
    • list:列出儲存在 Key Vault 中的祕密或祕密版本
    • set:建立祕密
    • delete:刪除祕密
    • recover:復原已刪除的祕密
    • backup:備份金鑰保存庫中的祕密
    • restore:將備份的祕密還原至金鑰保存庫
  • 特殊權限作業的權限

    • purge:清除 (永久刪除) 已刪除的祕密

如需使用秘密的詳細資訊,請參閱 Key Vault REST API 參考中的秘密作業。 如需建立權限的相關資訊,請參閱保存庫 - 建立或更新保存庫 - 更新存取原則

在 Key Vault 中控制存取的操作指南:

秘密標記

您可以將其他應用程式專屬的中繼資料指定為標記形式。 Key Vault 支援最多 15 個標記,各標記可以有 256 個字元的名稱和 256 個字元的值。

注意

如果呼叫者具有列出取得權限,其便可讀取標籤。

使用案例

使用時機 範例
安全地儲存、管理生命週期,以及監視服務對服務通訊的認證,例如密碼、存取金鑰、服務主體用戶端秘密。 - 使用 Azure Key Vault 搭配與虛擬機器
- 使用 Azure Key Vault 搭配 Azure Web 應用程式

下一步