設定驗證
驗證是您存取數位基礎結構中的資源時驗證認證的程序。 這可確保想在環境中存取服務的個人或服務,能夠證明其身分。 Azure Synapse Analytics 提供數種不同的驗證方法。
需要驗證的項目
有各種不同的案例,這表示必須進行驗證,以保護儲存在 Azure Synapse Analytics 資產中的資料。
常見的驗證形式為想要存取服務中資料的個人驗證。 這常見於提供使用者名稱和密碼向服務進行驗證的個人。 但這也會變得更複雜,因為驗證要求搭配條件式存取原則來進一步保護驗證流程時,需要更多安全性步驟。
較不明顯的情況是,服務必須向其他服務進行驗證,才能順暢地運作。 此種情況的其中一個範例是使用 Azure Synapse Spark 或無伺服器 SQL 集區來存取 Azure Data Lake 存放區中的資料。 您必須在背景中進行驗證機制,以確保 Azure Synapse Analytics 可以用經過驗證的方式存取資料湖中的資料。
最後,在某些情況下,使用者和服務會同時運作。 在此,您將在幕後進行一組使用者與服務驗證,以確保使用者能順暢地存取資料。 其中一個範例是使用 Power BI 在由專用 SQL 集區提供服務的儀表板檢視報告。 在此,您有多個層級的進行中驗證需要管理。
安全性類型
以下是使用 Azure Synapse Analytics 時應該留意的驗證類型。
Microsoft Entra ID
Microsoft Entra ID 是一種目錄服務,可讓您集中維護可受保護的物件。 這些物件可以包含使用者帳戶和電腦帳戶。 組織的員工通常會有在組織的 Microsoft Entra 租用戶中代表他們的使用者帳戶,然後使用該使用者帳戶搭配密碼,透過名為單一登入的程序,針對儲存在目錄內的其他資源進行驗證。
Microsoft Entra ID 的優勢在於只需要登入一次,而 Microsoft Entra ID 將使用傳遞驗證根據其中保留的資訊來管理對其他資源的存取。 如果使用者和 Azure Synapse Analytics 執行個體屬於相同的 Microsoft Entra ID,使用者就可以存取 Azure Synapse Analytics,而不需明顯的登入。 如果正確管理,此程序會很順暢,因為系統管理員會賦予使用者授權,以存取 Azure Synapse Analytics 專用 SQL 集區作為範例。
在此情況下,Azure 系統管理員通常會建立使用者帳戶,並將其指派給 Microsoft Entra ID 中適當的角色和群組。 然後,資料工程師會新增使用者或使用者所屬的群組,以存取專用 SQL 集區。
受控識別
Azure 資源的受控識別是 Microsoft Entra ID 的一項功能。 此功能可為 Azure 服務提供 Microsoft Entra ID 中的自動受控識別。 您可以使用受控識別功能,向支援 Microsoft Entra 驗證的任何服務進行驗證。
適用於 Azure 資源的受控識別先前稱為受控服務識別 (MSI)。 建立工作區時會為 Azure Synapse 工作區建立系統指派的受控識別。
Azure Synapse 也會使用受控識別來整合管線。 受控識別生命週期直接繫結至 Azure Synapse 工作區。 如果刪除 Azure Synapse 工作區,也會同時清除受控識別。
工作區受控識別必須擁有權限才能執行管線中的作業。 在授與權限時,可以使用物件 ID 或 Azure Synapse 工作區名稱來尋找受控識別。
您可以在 Azure 入口網站中擷取受控識別。 在 Azure 入口網站中開啟 Azure Synapse 工作區,然後從左側瀏覽面板中選取 [概觀]。 受控識別的物件 ID 顯示在主畫面中。
當您建立支援從 Azure Synapse Studio 執行受控識別驗證的連結服務時,也會顯示受控識別資訊。
啟動 [Azure Synapse Studio] 並從左側瀏覽面板中選取 [管理] 索引標籤。 然後選取 [連結服務],選擇 [+ 新增] 選項來建立新的連結服務。
在 [新增連結服務] 視窗中,輸入 Azure Data Lake Storage Gen2。 從下表中選取 [Azure Data Lake Storage Gen2] 資源類型,然後選擇 [繼續]。
在下一個視窗中,選擇 [適用於驗證方法的受控識別]。 您會看到受控識別的 [名稱] 和 [物件識別碼]。
SQL 驗證
若是不屬於 Microsoft Entra ID 的使用者帳戶,替代方法是使用 SQL 驗證。 在此情況下,會在專用 SQL 集區的執行個體中建立使用者。 如果有問題的使用者需要系統管理員存取權,則使用者的詳細資料會保存在 master 資料庫中。 如果不需要系統管理員存取權,則可在特定的資料庫中建立使用者。 然後,使用者會直接連線到 Azure Synapse Analytics 專用 SQL 集區,而在其中系統會提示他們使用使用者名稱和密碼來存取服務。
這種方法通常適用於需要存取資料的外部使用者,或是如果您正對 Azure Synapse Analytics 專用 SQL 集區使用第三方或繼承應用程式
多重要素驗證
Synapse SQL 使用 Active Directory 通用驗證支援來自 SQL Server Management Studio (SSMS) 的連線。
這可讓您在使用條件式存取原則的環境中操作,以在原則中強制執行多重要素驗證。
索引鍵
如果您無法使用受控識別來存取資源 (例如 Azure Data Lake),則可使用儲存體帳戶金鑰和共用存取簽章。
使用儲存體帳戶金鑰。 Azure 會為每個您建立的每個儲存體帳戶,建立這些金鑰的其中兩個 (主要和次要)。 金鑰提供帳戶中所有內容的存取權。 您會在儲存體帳戶的 Azure 入口網站檢視中找到儲存體帳戶金鑰。 只需選取 [設定],然後按一下 [存取金鑰]。
最佳做法是,您不應該共用儲存體帳戶金鑰,但可以使用 Azure Key Vault 來管理和保護金鑰。
Azure Key Vault 是一種「祕密存放區」:用來儲存應用程式祕密 (例如必須隨時保持安全的密碼和連接字串等設定值) 的集中式雲端服務。 Key Vault 會在單一中央位置保存應用程式的祕密,並提供安全存取、權限控制和存取記錄,協助您控制應用程式的祕密。
使用 Key Vault 的主要優點如下:
- 區分敏感性應用程式資訊與其他設定和程式碼,以降低意外外洩的風險
- 使用針對需要存取祕密的應用程式和個人量身打造的存取原則,限制祕密的存取
- 集中式祕密儲存體,讓必要的變更只會發生在一個位置
- 存取記錄和監視,以協助您瞭解如何及何時存取祕密
祕密會儲存在個別的保存庫中,也就是用來將祕密分組在一起的 Azure 資源。 祕密存取和保存庫管理是透過 REST API 來完成,所有的 Azure 管理工具以及適用於許多熱門語言的用戶端程式庫也支援此功能。 每個保存庫都有裝載其 API 的唯一 URL。
共用存取簽章
如果外部第三方應用程式需要存取您的資料,您將需要在不使用儲存體帳戶金鑰的情況下保護其連線。 針對未受信任的用戶端,請使用共用存取簽章 (SAS)。 共用存取簽章是一個字串,其中包含可附加到 URI 的安全性權杖。 使用共用存取簽章來委派存取權限給儲存體物件並指定條件約束,例如權限和存取的時間範圍。 您可以將共用存取簽章權杖給予客戶。
共用存取簽章的類型
您可以使用服務層級共用存取簽章來允許存取儲存體帳戶中的特定資源。 例如,您會使用這種類型的共用存取簽章,允許應用程式擷取檔案系統中的檔案清單,或是下載檔案。
使用帳戶層級共用存取簽章來允許存取服務層級共用存取簽章所能允許的任何事物,以及額外的資源及功能。 例如,您可以使用帳戶層級共用存取簽章,允許建立檔案系統。