

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

# Amazon EMR 中的安全
<a name="emr-security"></a>

安全與合規是您共同的責任 AWS。此共同責任模型有助於減輕您的操作負擔，因為 會 AWS 操作、管理和控制從主機作業系統和虛擬化層到 EMR 叢集操作之設施實體安全的元件。您負責、管理和更新 Amazon EMR 叢集，以及設定應用程式軟體和 AWS 提供的安全控制。這種責任差異通常稱為**雲端安全性與**雲端安全性。
+ 雲端的安全性 – AWS 負責保護在 AWS 服務 中執行的基礎設施 AWS。 AWS 也為您提供可安全使用的服務。在 [AWS 合規計畫](https://aws.amazon.com/compliance/programs/)中，第三方稽核員會定期測試並驗證我們的安全功效。若要了解適用於 Amazon EMR 的合規計劃，請參閱[AWS 服務 合規計劃範圍內的](https://aws.amazon.com/compliance/services-in-scope/) 。
+ 雲端安全性 – 您也必須負責執行所有必要的安全組態和管理任務，以保護 Amazon EMR 叢集。部署 Amazon EMR 叢集的客戶負責管理執行個體上安裝的應用程式軟體，以及 AWS提供的功能組態，例如安全群組、根據您的需求、適用法律和法規加密和存取控制。

本文件有助於您了解如何在使用 Amazon EMR 時套用共同責任模型。本章中的主題說明如何設定 Amazon EMR，並使用其他 AWS 服務 來滿足您的安全與合規目標。

## 網路和基礎設施安全
<a name="w2aac30b9"></a>

作為受管服務，Amazon EMR 受到 [Amazon Web Services：安全程序概觀](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf)白皮書中所述 AWS 的全球網路安全程序的保護。 AWS 網路和基礎設施保護服務可在主機和網路層級邊界為您提供精細的保護。Amazon EMR 支援 AWS 服務 和 應用程式功能，可解決您的網路保護和合規需求。
+ **Amazon EC2 安全群組**可做為 Amazon EMR 叢集執行個體的虛擬防火牆，限制傳入和傳出網路流量。如需詳細資訊，請參閱[使用安全群組控制網路流量](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html)。
+ 如果叢集具有允許來自連接埠上公有 IP 地址的傳入流量的安全組態，**Amazon EMR 封鎖公有存取 (BPA)** 會阻止您在公有子網路中啟動叢集。如需詳細資訊，請參閱[使用 Amazon EMR 封鎖公開存取](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-block-public-access.html)。
+ **Secure Shell (SSH)** 可協助使用者安全地連線到叢集執行個體上的命令列。您也可以使用 SSH 來檢視應用程式託管在叢集主節點上的 Web 介面。如需詳細資訊，請參閱[針對 SSH 登入資料使用 EC2 金鑰對](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-access-ssh.html)和[連線至叢集](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node.html)。

## 預設 Amazon Linux AMI for Amazon EMR 的更新
<a name="w2aac30c11"></a>

**重要**  
執行 Amazon Linux 或 Amazon Linux 2 Amazon Machine Image (AMI) 的 EMR 叢集會使用預設的 Amazon Linux 行為，而且不會自動下載和安裝需要重新開機的重要和關鍵核心更新。這與執行預設 Amazon Linux AMI 的其他 Amazon EC2 執行個體的行為相同。如果需要重新開機的新 Amazon Linux 軟體更新 (例如核心、NVIDIA 和 CUDA 更新) 在 Amazon EMR 版本發行後可用，則執行預設 AMI 的 EMR 叢集執行個體不會自動下載並安裝這些更新。若要取得核心更新，您可以[自訂 Amazon EMR AMI](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html)，以[使用最新的 Amazon Linux AMI](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/finding-an-ami.html)。

取決於您應用程式的安全狀態和叢集執行的時間長度，您可以選擇定期重新啟動您的叢集，以套用安全性更新，或是建立引導操作，來自訂套件安裝與更新。您也可以選擇進行測試，然後在執行中的叢集執行個體上，安裝選取的安全性更新。如需詳細資訊，請參閱[使用預設 Amazon Linux AMI for Amazon EMR](emr-default-ami.md)。請注意，您的聯網組態必須允許 HTTP 和 HTTPS 輸出到 Amazon S3 中的 Linux 儲存庫，否則安全性更新將無法成功。

## AWS Identity and Access Management 搭配 Amazon EMR
<a name="w2aac30c13"></a>

AWS Identity and Access Management (IAM) 是一種 AWS 服務，可協助管理員安全地控制對 AWS 資源的存取。IAM 管理員可控制哪些人員可*進行身分驗證* (登入) 並*獲得授權* (具有許可) 以使用 Amazon EMR 資源。IAM 身分包括使用者、群組和角色。IAM 角色類似於 IAM 使用者，但未與特定人員建立關聯，旨在供需要許可的任何使用者擔任。如需詳細資訊，請參閱 [AWS Identity and Access Management for Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-access-iam.html)。Amazon EMR 使用多個 IAM 角色來協助您實作 Amazon EMR 叢集的存取控制。IAM 是一項服務 AWS ，您可以免費使用。
+ **Amazon EMR 的 IAM 角色 (EMR 角色）** – 控制 Amazon EMR 服務如何 AWS 服務 代表您存取其他 ，例如在 Amazon EMR 叢集啟動時佈建 Amazon EC2 執行個體。如需詳細資訊，請參閱[設定 AWS 服務 和 資源的 Amazon EMR 許可的 IAM 服務角色](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-roles.html)。
+ **叢集 EC2 執行個體的 IAM 角色 (EC2 執行個體描述檔）** – 在執行個體啟動時指派給 Amazon EMR 叢集中每個 EC2 執行個體的角色。在叢集上執行的應用程式程序使用此角色與其他 互動 AWS 服務，例如 Amazon S3。如需詳細資訊，請參閱[叢集 EC2 執行個體的 IAM 角色](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-iam-role-for-ec2.html)。
+ **應用程式 （執行期角色） 的 IAM 角色** – 您可以在將任務或查詢提交至 Amazon EMR 叢集時指定的 IAM 角色。您提交至 Amazon EMR 叢集的任務或查詢會使用執行期角色來存取 AWS 資源，例如 Amazon S3 中的物件。您可以使用 Amazon EMR 為 Spark 和 Hive 作業指定執行期角色。透過使用執行時間角色，您可以使用不同的 IAM 角色來隔離在相同叢集上執行的任務。如需詳細資訊，請參閱[使用 IAM 角色做為 Amazon EMR 的執行期角色](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-steps-runtime-roles.html)。

人力身分是指在其中建置或操作工作負載的使用者 AWS。Amazon EMR 支援具有下列項目的人力資源身分：
+ 建議將 **AWS IAM 身分中心 (Idc)** AWS 服務 用於管理使用者對 AWS 資源的存取。這是您可以指派人力資源身分、對多個 AWS 帳戶和應用程式的一致存取的單一位置。Amazon EMR 透過信任的身分傳播來支援人力資源身分。透過受信任的身分傳播功能，使用者可以登入應用程式，該應用程式可以將使用者的身分傳遞給其他 AWS 服務 ，以授權存取資料或資源。如需詳細資訊，請參閱[AWS 使用 Amazon EMR 啟用 IAM 身分中心的](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-idc.html)支援。

  **Lightweight Directory Access Protocol (LDAP)** 是一種開放、廠商中立的業界標準應用程式通訊協定，用於透過網路存取和維護使用者、系統、服務和應用程式的相關資訊。LDAP 通常用於對 Active Directory (AD) 和 OpenLDAP 等公司身分伺服器進行使用者身分驗證。透過使用 EMR 叢集啟用 LDAP，您可以讓使用者使用現有的登入資料來驗證和存取叢集。如需詳細資訊，請參閱[使用 Amazon EMR 啟用 LDAP 支援](https://docs.aws.amazon.com/emr/latest/ManagementGuide/ldap.html)。

  **Kerberos** 是一種網路身分驗證通訊協定，旨在使用私密金鑰密碼編譯為用戶端/伺服器應用程式提供強式身分驗證。當您使用 Kerberos 時，Amazon EMR 會為其安裝在叢集上的應用程式、元件和子系統設定 Kerberos，以便彼此進行身分驗證。若要存取已設定 Kerberos 的叢集，Kerberos 網域控制站 (KDC) 中必須有 kerberos 主體。如需詳細資訊，請參閱[使用 Amazon EMR 啟用 Kerberos 支援](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-kerberos.html)。

### 單一租戶和多租戶叢集
<a name="w2aac30c13c11"></a>

預設會針對單一租用設定叢集，並以 EC2 執行個體描述檔做為 IAM 身分。在單一租用戶叢集中，每個任務都可以完整存取叢集，並且會根據 EC2 執行個體描述檔存取所有 AWS 服務 和 資源。在多租用戶叢集中，租用戶彼此隔離，並且租用戶無法完整存取叢集和叢集的 EC2 執行個體。多租戶叢集上的身分是執行期角色或人力識別。在多租戶叢集中，您也可以透過 AWS Lake Formation 或 Apache Ranger 啟用精細存取控制 (FGAC) 的支援。已啟用執行時間角色或 FGAC 的叢集也會透過 iptable 停用對 EC2 執行個體描述檔的存取。

**重要**  
任何可存取單一租用戶叢集的使用者都可以在 Linux 作業系統 (OS) 上安裝任何軟體、變更或移除 Amazon EMR 安裝的軟體元件，以及影響屬於叢集的 EC2 執行個體。如果您想要確保使用者無法安裝或變更 Amazon EMR 叢集的組態，建議您為叢集啟用多租用戶。您可以透過啟用執行時間角色、 AWS IAM 身分中心、Kerberos 或 LDAP 的支援，在叢集上啟用多租用。

## 資料保護
<a name="w2aac30c15"></a>

透過 AWS，您可以使用 AWS 服務 和 工具來控制資料，以判斷資料如何受到保護，以及誰可以存取資料。 AWS Identity and Access Management (IAM) 等服務可讓您安全地管理對 AWS 服務 和 resources. AWS CloudTrail enables 偵測和稽核的存取。Amazon EMR 可讓您使用由您管理 AWS 或完全管理的金鑰，輕鬆加密 Amazon S3 中的靜態資料。Amazon EMR 也支援啟用傳輸中資料的加密。如需詳細資訊，請參閱[加密靜態和傳輸中的資料](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-data-encryption.html)。

### 資料存取控制
<a name="w2aac30c15b5"></a>

透過資料存取控制，您可以控制 IAM 身分或人力資源身分可存取的資料。Amazon EMR 支援下列存取控制：
+ **IAM 身分型政策** – 管理與 Amazon EMR 搭配使用的 IAM 角色許可。IAM 政策可與標記結合使用，cluster-by-cluster控制存取。如需詳細資訊，請參閱 [AWS Identity and Access Management for Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-access-iam.html)。
+ **AWS Lake Formation** 會集中管理資料的許可，讓您更輕鬆地跨組織和外部共用。您可以使用 Lake Formation 對 Glue Data Catalog AWS 中的資料庫和資料表啟用精細的資料欄層級存取。如需詳細資訊，請參閱[搭配使用 AWS Lake Formation 與 Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-lake-formation.html)。
+ **Amazon S3 存取會將** Active Directory 或 AWS Identity and Access Management (IAM) 主體等目錄中的身分映射到 S3 中的資料集。此外，S3 存取會授予日誌最終使用者身分和用於存取 S3 資料的應用程式 AWS CloudTrail。如需詳細資訊，請參閱[搭配 Amazon EMR 使用 Amazon S3 存取授權](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-access-grants.html)。
+ **Apache Ranger** 是一種架構，可在整個 Hadoop 平台上啟用、監控和管理全面的資料安全性。Amazon EMR 支援 Apache Hive Metastore 和 Amazon S3 的 Apache Ranger 型精細存取控制。如需詳細資訊，請參閱[將 Apache Ranger 與 Amazon EMR 整合](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-ranger.html)。