Azure 安全性與合規性藍圖:適用於 PCI DSS 的 PaaS Web 應用程式

概觀

此「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 指令碼。

此架構的目的是作為基礎,讓客戶進行調整以符合其特定需求,不應完全未經修改就用於生產環境中。 將應用程式部署至此環境而不作修改,不足以完全符合 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 來管理,而執行 SSMS 的本機電腦會設定為透過安全的 VPN 或 ExpressRoute 連線來存取 Azure SQL Database。

此外,Application Insights 透過 Azure 監視器記錄提供即時應用程式效能管理和分析。 Microsoft 建議您設定 VPN 或 ExpressRoute 連線,以便管理和將資料匯入參考架構子網路。

適用于 PCI DSS 的 PaaS Web 應用程式參考架構圖表

此解決方案會使用下列 Azure 服務。 部署架構的詳細資料位於 部署架構 一節。

  • App Service Environment v2
  • 應用程式閘道
    • (1) Web 應用程式防火牆
      • 防火牆模式:防止
      • 規則集:OWASP 3.0
      • 接聽程式連接埠:443
  • Application Insights
  • Azure Active Directory
  • Azure 自動化
  • Azure DNS
  • Azure 金鑰保存庫
  • Azure Load Balancer
  • Azure 監視器
  • Azure Resource Manager
  • Azure 資訊安全中心
  • Azure SQL Database
  • Azure 儲存體
  • Azure 虛擬網路
    • (1) /16 網路
    • (4) /24 網路
    • (4) 網路安全性群組
  • Azure Web 應用程式

部署架構

下一節會詳細說明部署和實作元素。

Azure Resource ManagerAzure Resource Manager 可讓客戶將解決方案中的資源作為群組使用。 客戶可以透過單一協調的作業來部署、更新或刪除解決方案的所有資源。 客戶可使用部署的範本,且該範本可以用於不同的環境,例如測試、預備和生產環境。 資源管理員會提供安全性、稽核和標記功能,以協助客戶在部署後管理資源。

防禦主機:防禦主機是單一進入點,可讓使用者存取此環境中已部署的資源。 防禦主機為已部署的資源提供安全連線,其允許的遠端流量僅限來自安全清單上的公用 IP 位址。 若要允許遠端桌面 (RDP) 流量,必須在網路安全性群組中定義該流量的來源。

此解決方案會建立虛擬機器,作為具有下列設定之加入網域的防禦主機:

App Service 環境 v2:Azure App Service 環境是 App Service 的功能,可提供完全隔離和專用的環境,以便安全地大規模執行 App Service 應用程式。 需要此隔離功能,才能符合 PCI 合規性要求。

App Service 環境已經過隔離,可執行只有單一客戶的應用程式,且一律會部署到虛擬網路。 此隔離功能可讓參考架構具有完整的租用戶隔離,將它從 Azure 的多租用戶環境中移除,禁止這些多租用戶列舉已部署的 App Service 環境資源。 客戶對於輸入和輸出的應用程式網路流量都有更細微的控制,且應用程式可以透過虛擬網路建立與內部部署公司資源的高速安全連線。 客戶可以根據負載計量、可用預算或定義的排程,「自動調整」App Service 環境。

針對下列控制項/組態利用 App Service 環境:

Azure Web 應用程式Azure App 服務可讓客戶以自己所選擇的程式設計語言來建置及裝載 Web 應用程式,而不需管理基礎結構。 它提供自動調整及高度可用性,支援 Windows 和 Linux,並可從 GitHub、Azure DevOps 或任何 Git 存放庫啟用自動部署。

虛擬網路

此架構會定義位址空間為 10.200.0.0/16 的私人虛擬網路。

網路安全性群組網路安全性群組包含能允許或拒絕虛擬網路內流量的存取控制清單 (ACL)。 網路安全性群組可用來保護子網路或個別虛擬機器層級的流量。 有下列網路安全性群組:

  • 1 個網路安全性群組用於應用程式閘道
  • 1 個網路安全性群組用於 App Service 環境
  • 1 個網路安全性群組用於 Azure SQL Database
  • 1 個網路安全性群組用於用於堡壘主機

每個網路安全性群組都會開放特定連接埠及通訊協定,讓解決方案可安全且正確地運作。 此外,以下設定會針對每個網路安全性群組啟用:

子網:每個子網都與其對應的網路安全性群組相關聯。

Azure DNS:網域名稱系統 (或 DNS) 負責將網站或服務名稱轉譯 (或解析) 為其 IP 位址。 Azure DNS 是 DNS 網域的主機服務,採用 Azure 基礎結構來提供名稱解析。 只要將網域裝載於 Azure,使用者就可以像管理其他 Azure 服務一樣,使用相同的認證、API、工具和計費方式來管理 DNS 記錄。 Azure DNS 也支援私人 DNS 網域。

Azure Load BalancerAzure Load Balancer 可讓客戶調整應用程式,並為服務建立高可用性。 對於所有 TCP 和 UDP 應用程式,Load Balancer 支援輸入和輸出案例、提供低延遲和高輸送量,且最多可相應增加為數百萬個流程。

資料傳輸中

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 來探索、限制和監視特殊權限的識別和其對資源的存取。 如有需要,這項功能也可用來強制執行隨選 Just-In-Time 系統管理存取權。
  • Azure Active Directory Identity Protection 會偵測影響組織身分識別的潛在弱點、設定偵測到與組織身分識別相關的可疑動作的自動回應,並調查可疑事件以採取適當的動作來解決這些問題。

