分享方式:


管理儲存體帳戶存取金鑰

您建立儲存體帳戶時,Azure 會為該帳戶產生兩個 512 位元儲存體帳戶存取金鑰。 您可以透過共用金鑰授權,或透過共用金鑰簽署的 SAS 權杖,用這些金鑰授與儲存體帳戶資料的存取權。

Microsoft 建議您使用 Azure Key Vault 來管理存取金鑰,並定期輪替和重新產生金鑰。 使用 Azure Key Vault 可讓您輕鬆地輪替金鑰,而不會造成應用程式中斷。 您也可以手動輪替金鑰。

重要

為了實現最佳安全性,Microsoft 建議盡可能使用具有受控識別的 Microsoft Entra ID 來授權對於 Blob、佇列和資料表資料的請求。 相較於共用金鑰授權,使用 Microsoft Entra ID 和受控識別來授權可提供更優異的安全性,也更容易使用。 若要深入了解受控識別,請參閱什麼是 Azure 資源受控識別?。 如需如何為 .NET 應用程式啟用和使用受控識別的範例,請參閱使用 .NET 向 Azure 資源驗證 Azure 裝載的應用程式

對於裝載於 Azure 外部的資源,例如內部部署應用程式,您可以透過 Azure Arc 使用受控識別。例如,在已啟用 Azure Arc 的伺服器上執行的應用程式可以使用受控識別來連線到 Azure 服務。 若要深入了解,請參閱透過已啟用 Azure Arc 的伺服器向 Azure 資源進行驗證

針對使用共用存取簽章 (SAS) 的案例,Microsoft 建議使用使用者委派 SAS。 使用者委派 SAS 會使用 Microsoft Entra 認證來保護,而不是使用帳戶金鑰。 若要了解共用存取簽章,請參閱使用共用存取簽章授與資料的有限存取權。 如需如何使用 .NET 來建立和運用使用者委派 SAS 的範例,請參閱使用 .NET 建立 Blob 的使用者委派 SAS

保護您的存取金鑰

儲存體帳戶存取金鑰提供儲存體帳戶資料的完整存取權,並可產生 SAS 權杖。 請務必小心保護您的存取金鑰。 使用 Azure Key Vault,以安全的方式管理及輪替金鑰。 共用金鑰的存取權會授與使用者對儲存體帳戶資料的完整存取權。 共用金鑰的存取權應謹慎地加以限制和監視。 若無法使用 Microsoft Entra ID 型授權,請使用存取範圍受限的使用者委派 SAS 權杖。 避免將存取金鑰寫入程式碼,或將其以純文字儲存在他人可以存取的位置。 如果您認為金鑰可能已遭盜用,請輪替金鑰。

重要

若要防止使用者使用共用金鑰存取儲存體帳戶中的資料,您可以禁止儲存體帳戶的共用金鑰授權。 作為安全性最佳做法,建議以最低許可權對資料進行細項存取。 使用受控識別的 Microsoft Entra ID 型授權應用於支援 OAuth 的案例。 Kerberos 或 SMTP 應該用於透過 SMB 的 Azure 檔案儲存體。 針對透過 REST 的 Azure 檔案儲存體,可以使用 SAS 權杖。 如果不需要防止意外使用共用金鑰,則應停用共用金鑰存取。 如需詳細資訊,請參閱防止 Azure 儲存體帳戶使用共用金鑰授權

若要使用 Microsoft Entra 條件式存取原則來保護 Azure 儲存體帳戶,您必須禁止儲存體帳戶的共用金鑰授權。

如果您已停用共用金鑰存取,而且您在診斷記錄中看到回報的共用金鑰授權,這表示信任的存取權正用來存取儲存體。 如需詳細資訊,請參閱 Microsoft Entra 租用戶中註冊之資源的受信任存取權

檢視帳戶存取金鑰

您可以使用 Azure 入口網站、PowerShell 或 Azure CLI 來檢視和複製帳戶存取金鑰。 Azure 入口網站也會提供儲存體帳戶的連接字串,方便您複製。

