Azure 儲存體支援使用 Microsoft Entra ID 來授權資料表資料的要求。 使用 Microsoft Entra 識別符,您可以使用 Azure 角色型存取控制 (Azure RBAC) 將權限授與安全性主體,這可能是使用者、群組或應用程式服務主體。 Microsoft Entra ID 會驗證安全性主體以傳回 OAuth 2.0 權杖。 然後,可以使用權杖來授權對資料表服務的要求。
使用 Microsoft Entra ID 來授權對 Azure 儲存體的要求,相較於共用金鑰授權,可提供更優異的安全性,也更容易使用。 Microsoft 建議您盡可能對資料表應用程式使用 Microsoft Entra 授權,以確保存取權具有最低必要權限。
所有公用區域和國家雲端中的所有一般用途都可以使用 Microsoft Entra ID 進行授權。 只有使用 Azure Resource Manager 部署模型建立的記憶體帳戶支援Microsoft Entra 授權。
資料表的 Microsoft Entra ID 概觀
當安全性主體 (使用者、群組或應用程式) 嘗試存取資料表資源時,要求必須獲得授權。 使用 Microsoft Entra ID 時,存取資源的流程分為兩個步驟。 首先,會驗證安全性主體的身分識別,並傳回 OAuth 2.0 令牌。 接下來,權杖會當做要求的一部分傳至資料表服務,讓服務使用該權杖來授與指定資源的存取權。
驗證步驟要求應用程式在運行時間要求 OAuth 2.0 存取令牌。 如果應用程式從 Azure 實體內執行,例如 Azure VM、虛擬機擴展集或 Azure Functions 應用程式,則可以使用 受控識別 來存取數據表。
授權步驟需要將一或多個 Azure 角色指派給安全性主體。 Azure 儲存體提供的 Azure 角色包含資料表資料的一般權限集合。 指派給安全性主體的角色會決定該主體所擁有的權限。 若要深入瞭解如何為數據表存取指派 Azure 角色,請參閱 指派 Azure 角色以存取數據表數據。
下表指出在各種案例中授權數據存取的其他資訊:
指派 Azure 角色以取得訪問許可權
Microsoft Entra 會透過 Azure 角色型存取控制 (Azure RBAC),授與受保護資源的存取權。 Azure 儲存體會定義一組 Azure 內建角色,其中包含一般用來存取資料表資料的權限集合。 您也可以定義自訂角色以存取資料表資料。
將 Azure 角色指派給 Microsoft Entra 安全性主體時,Azure 會將那些資源的存取權授與該安全性主體。 Microsoft Entra 安全性主體可以是使用者、群組或應用程式服務主體,或是適用於 Azure 資源的受控識別。
資源範圍
將 Azure RBAC 角色指派給安全性主體之前,請先判斷安全性主體應具備的存取範圍。 最佳做法的要求是,最好只授與最小的可能範圍。 以更廣泛範圍定義的 Azure RBAC 角色,可由其下的資源繼承。
您可以在下列層級設定存取 Azure 資料表資源的範圍,從最小範圍開始:
- 個別的資料表。 在此範圍中,角色指派會套用至指定的資料表。
- 記憶體帳戶。 在此範圍中,角色指派會套用至帳戶中的所有資料表。
- 資源群組。 在此範圍中,角色指派會套用至資源群組中所有儲存體帳戶內的所有資料表。
- 訂用帳戶。 在此範圍中,角色指派會套用至訂用帳戶中所有資源群組的所有儲存體帳戶內所包含的所有資料表。
- 管理群組。 在此範圍中,角色指派會套用至管理群組的所有訂用帳戶中,所有資源群組的所有儲存體帳戶內所包含的所有資料表。
如需 Azure RBAC 角色指派範圍的詳細資訊,請參閱了解 Azure RBAC 的範圍。
適用於資料表的 Azure 內建角色
Azure RBAC 提供內建角色,可讓您使用 Microsoft Entra ID 和 OAuth 來授與資料表資料的存取權。 有權對 Azure 儲存體中的資料表進行存取的內建角色包括:
- 表格存儲資料貢獻者:用於賦予表格存儲資源的讀取/寫入/刪除權限。
- 記憶體數據表數據讀取器:用來將唯讀許可權授與數據表記憶體資源。
若要瞭解如何將 Azure 內建角色指派給安全性主體,請參閱 指派 Azure 角色以存取數據表數據。 若要瞭解如何列出 Azure RBAC 角色及其許可權,請參閱 列出 Azure 角色定義。
如需如何為 Azure 記憶體定義內建角色的詳細資訊,請參閱 瞭解角色定義。 如需建立 Azure 自訂角色的相關信息,請參閱 Azure 自定義角色。
只有針對資料存取明確定義的角色,才能允許安全性主體存取或資料表資料。 內建角色 (例如 擁有者、參與者和儲存體帳戶參與者) 允許安全性主體管理儲存體帳戶,但是不會透過 Microsoft Entra ID 提供該帳戶內資料表資料的存取權。 不過,如果角色包含 Microsoft.Storage/storageAccounts/listKeys/action,則獲指派該角色的使用者可以透過帳戶存取密鑰的共用密鑰授權,存取記憶體帳戶中的數據。
如需適用於數據服務和管理服務之 Azure 記憶體的 Azure 內建角色詳細資訊,請參閱 Azure RBAC Azure 內建角色中的 Storage 一節。 此外,如需在 Azure 中提供許可權的不同角色類型相關信息,請參閱 Azure 角色、Microsoft Entra 角色和傳統訂用帳戶管理員角色。
這很重要
Azure 角色指派最多需要 30 分鐘的時間來傳播。
數據作業的訪問許可權
如需呼叫特定數據表服務作業所需許可權的詳細資訊,請參閱 呼叫數據作業的許可權。