關於 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。 此屬性會指定是否可擷取秘密資料。 enabled 屬性會與 nbf 和 exp 搭配使用,當作業在 nbf 和 exp之間發生時,只有在 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 中,秘密的存取控制原則與金鑰的存取控制原則並不相同。 使用者可建立一個或多個保存庫來放置祕密,且必須讓祕密保持在分散和受管理的適當狀態。
下列權限能夠在保存庫的秘密存取控制項目中依主體使用,而且可密切鏡像秘密物件上允許的作業:
秘密管理作業的權限
- get:讀取祕密
- list:列出儲存在 Key Vault 中的祕密或祕密版本
- set:建立祕密
- delete:刪除祕密
- recover:復原已刪除的祕密
- backup:備份金鑰保存庫中的祕密
- restore:將備份的祕密還原至金鑰保存庫
特殊權限作業的權限
- 清除:清除 (永久刪除) 已刪除的秘密
如需使用秘密的詳細資訊,請參閱 Key Vault REST API 參考中的秘密作業。 如需建立權限的相關資訊,請參閱保存庫 - 建立或更新和保存庫 - 更新存取原則。
在 Key Vault 中控制存取的操作指南:
- 使用 CLI 指派 Key Vault 存取原則
- 使用 PowerShell 指派 Key Vault 存取原則
- 使用 Azure 入口網站指派 Key Vault 存取原則
- 使用 Azure 角色型存取控制來提供 Key Vault 金鑰、憑證和秘密的存取權
秘密標籤
您可以將更多應用程式專屬的中繼資料指定為標籤形式。 Key Vault 支援最多 15 個標記,各標記可以有 512 個字元的名稱和 512 個字元的值。
注意
如果呼叫者具有清單或取得權限,則可以讀取標籤。
使用案例
使用時機 | 範例 |
---|---|
安全地儲存、管理生命週期,以及監視服務對服務通訊的認證,例如密碼、存取金鑰、服務主體用戶端秘密。 | - 使用 Azure Key Vault 搭配與虛擬機器 - 使用 Azure Key Vault 搭配 Azure Web 應用程式 |