概觀
此 Azure 安全性與合規性藍圖自動化提供部署付款卡產業數據安全性標準 (PCI DSS 3.2) 相容平臺即服務 (PaaS) 環境的指引,適用於持卡人數據的收集、儲存和擷取。 此解決方案會將 Azure 資源的部署和設定自動化,以取得常見參考架構,示範客戶可符合特定安全性和合規性需求的方式,並作為客戶在 Azure 上建置及設定其解決方案的基礎。 此解決方案會實作PCI DSS 3.2中的需求子集。 如需PCI DSS 3.2需求和此解決方案的詳細資訊,請參閱 合規性檔 一節。
此 Azure 安全性與合規性藍圖自動化會自動部署具有預先設定安全性控件的 PaaS Web 應用程式參考架構,以協助客戶達到 PCI DSS 3.2 需求的合規性。 此解決方案包含引導資源部署和設定的 Azure Resource Manager 範本和 PowerShell 腳本。
此架構旨在為客戶調整特定需求提供基礎,不應在生產環境中使用 as-is。 在不修改的情況下,將應用程式部署到此環境並不足以完全符合PCI DSS 3.2的需求。 請注意以下事項:
- 此架構提供基準,可協助客戶以符合PCI DSS 3.2規範的方式使用 Azure。
- 客戶須負責針對使用此架構所建置的任何解決方案進行適當的安全性和合規性評估,因為需求可能會根據每個客戶實作的具體細節而有所不同。
要達到 PCI DSS 合規性,需要由合格安全性評估人員(QSA)認證生產環境中的客戶解決方案。 客戶須負責針對使用此架構建置的任何解決方案進行適當的安全性與合規性評估,因為需求可能會因每個客戶實作的特定情況而有所不同。
架構圖表和元件
此 Azure 安全性與合規性藍圖自動化會針對具有 Azure SQL Database 後端的 PaaS Web 應用程式部署參考架構。 Web 應用程式裝載於隔離的 Azure App Service 環境,這是 Azure 資料中心的私人專用環境。 環境會針對 Azure 所管理的虛擬機,平衡 Web 應用程式的流量。 此架構也包含網路安全組、應用程式閘道、Azure DNS 和 Load Balancer。
如需增強的分析與報告,可以使用數據行存放區索引來設定 Azure SQL 資料庫。 Azure SQL 資料庫可以相應增加或減少,或完全關閉,以回應客戶的使用量。 所有 SQL 流量都會因納入自簽名憑證而使用 SSL 進行加密。 最佳做法是,Azure 建議使用受信任的證書頒發機構單位來增強安全性。
解決方案會使用 Azure 記憶體帳戶,客戶可設定為使用記憶體服務加密來維護待用數據的機密性。 Azure 會將三份數據複本儲存在客戶所選數據中心內以進行復原。 地理備援記憶體可確保數據會復寫到數百英里外的次要數據中心,並再次儲存為該數據中心內的三個複本,防止客戶的主要數據中心發生不良事件,而導致數據遺失。
為了增強安全性,此解決方案中的所有資源都會透過 Azure Resource Manager 以資源群組的形式進行管理。 Azure Active Directory 角色型訪問控制可用來控制已部署資源的存取,包括其在 Azure Key Vault 中的密鑰。 系統健康情況會透過 Azure 監視器進行監視。 客戶會設定監視服務,以擷取記錄,並在單一容易導覽的儀錶板中顯示系統健康情況。
Azure SQL Database 通常是透過 SQL Server Management Studio 管理,其會從設定為透過安全 VPN 或 ExpressRoute 連線存取 Azure SQL Database 的本機電腦執行。
此外,Application Insights 透過 Azure 監視器記錄提供即時應用程式效能管理和分析。 Microsoft建議設定 VPN 或 ExpressRoute 連線,以便管理和數據匯入參考架構子網。
此解決方案會使用下列 Azure 服務。 部署架構的詳細數據位於 部署架構 一節。
- App Service 環境 v2
- 應用程式閘道
- (1) Web 應用程式防火牆
- 防火牆模式:預防
- 規則集:OWASP 3.0
- 監聽端口:443
- (1) Web 應用程式防火牆
- Application Insights
- Azure Active Directory
- Azure Automation
- Azure DNS
- Azure Key Vault
- Azure 負載均衡器
- Azure 監視器
- Azure Resource Manager
- Azure 資訊安全中心
- Azure SQL 資料庫
- Azure 儲存服務
- Azure 虛擬網路
- (1) /16 網絡
- (4) /24 網路
- (4) 網路安全組
- Azure Web 應用程式
部署架構
下一節將詳細說明部署和實作專案。
Azure Resource Manager: Azure Resource Manager 可讓客戶以群組方式使用解決方案中的資源。 客戶可以在單一協調的作業中部署、更新或刪除解決方案的所有資源。 客戶會使用範本進行部署,且該範本適用於不同的環境,例如測試、預備和生產環境。 Resource Manager 提供安全性、稽核和標記功能,可協助客戶在部署后管理其資源。
防禦主機:防禦主機是單一進入點,可讓使用者存取此環境中已部署的資源。 堡壘主機只允許安全清單上的公用 IP 位址的遠端流量,提供與已部署資源的安全連線。 若要允許遠端桌面 (RDP) 流量,必須在網路安全組中定義流量的來源。
此解決方案會建立虛擬機作為已加入網域的防禦主機,並具有下列設定:
- 反惡意代碼擴充功能
- Azure 診斷擴充功能
- 使用 Azure Key Vault 的 Azure 磁碟加密功能
- 自動關機原則,以在不使用時減少虛擬機資源的耗用量
- 已啟用 Windows Defender Credential Guard,讓認證和其他秘密在與執行中的作系統隔離的受保護環境中執行
App Service Environment v2:Azure App Service 環境是一項 App Service 功能,可提供完全隔離且專用的環境,以大規模安全地執行 App Service 應用程式。 需要此隔離功能,才能符合PCI合規性需求。
App Service 環境會隔離為只執行單一客戶的應用程式,且一律會部署到虛擬網路。 此隔離功能可讓參考架構具有完整的租用戶隔離,從 Azure 的多租用戶環境中移除它,禁止這些多租使用者列舉已部署的 App Service 環境資源。 客戶可以更精細地控制輸入和輸出應用程式網路流量,而且應用程式可以透過虛擬網路建立高速安全連線到內部部署公司資源。 客戶可以根據負載計量、可用的預算或定義的排程,使用 App Service 環境「自動調整」。
請利用 App Service 環境進行下列控制項/設定:
- 在受保護的 Azure 虛擬網路中和網路安全性規則下托管
- 自我簽署的 ILB 憑證,用於 HTTPS 通訊
- 內部負載平衡模式
- 停用 TLS 1.0
- 變更 TLS 加密
- 控制 輸入流量 N/W 埠
- Web 應用程式防火牆 – 限制數據
- 允許 Azure SQL Database 的流量
Azure Web 應用程式: Azure App Service 可讓客戶以所選程式設計語言建置及裝載 Web 應用程式,而不需要管理基礎結構。 它提供自動調整和高可用性、支援 Windows 和 Linux,以及從 GitHub、Azure DevOps 或任何 Git 存放庫啟用自動化部署。
虛擬網路
此架構會定義位址空間為 10.200.0.0/16 的私人虛擬網路。
網路安全組: 網路安全組 包含允許或拒絕虛擬網路內流量的訪問控制清單(ACL)。 網路安全組可用來保護子網或個別 VM 層級的流量。 下列網路安全組存在:
- 1 應用程式閘道的網路安全組
- 1 App Service 環境的網路安全組
- 1 個適用於 Azure SQL Database 的網路安全組
- 堡壘主機的一個網路安全組
每個網路安全組都有開啟特定的埠和通訊協定,讓解決方案可以安全地且正確運作。 此外,每個網路安全組都會啟用下列設定:
子網:每個子網都會與其對應的網路安全組相關聯。
Azure DNS:網域名稱系統或 DNS 負責將網站或服務名稱轉譯為其 IP 位址。 Azure DNS 是 DNS 網域的裝載服務,可使用 Azure 基礎結構提供名稱解析。 藉由在 Azure 中裝載網域,使用者可以使用與其他 Azure 服務相同的認證、API、工具和計費來管理 DNS 記錄。 Azure DNS 也支援私人 DNS 網域。
Azure Load Balancer: Azure Load Balancer 可讓客戶調整其應用程式,併為服務建立高可用性。 Load Balancer 支援入站和出站場景,並提供低延遲、高輸送量,針對所有 TCP 和 UDP 應用程式可擴展到數百萬個流量。
傳輸中的數據
根據預設,Azure 會將 Azure 資料中心的所有通訊加密。 透過 Azure 入口網站對 Azure 記憶體的所有交易都會透過 HTTPS 進行。
靜態資料
此架構會透過加密、資料庫稽核和其他措施來保護靜止數據。
Azure 記憶體:為了符合待用加密的數據需求,所有 Azure 記憶體 都會使用 記憶體服務加密。 這有助於保護持卡人數據,以支援PCI DSS 3.2所定義的組織安全性承諾和合規性需求。
Azure 磁碟加密: Azure 磁碟加密 利用 Windows 的 BitLocker 功能,為數據磁碟提供磁碟區加密。 此解決方案會與 Azure Key Vault 整合,以協助控制和管理磁碟加密密鑰。
Azure SQL Database:Azure SQL Database 實例會使用下列資料庫安全性措施:
- Active Directory 驗證和授權 可讓您在一個中央位置中管理資料庫使用者和其他Microsoft服務的身分識別管理。
- SQL 資料庫稽核 追蹤資料庫事件,並將其寫入 Azure 記憶體帳戶中的稽核記錄。
- Azure SQL Database 已設定為使用 透明數據加密,其會執行資料庫、相關聯的備份和事務歷史記錄檔的即時加密和解密,以保護待用資訊。 透明數據加密可確保儲存的數據不受未經授權的存取。
- 防火牆規則 防止所有資料庫伺服器的存取,直到授與適當的許可權為止。 此防火牆會根據每一個要求的來源 IP 位址來授與資料庫存取權。
- SQL 威脅偵測 藉由提供可疑資料庫活動、潛在弱點、SQL 注入攻擊和異常的資料庫存取模式的安全性警示,來啟用偵測和回應潛在威脅。
- 加密欄位 確保敏感數據永遠不會以明文形式出現在資料庫系統內。 啟用數據加密之後,只有具有金鑰存取權的用戶端應用程式或應用程式伺服器可以存取純文字數據。
- SQL Database 動態數據遮罩 會藉由將數據遮罩給非特殊許可權的使用者或應用程式,來限制敏感數據暴露。 動態數據遮罩可以自動探索潛在的敏感數據,並建議套用適當的遮罩。 這有助於識別和減少對數據的訪問,以防止資料透過未經授權的方式離開資料庫。 客戶須負責調整動態數據遮罩設定,以遵守其資料庫架構。
身分識別管理
下列技術提供在 Azure 環境中管理持卡人數據存取的功能:
- Azure Active Directory 是Microsoft多租用戶雲端式目錄和身分識別管理服務。 此解決方案的所有用戶都會在 Azure Active Directory 中建立,包括存取 Azure SQL Database 的使用者。
- 應用程式驗證是使用 Azure Active Directory 來執行。 如需詳細資訊,請參閱 整合應用程式與 Azure Active Directory。 此外,資料庫數據行加密會使用 Azure Active Directory 向 Azure SQL Database 驗證應用程式。 如需詳細資訊,請參閱如何在 Azure SQL Database 中保護敏感數據。
- Azure 角色型訪問控制 可讓系統管理員定義更細緻的訪問許可權,只授與使用者執行其作業所需的存取權數量。 系統管理員不能為每位使用者提供不受限制的 Azure 資源許可權,而只能允許特定動作來存取持卡人數據。 訂用帳戶存取權僅限於訂用帳戶管理員。
- Azure Active Directory Privileged Identity Management 可讓客戶將可存取特定資訊的用戶數目降到最低,例如持卡人數據。 系統管理員可以使用 Azure Active Directory Privileged Identity Management 來探索、限制及監視特殊許可權身分識別及其資源存取權。 必要時,此功能還可以用於強制實施隨選、即時的管理權限存取。
- Azure Active Directory Identity Protection 會偵測影響組織身分識別的潛在弱點、設定自動化回應以偵測到與組織身分識別相關的可疑動作,並調查可疑事件以採取適當動作來解決這些弱點。
安全
秘密管理:解決方案會使用 Azure Key Vault 來管理密鑰和秘密。 Azure Key Vault 可協助保護雲端應用程式和服務所使用的加密金鑰和密碼。 下列 Azure Key Vault 功能可協助客戶保護及存取這類數據:
- 進階存取原則是根據需要來設定的。
- 金鑰庫存取原則通常會根據金鑰和秘密資訊所需的最低許可權來定義。
- Key Vault 中的所有密鑰和秘密都有到期日。
- Key Vault 中的所有密鑰都會受到特殊硬體安全性模組的保護。 金鑰類型是受 HSM 保護的 2048 位 RSA 金鑰。
- 所有使用者和身分識別都透過角色為基礎的存取控制被授予最低所需的權限。
- 金鑰保存庫的診斷記錄已啟用,保留期間至少為 365 天。
- 密鑰的密碼編譯作業僅限於必要的作業。
Azure 資訊安全中心:透過 Azure 資訊安全中心,客戶可以集中套用和管理工作負載之間的安全策略、限制威脅的風險,以及偵測及回應攻擊。 此外,Azure 資訊安全中心會存取 Azure 服務的現有設定,以提供設定和服務建議,以協助改善安全性狀態並保護數據。
Azure 資訊安全中心會使用各種偵測功能來警示客戶,以攻擊其環境為目標的潛在攻擊。 這些警示包含觸發警示的重要資訊、目標資源,以及攻擊的來源。 Azure 資訊安全中心有一組 預先定義的安全性警示,會在發生威脅或可疑活動時觸發。 Azure 資訊安全中心的自定義警示規則可讓客戶根據已從其環境收集的數據定義新的安全性警示。
Azure 資訊安全中心提供已排定優先順序的安全性警示和事件,讓客戶更容易探索及解決潛在的安全性問題。 系統會為每個偵測到的威脅產生 威脅情報報告 ,以協助事件回應小組調查和補救威脅。
Azure 應用程式閘道:此架構會使用已設定 Web 應用程式防火牆且已啟用 OWASP 規則集的 Azure 應用程式閘道,降低安全性弱點的風險。 其他功能包括:
- 端對端 SSL
- 啟用 SSL 卸載
- 停用 TLS v1.0 和 v1.1
- Web 應用程式防火牆 (預防模式)
- 預防模式 使用 OWASP 3.0 規則集
- 啟用 診斷記錄
- 自訂健康檢測
- Azure 資訊安全中心和Azure Advisor 提供額外的保護和通知。 Azure 資訊安全中心也提供信譽系統。
記錄和稽核
Azure 服務會廣泛記錄系統和用戶活動,以及系統健康情況:
- 活動記錄: 活動記錄 可讓您深入瞭解訂用帳戶中資源上執行的作業。 活動記錄有助於判斷作業的啟動器、發生時間和狀態。
- 診斷記錄: 診斷記錄 包含每個資源發出的所有記錄。 這些記錄包括 Windows 事件系統記錄、Azure 記憶體記錄、Key Vault 稽核記錄,以及應用程式閘道存取和防火牆記錄。 所有診斷記錄都會寫入集中式和加密的 Azure 記憶體帳戶以進行封存。 保留期是用戶可設定的,最多730天,以符合組織特定的保留需求。
Azure 監視器記錄:這些記錄會合併在 Azure 監視器記錄 中,以便處理、儲存和儀錶板報告。 收集之後,數據會組織成 Log Analytics 工作區中每個數據類型的個別數據表,不論其原始來源為何,都能一起分析所有數據。 此外,Azure 資訊安全中心會與 Azure 監視器記錄整合,讓客戶能夠使用 Kusto 查詢來存取其安全性事件數據,並將其與其他服務的數據結合。
下列 Azure 監視解決方案 包含在此架構中:
- Active Directory 評定:Active Directory 健康情況檢查解決方案會定期評估伺服器環境的風險和健康情況,並提供已部署伺服器基礎結構特定建議的優先順序清單。
- SQL 評定:SQL 健康情況檢查解決方案會定期評估伺服器環境的風險和健康情況,並為客戶提供已部署伺服器基礎結構特定建議的優先順序清單。
- 代理程式健康情況:代理程式健康情況解決方案會報告部署多少代理程式及其地理分佈,以及有多少代理程式沒有回應,以及提交作業數據的代理程式數目。
- 活動日誌分析:活動日誌分析解決方案協助分析客戶所有 Azure 訂用帳戶中的 Azure 活動記錄。
Azure 自動化: Azure 自動化 會儲存、執行及管理「Runbook」。 在此解決方案中,Runbook 可協助從 Azure SQL Database 收集記錄。 自動化 變更追蹤 解決方案可讓客戶輕鬆地識別環境中的變更。
Azure 監視器: Azure 監視器 可讓組織稽核、建立警示和封存數據,包括追蹤其 Azure 資源中的 API 呼叫,協助使用者追蹤效能、維護安全性及識別趨勢。
Application Insights: Application Insights 是多個平臺上 Web 開發人員的可延伸應用程式效能管理服務。 Application Insights 會偵測效能異常,客戶可以使用它來監視即時 Web 應用程式。 它包含功能強大的分析工具,可協助客戶診斷問題,以及瞭解用戶實際使用其應用程式的功能。 其設計目的是協助客戶持續改善效能和可用性。
威脅模型
此參考架構的數據流程圖可供 下載,或可在下方找到。 此模型可協助客戶瞭解進行修改時系統基礎結構中的潛在風險點。
合規性文件
Azure 安全性與合規性藍圖 – PCI DSS 客戶責任矩陣會列出所有 PCI DSS 3.2 需求的控制器和處理器責任。
Azure 安全性與合規性藍圖 – PCI DSS PaaS Web 應用程式實作矩陣提供 PaaS Web 應用程式架構處理哪些 PCI DSS 3.2 需求的相關信息,包括實作如何符合每個涵蓋文章需求的詳細描述。
部署此解決方案
此 Azure 安全性與合規性藍圖自動化是由 Azure Resource Manager API 服務所處理的 JSON 組態檔和 PowerShell 腳本所組成,可在 Azure 內部署資源。 如需詳細的部署指示,請參閱這裡 。
快速開始
將這個 GitHub 存放庫 複製或下載到本機工作站。
檢閱 0-Setup-AdministrativeAccountAndPermission.md 並執行提供的命令。
使用 Contoso 範例數據部署測試解決方案,或試驗初始生產環境。
- 1A-ContosoWebStoreDemoAzureResources.ps1
- 此腳本會部署 Azure 資源,以使用 Contoso 範例數據示範 Webstore。
- 1-DeployAndConfigureAzureResources.ps1
- 此腳本會部署支援客戶擁有 Web 應用程式生產環境所需的 Azure 資源。 客戶應根據組織需求進一步自定義此環境。
- 1A-ContosoWebStoreDemoAzureResources.ps1
指引與建議
VPN 和 ExpressRoute
必須設定安全的 VPN 通道或 ExpressRoute ,才能安全地建立部署為此 PaaS Web 應用程式參考架構一部分之資源的連線。 藉由適當地設定 VPN 或 ExpressRoute,客戶可以為傳輸中的數據新增一層保護。
透過使用 Azure 實作安全的 VPN 通道,即可建立內部部署網路與 Azure 虛擬網路之間的虛擬私人連線。 此連線透過因特網進行,讓客戶能在客戶網路與 Azure 之間的加密連結中安全地「隧道」傳輸資訊。 站對站 VPN 是一種安全、成熟的技術,已由各種規模的企業部署數十年。 IPsec 信道模式 用於此選項作為加密機制。
因為 VPN 通道內的流量會透過站對站 VPN 穿越網際網路,Microsoft 提供另一個更安全的連線選項。 Azure ExpressRoute 是 Azure 與內部部署位置或 Exchange 裝載提供者之間的專用 WAN 連結。 由於 ExpressRoute 連線不會經過因特網,因此這些連線可提供比因特網上一般連線更高的可靠性、更快的速度、較低的延遲和更高的安全性。 此外,由於這是客戶的電信供應商的直接連線,因此數據不會透過因特網傳輸,因此不會暴露在因特網上。
可供使用的最佳作法,適用於實作將內部部署網路擴充至 Azure 的安全混合式網路。
免責聲明
- 本檔僅供參考之用。 MICROSOFT本文件資訊未提供明示、默示或法定擔保。 本文件提供「as-is」。本文件中所表達的資訊和觀點,包括 URL 與其他網際網路網站參考,均可能更改,恕不另行通知。 閱讀本文件的客戶承擔使用它的風險。
- 本文檔不賦予客戶對於任何 Microsoft 產品或解決方案中的智慧財產的任何法律權利。
- 客戶可以複製並使用此檔以供內部參考之用。
- 本檔中的某些建議可能會導致 Azure 中的數據、網路或計算資源使用量增加,而且可能會增加客戶的 Azure 授權或訂用帳戶成本。
- 此架構旨在為客戶調整特定需求提供基礎,不應在生產環境中使用 as-is。
- 本檔是以參考方式開發,不應用來定義客戶能夠符合特定合規性需求和法規的所有方式。 客戶應該在核准的客戶實作上向組織尋求法律支援。