安全性

祕密管理:解決方案會使用 Azure Key Vault 來管理金鑰和祕密。 Azure 金鑰保存庫可協助保護雲端應用程式和服務所使用的密碼編譯金鑰和密碼。 下列 Azure Key Vault 功能可協助客戶保護資料及存取這類資料:

  • 進階存取原則是視需要設定的。
  • Key Vault 存取原則是使用金鑰和祕密的最低必要權限所定義的。
  • Key Vault 中的所有金鑰和祕密都有到期日。
  • Key Vault 中的所有金鑰都會受到特製化硬體安全模組的保護。 金鑰類型為 HSM 保護的 2048 位元 RSA 金鑰。
  • 針對所有使用者與身分識別,皆使用角色型存取控制來授與最低要求權限。
  • 金鑰保存庫的診斷記錄的保留期至少 365 天。
  • 允許的金鑰密碼編譯作業僅限於需要的密碼編譯項目。

Azure 資訊安全中心:客戶可以使用 Azure 資訊安全中心,在工作負載之間集中套用及管理安全性原則、限制暴露於威脅的程度,以及偵測和回應攻擊。 此外,Azure 資訊安全中心會存取 Azure 服務的現有組態,以提供設定和服務建議,協助改善安全性狀態並保護資料。

Azure 資訊安全中心會使用不同的偵測功能,向客戶警示以其環境為目標的潛在攻擊。 這些警示包含觸發警示的項目、鎖定為目標的資源,以及攻擊來源等重要資訊。 Azure 資訊安全中心有一組預先定義的安全性警示,一旦發生威脅或可疑活動時便會觸發這些警示。 Azure 資訊安全中心內的自訂警示規則可讓客戶根據從其環境所收集到的資料,定義新的安全性警示。

Azure 資訊安全中心提供依優先順序排列的安全性警示和事件,讓客戶更容易探索及解決潛在的安全性問題。 針對每個偵測到的威脅會產生威脅情報報告,以協助事件回應小組調查威脅並進行補救。

Azure 應用程式閘道:此架構會使用已設定 Web 應用程式防火牆且已啟用 OWASP 規則集的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 InsightsApplication Insights 是多個平台上的 Web 開發人員所適用的可延伸「應用程式效能管理」服務。 Application Insights 會偵測效能異常,客戶可以用它來監視即時 Web 應用程式。 其中包括強大的分析工具可協助客戶診斷問題,並了解使用者實際上如何運用應用程式。 它是設計來協助客戶持續改善效能和可用性。

威脅模型

此參考架構的資料流程圖可供下載,或可以在以下位置找到。 此模型可協助客戶在進行修改時,了解系統基礎結構中的潛在風險要點。

適用于 PCI DSS 的 PaaS Web 應用程式威脅模型

合規性文件

Azure 安全性與合規性藍圖 - PCI DSS 客戶責任矩陣列出所有 PCI DSS 3.2 要求中的控制者和處理者責任。

Azure 安全性與合規性藍圖 - PCI DSS PaaS Web 應用程式實作矩陣提供 PaaS Web 應用程式架構處理哪些 PCI DSS 3.2 要求的相關資訊,包括詳細說明此實作如何符合每條涵蓋條款的要求。

部署這個解決方案

此「Azure 安全性與合規性藍圖自動化」包含 JSON 設定檔和 PowerShell 指令碼,它們會由 Azure Resource Manager 的 API 服務來處理,以在 Azure 中部署資源。 詳細的部署指示可於這裡 \(英文\) 取得。

快速入門

  1. 這個 GitHub 存放庫複製或下載到您的本機工作站。

  2. 檢閱 0-Setup-AdministrativeAccountAndPermission.md 並且執行提供的命令。

  3. 部署具有 Contoso 範例資料的測試解決方案,或者試驗初始生產環境。

    • 1A-ContosoWebStoreDemoAzureResources.ps1
      • 此指令碼會部署 Azure 資源,以示範使用 Contoso 範例資料的網路商店。
    • 1-DeployAndConfigureAzureResources.ps1
      • 此指令碼會部署 Azure 資源,針對客戶擁有的 Web 應用程式支援生產環境時,需要這些資源。 此環境應該由客戶根據組織需求進一步自訂。

指引與建議

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 對本文件中的資訊不做任何明示、暗示或成文之擔保。 本檔提供「原樣」。本檔所表示的資訊和檢視,包括 URL 和其他網際網路網站參考,可能會變更而不通知。 閱讀這份文件的客戶須自行承擔使用風險。
  • 本文件未提供給客戶任何 Microsoft 產品或解決方案中任何智慧財產的任何法定權利。
  • 客戶可以複製並使用這份文件,供內部參考之用。
  • 本文件的某些建議可能會導致資料、網路或 Azure 計算資源使用量增加,並可能增加客戶的 Azure 授權或訂用帳戶成本。
  • 此架構的目的是作為基礎,讓客戶進行調整以符合其特定需求,不應完全未經修改就用於生產環境中。
  • 此文件編製做為參考資料,且不應以此文件定義為客戶能符合特定合規性需求和法規的所有手段。 對於核准的客戶實作,客戶應向其組織尋求法務支援。