在啟動時監控 Amazon EMR 叢集的傳輸中加密 - AWS 方案指引

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在啟動時監控 Amazon EMR 叢集的傳輸中加密

由蘇珊娜康諾(AWS)創建

環境:生產

技術:分析;大數據;雲端原生;安全性、身分識別、合規性

工作負載:開源

AWS 服務:Amazon EMR; Amazon SNS; AWS CloudTrail; Amazon CloudWatch

Summary

此模式提供安全控制,可在啟動時監控 Amazon EMR 叢集,並在未啟用傳輸中加密時傳送警示。 

Amazon EMR 是一種網絡服務,可讓您輕鬆地運行大數據框架(例如 Apache Hadoop)來處理和分析數據。Amazon EMR 透過執行映射和減少 parallel 步驟,以符合成本效益的方式處理大量資料。

資料加密可防止未經授權的使用者存取或讀取靜態資料或傳輸中的資料。靜態資料是指透過 Amazon 簡單儲存服務 (Amazon S3) 儲存在媒體中的資料,例如每個節點上的本機檔案系統、Hadoop 分散式檔案系統 (HDFS) 或 EMR 檔案系統 (EMRFS)。傳輸中的資料是指傳輸網路並在工作之間傳輸的資料。傳輸中加密支持阿帕奇星火,阿帕奇 TEZ,阿帕奇 Hadoop 的,阿帕奇 HBase 的 HBase 的,和普雷斯托開源加密功能。您可以透過從 AWS Command Line Interface (AWS CLI) (AWS CLI)、主控台或 AWS 開發套件建立安全組態,並指定資料加密設定來啟用加密。您可以透過下列兩種方式提供傳輸中加密的加密成品:

  • 通過將證書的壓縮文件上傳到 Amazon S3。

  • 藉由參照提供加密加工品的自訂 Java 類別。

此模式隨附的安全控制可監控 API 呼叫,並在RunJobFlow動作上產生 Amazon E CloudWatch vents 事件。此事件會呼叫 AWS Lambda 函數,該函數會執行 Python 指令碼。函數會從事件 JSON 輸入取得 EMR 叢集識別碼,並執行下列檢查以判斷是否有安全性違規:

  • 檢查 EMR 叢集是否具有 Amazon EMR 特定的安全組態。

  • 如果叢集確實具有安全性設定,請檢查傳輸中是否已啟用加密。

  • 如果叢集沒有安全組態,請使用 Amazon Simple Notification Service (Amazon SNS) 將警示傳送至您提供的電子郵件地址。該通知會指定來源於通知的 EMR 叢集名稱、違規詳細資訊、AWS 區域和帳戶資訊,以及 AWS Lambda ARN (Amazon 資源名稱)。

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • 用於上傳此模式提供的 Lambda 程式碼的 S3 儲存貯體。

  • 您希望接收違規通知的電子郵件地址。

  • 啟用 Amazon EMR 記錄功能,可存取所有 API 日誌。

限制

  • 此偵探控制是區域性的,必須部署在您要監控的每個 AWS 區域中。

產品版本

  • Amazon EMR 版本 4.8.0 或更高版本。

架構

工作流架構

自動化和規模

工具

AWS 服務

  • Amazon EMR — Amazon EMR 是一個受管叢集平台,可簡化在 AWS 上執行大數據架構 (例如 Apache HadoopApache Spark),以處理和分析大量資料。透過使用這些架構和相關的開放原始碼專案,您可以針對分析目的和商業智慧工作負載處理資料。此外,您可以使用 Amazon EMR 將大量資料轉換和移出其他 AWS 資料存放區和資料庫,例如 Amazon S3 和 Amazon DynamoDB。

  • AWS Cloudformation — AWS 可 CloudFormation 協助您建立 AWS 資源的模型和設定、快速且一致地佈建這些資源,以及在整個生命週期中進行管理。您可以使用範本來描述您的資源及其相依性,並將它們一起啟動並設定為堆疊,而不是個別管理資源。您可以跨多個 AWS 帳戶和 AWS 區域管理和佈建堆疊。

  • AWS Cloudwatch 活動 — Amazon CloudWatch 活動提供近乎即時的系統事件串流,用於描述 AWS 資源的變更。 CloudWatch 事件會在發生作業變更時瞭解作業變更,並視需要採取更正動作,方法是傳送訊息以回應環境、啟動功能、進行變更,以及擷取狀態資訊。

  • AWS Lambda — AWS Lambda 是一種運算服務,可支援執行程式碼,而無需佈建或管理伺服器。Lambda 只會在需要時執行您的程式碼,並自動從每天幾個請求擴展到每秒數千個請求。只需為使用的運算時間支付費用,一旦未執行程式碼,就會停止計費。

  • AWS SNS — Amazon Simple Notification Service (Amazon SNS) 協調和管理發佈者和客戶之間的訊息傳送,包括 Web 伺服器和電子郵件地址。訂閱者會收到發佈到所訂閱主題的所有訊息,且某一主題的所有訂閱者均會收到相同訊息。

Code

該模式包括一個包含兩個文件的附件:

  • EMRInTransitEncryption.zip是包含安全控制 (Lambda 程式碼) 的壓縮檔案。

  • EMRInTransitEncryption.yml是部署安全控制的 CloudFormation 範本。

有關如何使用這些文件的信息,請參見 Epics 部分。

史诗

任務描述所需技能
將程式碼上傳到 S3 儲存貯體。

建立新的 S3 儲存貯體,或使用現有的 S3 儲存貯體上傳附加的EMRInTransitEncryption.zip檔案 (Lambda 程式碼)。此儲存貯體必須與 CloudFormation 範本和您要評估的資源位於相同的 AWS 區域。

雲端架構師
部署 CloudFormation 範本。

在與 S3 儲存貯體相同的 AWS 區域中開啟 Cloudformation 主控台,然後部署附件中提供的EMRInTransitEncryption.yml檔案。在下一個史詩中,提供模板參數的值。

雲端架構師
任務描述所需技能
提供 S3 儲存貯體名稱。

輸入您在第一個史詩中建立或選取的 S3 儲存貯體的名稱。這個 S3 儲存貯體包含 Lambda 程式碼的 .zip 檔案,且必須與 CloudFormation 範本和要評估的資源位於相同的 AWS 區域。

雲端架構師
提供 S3 金鑰。

在 S3 儲存貯體中指定 Lambda 程式碼 .zip 檔案的位置,而不使用前導斜線 (例如,EMRInTransitEncryption.zipcontrols/EMRInTransitEncryption.zip)。

雲端架構師
提供電子郵件地址。

指定您要在其中接收違規通知的作用中電子郵件地址。 

雲端架構師
指定記錄日誌層級。

指定 Lambda 記錄檔的記錄層級和詳細資訊。 Info指定應用程式進度的詳細資訊訊息,應該只用於偵錯。 Error指定仍然允許應用程式繼續執行的錯誤事件。 Warning指定潛在的有害情況。

雲端架構師
任務描述所需技能
確認電子郵件訂閱。

成功部署 CloudFormation 範本後,會將訂閱電子郵件訊息傳送至您提供的電子郵件地址。若要接收通知,您必須確認此電子郵件訂閱。                                                     

雲端架構師

附件

若要存取與此文件相關聯的其他內容,請解壓縮下列檔案:attachment.zip