若要從 Azure 入口網站檢視並複製儲存體帳戶存取金鑰或連接字串:

  1. Azure 入口網站中,移至您的儲存體帳戶。

  2. 在 [安全性 + 網路] 下選取 [存取金鑰]。 您的帳戶存取金鑰隨即出現,此外也會顯示每個金鑰的完整連接字串。

  3. 選取 [顯示金鑰],以顯示您的存取金鑰和連接字串,並啟用按鈕來複製值。

  4. 在 [金鑰 1] 下方,尋找金鑰值。 選取 [複製] 按鈕以複製帳戶金鑰。

  5. 或者,您也可以複製整個連接字串。 在 [金鑰 1] 下方,尋找連接字串值。 選取 [複製] 按鈕以複製連接字串。

    顯示如何在 Azure 入口網站中檢視存取金鑰的螢幕擷取畫面

您可以使用這兩個金鑰的其中之一來存取 Azure 儲存體,但一般而言,使用第一個金鑰並保留第二個金鑰以便在輪替時使用,這是適當的做法。

若要檢視或讀取帳戶的存取金鑰,使用者必須是服務管理員,或獲指派的 Azure 角色必須包含 Microsoft.Storage/storageAccounts/listkeys/action。 包含此動作的 Azure 內建角色為擁有者參與者儲存體帳戶金鑰操作員服務角色。 如需服務管理員角色的詳細資訊,請參閱 Azure 角色、Microsoft Entra 角色和傳統訂用帳戶管理員角色。 如需 Azure 儲存體內建角色的詳細資訊,請參閱 Azure RBAC 的 Azure 內建角色中的儲存體一節。

使用 Azure Key Vault 來管理您的存取金鑰

Microsoft 建議使用 Azure Key Vault 來管理和輪替您的存取金鑰。 您的應用程式可以安全地存取 Key Vault 中的金鑰,所以您就不需要將金鑰儲存在應用程式的程式碼中。 如需使用 Key Vault 進行金鑰管理的詳細資訊,請參閱下列文章:

手動輪替存取金鑰

Microsoft 建議您定期輪替存取金鑰,以協助保護您的儲存體帳戶安全無虞。 如果可以,請使用 Azure Key Vault 來管理您的存取金鑰。 如果您不是使用 Key Vault,則必須手動輪替金鑰。

由於指派兩個存取金鑰,因此您可以旋轉金鑰。 使用兩個金鑰可確保您的應用程式會在整個程序維持 Azure 儲存體的存取權。

警告

重新產生存取金鑰會影響相依於儲存體帳戶金鑰的應用程式或 Azure 服務。 使用帳戶金鑰來存取儲存體帳戶的任何用戶端必須更新並使用新的金鑰,包括媒體服務、雲端、桌面和行動應用程式,以及 Azure 儲存體的圖形化使用者介面應用程式,例如 Azure 儲存體總管

此外變換或重新產生存取金鑰,會撤銷該金鑰產生的共用存取簽章(SAS)。 存取金鑰變換後,您必須重新產生帳戶 服務 SAS 權杖,以免應用程式中斷。 請注意,使用者委派 SAS 權杖受 Microsoft Entra 認證保護,不會因金鑰變換而受到影響。

如果您打算手動輪替存取金鑰,Microsoft 建議您設定金鑰到期原則。 如需詳細資訊,請參閱建立金鑰到期原則

建立金鑰到期原則之後,您可以使用 Azure 原則來監視是否在建議的間隔內輪替儲存體帳戶的金鑰。 如需詳細資訊,請參閱檢查金鑰到期原則違規

若要在 Azure 入口網站中輪替儲存體帳戶存取金鑰:

  1. 更新應用程式程式碼中的連接字串,以參考儲存體帳戶的次要存取金鑰。
  2. Azure 入口網站中瀏覽至您的儲存體帳戶。
  3. 在 [安全性 + 網路] 下選取 [存取金鑰]
  4. 若要重新產生儲存體帳戶的主要存取金鑰,請選取主要存取金鑰旁的 [重新產生] 按鈕。
  5. 更新程式碼中的連接字串,以參考新的主要存取金鑰。
  6. 以同樣的方式重新產生次要存取金鑰。

警告

Microsoft 建議同一時間在您的所有應用程式中僅使用其中一個金鑰。 如果您在某些地方使用金鑰 1 並在其他地方使用金鑰 2,您就無法在沒有部分應用程式遺失存取的情況下輪換您的金鑰。

