現在,網際網路上的流量透過使用公開金鑰和私密金鑰保持加密,這些金鑰可在資料傳輸時對其進行加密。Cloudflare 透過管理保護此資料的加密金鑰,協助確保數百萬個網站的安全。為了提供快如閃電的服務,Cloudflare 將這些金鑰儲存在我們遍佈 150 多個國家/地區的大量資料中心中。然而,一些合規性法規要求只能將私密金鑰儲存在特定的地理位置。
2017 年,我們推出了 Geo Key Manager,該產品可讓客戶在不同的地理位置儲存和管理其網域的加密金鑰,以在滿足合規性法規要求的同時確保資料安全。我們在《一般資料保護規定 (GDPR)》生效前幾個月發佈了該產品,並將其構建為支援三個地區:美國、歐盟以及一組採用最高安全性措施的頂層資料中心。自那以後,類似 GDPR 的法律迅速發展,現在,超過 15 個國家/地區實施了類似的資料保護法律或法規,其中包括對跨特定邊界資料傳輸和/或在特定邊界內資料當地語系化的限制。
Cloudflare 希望為未來做好萬全準備。我們要為客戶提供工具,讓他們能夠在這個不斷變化的環境中保持合規性。正因為如此,我們很高興地宣佈,新版 Geo Key Manager 現已進入封閉測試階段,該版本可讓客戶按國家(「僅在印度儲存我的私密金鑰」)、按地區(「僅在歐盟儲存我的私密金鑰」)或按標準(例如,「僅在符合 FIPS 標準的資料中心中儲存我的私密金鑰」)定義邊界——請在這裡註冊吧!
來自 Geo Key Manager v1 的經驗教訓
Geo Key Manager 現已存在多年,我們利用這段時間收集了客戶的意見反應。隨著對彈性系統的需求不斷增長,我們決定重新開始,建立新版 Geo Key Manager,從而更好地滿足客戶的需求。
我們最初發佈的 Geo Key Manager 可為美國、歐盟和最高安全資料中心提供支援。當時這些地區已經足夠了,但客戶們正在其他管轄區中艱難地履行資料當地語系化義務,因此在選取國家和地區時需要更多的靈活性。一些客戶希望能夠設定限制以在一個國家/地區維護其私密金鑰,一些客戶希望將金鑰儲存在除了特定國家/地區以外的任何地方,還有一些客戶可能希望混合及比對規則,比如「將其儲存在 X 和 Y,但不儲存在 Z」。我們從客戶那裡瞭解到,他們需要靈活性來跟上不斷變化的規則和原則——而這正是我們計畫擴建之物。
我們面臨的下一個問題是可擴展性。在構建初始地區時,我們包括了一個硬式編碼的資料中心清單,這些資料中心符合我們對美國、歐盟、「高安全性」資料中心地區的準則。然而,此清單是靜態的,因為基礎密碼編譯不支援對資料中心清單進行動態變更。為了將私密金鑰散發給符合我們準則的新資料中心,我們必須全面重設系統。除此以外,我們的網路每年都會顯著擴大,自初始發佈以來已建立了 100 多個新的資料中心。這意味著可用來儲存私密金鑰的任何新的潛在位置目前都未使用,因此降低了使用此功能的客戶的效能與可靠性。
以我們目前的規模,自動化和擴展都是必備功能。每次在網路上建立資料中心或從網路中移除資料中心,我們的新系統都需要在無需任何人工干預或大規模重設的情況下動態擴展。
最後,我們最大的一個收穫就是客戶會犯錯,例如,定義的地區太小,導致可用性成為問題。我們的工作就是防止客戶做出會對他們產生負面影響的變更。
使用新版 Geo Key Manager 定義自己的地理限制
Cloudflare 在過去幾年中有了顯著的增長,我們的國際客戶群也是如此。客戶需要確保其流量實現地區化管理。這個地區可以像一塊大陸那麼大,比如,亞洲。它也可以是一個特定的國家,比如,日本。
透過與客戶的交談,我們得知他們希望能夠自己定義這些地區。正因為如此,今天我們很高興地宣佈,客戶將能夠使用 Geo Key Manager 來建立我們所說的「原則」。
原則可以是單一國家,由兩個字母的 (ISO 3166) 國碼定義。它可以是一個地區,例如,「EU」(代表歐盟)或大洋洲。它可以是二者的組合和配對,「country:US or region: EU」。
使用我們基於原則的新版 Geo Key Manager,您可以建立國家及受支援地區的允許清單或封鎖清單,從而控制在其中儲存私密金鑰的邊界。如果您要在全球範圍內儲存私密金鑰並略過一些國家/地區,就可以這樣做。
如果您希望在歐盟和美國儲存私密金鑰,則可以發起下列 API 呼叫:
如果您希望在歐盟但不在法國儲存私密金鑰,則可進行下列定義:
curl -X POST "https://api.cloudflare.com/client/v4/zones/zone_id/custom_certificates" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: auth-key" \
-H "Content-Type: application/json" \
--data '{"certificate":"certificate","private_key":"private_key","policy":"(country: US) or (region: EU)", "type": "sni_custom"}'
現在,Geo Key Manager 可支援 30 多個國家和地區。但這並不是全部!我們的 Geo Key Manager 技術的超能力在於它實際上不必基於「地理」,而是基於屬性。將來,我們會建立一個原則,讓我們的客戶基於 FedRAMP 或 ISO 27001 之類的合規性標準定義儲存私密金鑰的位置。
curl -X POST "https://api.cloudflare.com/client/v4/zones/zone_id/custom_certificates" \
-H "X-Auth-Email: user@example.com" \
-H "X-Auth-Key: auth-key" \
-H "Content-Type: application/json" \
--data '{"certificate":"certificate","private_key":"private_key","policy": "region: EU and (not country: FR)", "type": "sni_custom"}'
可靠性、復原能力與備援
透過為客戶提供針對 Geo Key Manager 的遠端控制能力,我們希望確保客戶瞭解其變更對備援和延遲的影響。
在備援方面,我們最大的一個問題是允許客戶選擇足夠小的地區,這樣如果移除一個資料中心進行維護,則會嚴重影響可用性。為了保護我們的客戶,我們新增了備援限制。這些限制可防止我們的客戶設定包含太少資料中心的地區,從而確保一個原則內的所有資料中心都能提供高可用性和備援。
不僅如此,在最近幾年中,我們還大幅改進了為 Geo Key Manager 提供支援的基礎網路。有關我們如何實現的相關資訊,請密切關注 Geo Key Manager 的技術深度解讀。
效能極為重要
透過原始地區(美國、歐盟和最高安全性資料中心),我們瞭解到,客戶可能會忽視在為特定地區定義金鑰管理員時可能會發生的延遲影響。想像一下,您的金鑰儲存在美國。對於位於亞洲的客戶而言,對在世界各地傳遞的要求都會有一定的延遲影響。現在,由於客戶能夠定義更細微的地區,我們希望確保客戶在進行變更之前瞭解變更的影響。
如果您是一個電子商務平台,則效能始終是要考量的頭等大事。我們目前正在研究的就是 Geo Key Manager 原則的效能指標,從地區角度——「對位於亞洲的客戶有什麼延遲影響?」,以及從全球角度——「對世界上任何人來說,此原則有什麼平均影響?」。
透過瞭解延遲影響,如果您發現這種影響是無法接受的,則應該為您的服務建立一個特定於其所服務地區的單獨網域。
封閉測試版,現已推出!
有興趣試用最新版 Geo Key Manager 嗎?請填寫此表單。
即將推出!
目前,Geo Key Manager 僅可透過 API 使用。但是,我們正在努力為其建立一個易於使用的 UI,以便客戶能夠輕鬆地管理其原則和地區。此外,我們還會在效能或備援方面看到任何降級的影響時,顯示效能度量和警告,以確保客戶在設定原則時多加注意。
我們也很高興地將 Geo Key Manager 產品延伸到了自訂上傳憑證之外。將來,透過 Advanced Certificate Manager 或 SSL for SaaS 發出的憑證將可以為金鑰儲存新增基於原則的限制。
最後,我們希望新增更多的預設地區,來簡化客戶的選取過程。如果您希望我們為任何地區提供支援,或者有與 Geo Key Manager 相關的一般意見反應或功能要求,請將其記在表單上。我們很樂意聽取客戶的意見!