管理儲存體帳戶存取金鑰

您建立儲存體帳戶時,Azure 會產生兩個 512 位元儲存體帳戶存取金鑰。 這些金鑰可用來透過共用金鑰授權來授權存取您儲存體帳戶中的資料。

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

保護您的存取金鑰

您的儲存體帳戶存取金鑰類似于儲存體帳戶的根密碼。 請務必小心保護您的存取金鑰。 使用 Azure Key Vault 來安全地管理及輪替您的金鑰。 避免將存取金鑰散發給其他使用者、進行硬式編碼,或將其儲存在任何地方以可供他人存取的純文字。 如果您認為金鑰可能已遭盜用,請輪替金鑰。

注意

Microsoft 建議您盡可能使用 Azure Active Directory (Azure AD) ,將要求授與 blob 和佇列資料,而不是共用金鑰。 Azure AD 可提供更高的安全性,並讓您輕鬆地透過共用金鑰使用。 如需有關使用 Azure AD 授權存取資料的詳細資訊,請參閱使用 Azure Active Directory 授權存取 Azure blob 和佇列

查看帳戶存取金鑰

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

若要從 Azure 入口網站中,查看並複製您的儲存體帳戶存取金鑰或連接字串:

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

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

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

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

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

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

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

若要查看或讀取帳戶的存取金鑰,使用者必須是服務系統管理員,或必須獲指派包含 Microsoft. 儲存體/storageAccounts/listkeys/action 的 Azure 角色。 某些包含此動作的 Azure 內建角色為 擁有 者、參與者儲存體帳戶金鑰操作員服務角色 角色。 如需有關服務管理員角色的詳細資訊,請參閱傳統訂用帳戶管理員角色、Azure 角色和 Azure AD 角色。 如需 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 儲存體總管

如果您打算手動輪替存取金鑰,Microsoft 建議您設定金鑰到期原則,然後使用 Azure 監視器中的查詢來判斷何時要輪替存取金鑰。

建立金鑰到期原則

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

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

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

  3. 選取 [ 設定旋轉提醒 ] 連結。

  4. 在 [ 設定提醒以輪替存取金鑰] 中,選取 [ 啟用金鑰輪替提醒 ] 核取方塊,並設定提醒的頻率。

  5. 選取 [儲存]。

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

原則違規的查詢

如果您建立將 記錄傳送至 Azure Log Analytics 工作區的診斷設定,則可以使用 Azure 監視器記錄查詢來判斷金鑰是否已過期。

若要判斷金鑰是否已過期,請在 記錄搜尋 列中輸入下列查詢。

StorageBlobLogs | where KeyExpiryStatus startsWith "Policy Violated". 

您也可以建立查詢,以協助您判斷查詢是否即將到期。 下列查詢會提供此資訊。

StorageBlobLogs 
| where type =~ 'microsoft.storage/storageAccounts'
| extend days = datetime_diff('day', now(), todatetime(parse_json(properties).keyCreationTime))
| extend KeyExpiryStatus = iff(days > 180, "Policy Violated", "")
| project name, days, KeyExpiryStatus  

輪替存取金鑰

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

  1. 更新應用程式程式碼中的連接字串,以參考儲存體帳戶的次要存取金鑰。

  2. Azure 入口網站中,流覽至您的儲存體帳戶。

  3. 在 [安全性 + 網路] 下選取 [存取金鑰]。

  4. 若要重新產生儲存體帳戶的主要存取金鑰,請選取主要存取金鑰旁的 [ 重新 產生] 按鈕。

  5. 更新程式碼中的連接字串,以參考新的主要存取金鑰。

  6. 以同樣的方式重新產生次要存取金鑰。

注意

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

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

下一步