若要輪替帳戶的存取金鑰,使用者必須是服務管理員,或獲指派的 Azure 角色必須包含 Microsoft.Storage/storageAccounts/regeneratekey/action。 包含此動作的 Azure 內建角色為擁有者參與者儲存體帳戶金鑰操作員服務角色。 如需服務管理員角色的詳細資訊,請參閱 Azure 角色、Microsoft Entra 角色和傳統訂用帳戶管理員角色。 如需 Azure 儲存體的 Azure 內建角色的詳細資訊,請參閱 Azure RBAC 的 Azure 內建角色中的儲存體一節。

建立金鑰到期原則

金鑰到期原則可讓您設定帳戶存取金鑰輪替提醒。 如果已達指定的間隔,而金鑰尚未輪替,則會顯示提醒。 建立金鑰到期原則之後,您可以監視儲存體帳戶的合規性,以確保帳戶存取金鑰會定期輪替。

注意

在您建立金鑰到期原則之前,您的每個帳戶存取金鑰可能需要至少輪替一次。

若要在 Azure 入口網站中建立金鑰到期原則:

  1. Azure 入口網站中,移至您的儲存體帳戶。
  2. 在 [安全性 + 網路] 下選取 [存取金鑰]。 您的帳戶存取金鑰隨即出現,此外也會顯示每個金鑰的完整連接字串。
  3. 選取 [設定輪替提醒] 按鈕。 如果 [設定輪替提醒] 按鈕呈現灰色,您將需要輪替每個金鑰。 請遵循手動輪替存取金鑰中所述的步驟來輪替金鑰。
  4. 在 [設定輪替存取金鑰提醒] 中,選取 [啟用金鑰輪替提醒] 核取方塊,然後設定提醒的頻率。
  5. 選取 [儲存]。

顯示如何在 Azure 入口網站中建立金鑰到期原則的螢幕擷取畫面

檢查金鑰到期原則違規

您可以使用 Azure 原則監視您的儲存體帳戶,以確保在建議的期間內輪替帳戶存取金鑰。 Azure 儲存體提供內建原則,以確保儲存體帳戶存取金鑰未過期。 如需內建原則的詳細資訊,請參閱內建原則定義的清單中的儲存體帳戶金鑰不應過期

指派資源範圍的內建原則

請遵循下列步驟,在 Azure 入口網站中將內建原則指派給適當範圍:

  1. 在 Azure 入口網站中,搜尋 [原則] 以顯示 Azure 原則儀表板。

  2. 在 [編寫] 區段中,選取 [指派]。

  3. 選擇 [指派原則]。

  4. 在 [指派原則] 頁面的 [基本] 索引標籤中,在 [範圍] 區段指定原則指派的範圍。 選取 [更多] 按鈕以選擇訂用帳戶和選用的資源群組。

  5. 在 [原則定義] 欄位中,選取 [更多] 按鈕,然後在 [搜尋] 欄位中輸入儲存體帳戶金鑰。 選取名為儲存體帳戶金鑰不應過期 (Storage account keys should not be expired) 的原則定義。

    顯示如何選取內建原則以監視儲存體帳戶金鑰輪替間隔的螢幕擷取畫面

  6. 選取 [檢閱 + 建立],將原則定義指派給指定的範圍。

    顯示如何建立原則指派的螢幕擷取畫面

使用金鑰到期原則監視合規性

若要監視您的儲存體帳戶是否符合金鑰到期原則,請遵循下列步驟:

  1. 在 Azure 原則儀表板上,找出您在原則指派中指定範圍適用的內建原則定義。 您可以在 [搜尋]方塊中搜尋儲存體帳戶金鑰不應過期,以篩選內建原則。

  2. 選取具有所需範圍的原則名稱。

  3. 在內建原則的 [原則指派] 頁面上,選取 [檢視合規性]。 指定訂用帳戶和資源群組中不符合原則需求的任何儲存體帳戶,都會顯示在合規性報告中。

    顯示如何檢視金鑰到期內建原則合規性報告的螢幕擷取畫面

若要讓儲存體帳戶符合規範,請輪替帳戶存取金鑰。

下一步