微軟:如何使用安全區域將始終加密轉換為始終加密

 在現代的數據驅動世界中,數據安全和隱私是我們不能忽視的問題。微軟 Azure 提供了一種名為 Always Encrypted 的功能,可以保護您的數據,即使在傳輸和存儲時也能確保其安全。然而,Always Encrypted 有一個限制,那就是它不允許在伺服器端進行數據操作。這就是 Always Encrypted with Secure Enclaves 的用武之地。

Always Encrypted with Secure Enclaves 是 Always Encrypted 的一個擴展,它允許在伺服器端的一個受信任的執行環境中解密敏感數據,這個環境被稱為安全的飛地。這是一個在數據庫系統進程內的受保護的內存區域,對於數據庫系統和主機機器上的其他進程來說,它就像一個黑盒子。

以下是一個使用 Always Encrypted with Secure Enclaves 的步驟:

  1. 從門戶創建一個 Linux Python Function App。
  2. 在新的 Function App 中設置 managed identity,並從門戶啟用 Identity 和保存。它將自動為您生成一個 Object (principal) ID。
  3. 在 Azure SQL 數據庫中分配角色。搜索您自己的帳戶並保存為管理員。
  4. 到數據庫的 Query editor 中,並確保使用您在上一步設置的帳戶登錄,而不是使用用戶名和密碼。否則,第5步將會失敗,並出現以下異常:“Failed to execute query. Error: Principal ‘xxxx’ could not be created. Only connections established with Active Directory accounts can create other Active Directory users.”
  5. 執行以下查詢以為 function app 創建用戶並更改角色。您可以根據需求選擇更改這些角色的一部分。
CREATE USER "yourfunctionappname" FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER "yourfunctionappname"
ALTER ROLE db_datawriter ADD MEMBER "yourfunctionappname"
ALTER ROLE db_ddladmin ADD MEMBER "yourfunctionappname"
  1. 利用以下示例代碼來構建您自己的項目並部署到 function app。

詳情請看:

How to convert Always Encrypted to Always Encrypted with Secure Enclaves

Posted in ,  on 10月 25, 2025 by Kevin |