託管身分對於 Azure 中的安全跨服務通訊至關重要。它們消除了管理秘密、金鑰或連接字串的需要,從而實現了應用程式元件的無縫整合。在本部落格中,我將示範如何使用託管識別碼將 Azure SQL 資料庫連接到在 Azure 應用程式服務上執行的 Python 後端。
要使用 Entra 身分連接到 Azure 服務,您需要 Microsoft 驗證程式庫 (MSAL)。在此範例中,我使用的是 Python 庫,但不用擔心,每種主要程式語言都存在 MSAL。
這是一個連接到 Azure SQL 資料庫的簡單函數:
滿足這些先決條件後,您可以在程式碼中建立資料庫連線並執行查詢,而無需處理機密或連接字串。
為了演示,我創建了一個簡單的 Python Flask API,它會傳回員工數據,例如姓名、職位和薪水。注意如何使用 get_db_connection() 函數開啟資料庫連線並查詢資料。
這種簡單的方法可確保您的後端使用託管身分與資料庫安全地互動。
如果您要在 Docker 容器中部署應用程序,這裡是用於安裝 SQL Server 的 ODBC 驅動程式的 Dockerfile:
此設定可確保您的容器已準備好安全連線至 Azure SQL。
部署 Azure SQL 伺服器時,設定僅 Azure AD 驗證。這是託管身分的要求。以下是部署 SQL 伺服器和資料庫的 Bicep 範本:
此範本確保資料庫已安全配置並可供使用。
要讓您的應用程式服務能夠在沒有機密的情況下存取資料庫,請將必要的資料庫角色指派給託管識別碼。您無法使用 Bicep 或 Terraform 執行此步驟。建立自訂腳本或透過 Azure 入口網站存取資料庫。
這些角色允許託管身分根據需要執行讀取、寫入和架構更改操作。
有關完整的程式碼,包括 CI/CD 集成,請查看 GitHub 上的公開模板。此儲存庫包含複製本部落格中所述的設定所需的一切。
此用例涉及使用 Azure SQL 資料庫部署 Azure 應用程式服務,以提供用於測試新應用程式功能的輕量級後端環境。它包括從託管應用程式到管理資料持久性的所有內容,並整合 CI/CD 以方便測試和迭代。
使用託管身分可以簡化跨服務通信,並透過消除對機密的需求來增強安全性。強烈建議任何在 Azure 中建立安全且可擴展的應用程式的人使用此方法。
以上是使用託管識別在 Azure 中實現安全的跨服務通信的詳細內容。更多資訊請關注PHP中文網其他相關文章!