

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

# 了解傳輸中加密
<a name="emr-encryption-support-matrix"></a>

您可以設定 EMR 叢集執行開放原始碼架構，例如 [Apache Spark](https://aws.amazon.com/emr/features/spark/)、[Apache Hive](https://aws.amazon.com/emr/features/hive/) 和 [Presto](https://aws.amazon.com/emr/features/presto/)。每個開放原始碼架構都有一組在叢集的 EC2 執行個體上執行的程序。每個程序都可以託管網路端點以進行網路通訊。

如果在 EMR 叢集上啟用傳輸中加密，則不同的網路端點會使用不同的加密機制。請參閱下列各節，進一步了解傳輸中加密支援的特定開放原始碼架構網路端點、相關的加密機制，以及哪些 Amazon EMR 版本新增了支援。每個開放原始碼應用程式也可能有您可以變更的不同最佳實務和開放原始碼架構組態。

 對於最多的傳輸中加密涵蓋範圍，我們建議您同時啟用傳輸中加密和 Kerberos。如果您只啟用傳輸中加密，則傳輸中加密僅適用於支援 TLS 的網路端點。Kerberos 是必要的，因為某些開放原始碼架構網路端點使用 Simple Authentication and Security Layer (SASL) 進行傳輸中加密。

請注意，Amazon EMR 7.x.x 版本中不支援的任何開放原始碼架構都不會包含在內。

## Spark
<a name="emr-encryption-support-matrix-spark"></a>

當您在安全組態中啟用傳輸中加密時， `spark.authenticate` 會自動設定為 ，`true`並針對 RPC 連線使用 AES 型加密。

從 Amazon EMR 7.3.0 開始，如果您使用傳輸中加密和 Kerberos 身分驗證，則無法使用依賴 Hive 中繼存放區的 Spark 應用程式。Hive 3 修正 [HIVE-16340](https://issues.apache.org/jira/browse/HIVE-16340) 中的此問題。當開放原始碼 Spark 可以升級至 Hive 3 時，[HIVE-44114](https://issues.apache.org/jira/browse/SPARK-44114) 會完全解決此問題。同時，您可以將 `hive.metastore.use.SSL` 設定為 `false`以解決此問題。如需詳細資訊，請參閱[設定應用程式](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)。

如需詳細資訊，請參閱 Apache [Spark 文件](https://spark.apache.org/docs/latest/security)中的 Spark 安全性。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Spark 歷史記錄伺服器 | spark.ssl.history.port | 18480 | TLS | emr-5.3.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Spark 使用者介面 | spark.ui.port | 4440 | TLS | emr-5.3.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Spark 驅動程式 | spark.driver.port | 動態 | Spark AES 型加密 | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Spark 執行器 | 執行器連接埠 （無具名組態） | 動態 | Spark AES 型加密 | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| YARN NodeManager | spark.shuffle.service.port1 | 7337 | Spark AES 型加密 | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 

1`spark.shuffle.service.port` 託管於 YARN NodeManager，但僅供 Apache Spark 使用。

**已知問題**

在啟用傳輸中的叢集`spark.yarn.historyServer.address`組態目前使用連接埠 `18080`，這可防止使用 YARN 追蹤 URL 存取 Spark 應用程式 UI。**影響版本：**EMR - 7.3.0 到 EMR - 7.9.0。

使用下列解決方法：

1. 修改 中的`spark.yarn.historyServer.address`組態`/etc/spark/conf/spark-defaults.conf`，以在執行中的叢集`18480`上使用`HTTPS`連接埠號碼。

1. 這也可以在啟動叢集時的組態覆寫中提供。

範例組態：

```
[
                               {
                                 "Classification": "spark-defaults",
                                 "Properties": {
                                     "spark.yarn.historyServer.address": "${hadoopconf-yarn.resourcemanager.hostname}:18480"
                                 }
                               }
  
                               ]
```

## Hadoop YARN
<a name="emr-encryption-support-matrix-hadoop-yarn"></a>

[ Secure Hadoop RPC](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC) 設定為 `privacy`，並使用 SASL 型傳輸中加密。這需要在安全組態中啟用 Kerberos 身分驗證。如果您不想要 Hadoop RPC 的傳輸中加密，請設定 `hadoop.rpc.protection = authentication`。我們建議您使用預設組態，以獲得最大的安全性。

如果您的 TLS 憑證不符合 TLS 主機名稱驗證要求，您可以設定 `hadoop.ssl.hostname.verifier = ALLOW_ALL`。我們建議您使用 的預設組態`hadoop.ssl.hostname.verifier = DEFAULT`，這會強制執行 TLS 主機名稱驗證。

若要停用 YARN Web 應用程式端點的 HTTPS，請設定 `yarn.http.policy = HTTP_ONLY`。這可讓這些端點的流量保持未加密。我們建議您使用預設組態，以獲得最大的安全性。

如需詳細資訊，請參閱 Apache Hadoop 文件中的[處於安全模式的 Hadoop](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| ResourceManager | yarn.resourcemanager.webapp.address | 8088 | TLS | emr-7.3.0\+ | 
| ResourceManager | yarn.resourcemanager.resource-tracker.address | 8025 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| ResourceManager | yarn.resourcemanager.scheduler.address | 8030 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| ResourceManager | yarn.resourcemanager.address | 8032 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| ResourceManager | yarn.resourcemanager.admin.address | 8033 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| TimelineServer | yarn.timeline-service.address | 10200 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| TimelineServer | yarn.timeline-service.webapp.address | 8188 | TLS | emr-7.3.0\+ | 
| WebApplicationProxy | yarn.web-proxy.address | 20888 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| NodeManager | yarn.nodemanager.address | 8041 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| NodeManager | yarn.nodemanager.localizer.address | 8040 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| NodeManager | yarn.nodemanager.webapp.address | 8044 | TLS | emr-7.3.0\+ | 
| NodeManager | mapreduce.shuffle.port1 | 13562 | TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| NodeManager | spark.shuffle.service.port2 | 7337 | Spark AES 型加密 | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 

1 `mapreduce.shuffle.port` 託管在 YARN NodeManager 上，但僅供 Hadoop MapReduce 使用。

2 `spark.shuffle.service.port` 託管於 YARN NodeManager，但僅供 Apache Spark 使用。

**已知問題**

中的`yarn.log.server.url`組態目前使用 HTTP 搭配連接埠 19888，以防止從 Resource Manager UI 存取應用程式日誌。**影響版本：**EMR - 7.3.0 到 EMR - 7.8.0。

使用下列解決方法：

1. 修改 中的`yarn.log.server.url`組態`yarn-site.xml`，以使用`HTTPS`通訊協定和連接埠號碼 `19890`。

1. 重新啟動 YARN Resource Manager：`sudo systemctl restart hadoop-yarn-resourcemanager.service`。

## Hadoop HDFS
<a name="emr-encryption-support-matrix-hadoop-hdfs"></a>

如果 EMR 叢集中啟用傳輸中加密，Hadoop 名稱節點、資料節點和日誌節點預設都支援 TLS。

[ Secure Hadoop RPC](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC) 設定為 `privacy`，並使用 SASL 型傳輸中加密。這需要在安全組態中啟用 Kerberos 身分驗證。

建議您不要變更用於 HTTPS 端點的預設連接埠。

[ HDFS 區塊傳輸上的資料加密使用](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_Block_data_transfer.) AES 256，並要求在安全組態中啟用靜態加密。

如需詳細資訊，請參閱 Apache Hadoop 文件中的[處於安全模式的 Hadoop](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| 名稱節點 | dfs.namenode.https-address | 9871 | TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| 名稱節點 | dfs.namenode.rpc-address | 8020 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Datanode | dfs.datanode.https.address | 9865 | TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Datanode | dfs.datanode.address | 9866 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| 日誌節點 | dfs.journalnode.https-address | 8481 | TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| 日誌節點 | dfs.journalnode.rpc-address | 8485 | SASL \+ Kerberos | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| DFSZKFailoverController | dfs.ha.zkfc.port | 8019 | 無 | TLS for ZKFC 僅支援 Hadoop 3.4.0。如需詳細資訊，請參閱 [HADOOP-18919](https://issues.apache.org/jira/browse/HADOOP-18919)。Amazon EMR 7.1.0 版目前在 Hadoop 3.3.6 上。未來 Hadoop 3.4.0 上會有較高的 Amazon EMR 版本 | 

## Hadoop MapReduce
<a name="emr-encryption-support-matrix-hadoop-mapreduce"></a>

在 EMR 叢集中啟用傳輸中加密時，Hadoop MapReduce、任務歷史記錄伺服器和 MapReduce 隨機播放預設支援 TLS。

[ Hadoop MapReduce 加密隨機播放](https://hadoop.apache.org/docs/r2.7.1/hadoop-mapreduce-client/hadoop-mapreduce-client-core/EncryptedShuffle.html)使用 TLS。

建議您不要變更 HTTPS 端點的預設連接埠。

如需詳細資訊，請參閱 Apache Hadoop 文件中的[處於安全模式的 Hadoop](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| JobHistoryServer | mapreduce.jobhistory.webapp.https.address | 19890 | TLS | emr-7.3.0\+ | 
| YARN NodeManager | mapreduce.shuffle.port1 | 13562 | TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+、emr-7.0.0\+ | 

1 `mapreduce.shuffle.port` 託管在 YARN NodeManager 上，但僅供 Hadoop MapReduce 使用。

## Presto
<a name="emr-encryption-support-matrix-presto"></a>

在 Amazon EMR 5.6.0 版及更高版本中，Presto 協調器與工作者之間的內部通訊會使用 TLS Amazon EMR 設定所有必要組態，以在 Presto 中啟用[安全的內部通訊](https://prestodb.io/docs/current/security/internal-communication.html)。

如果連接器使用 Hive 中繼存放區做為中繼資料存放區，通訊器和 Hive 中繼存放區之間的通訊也會使用 TLS 加密。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Presto 協調器 | http-server.https.port | 8446 | TLS | emr-5.6.0\+、emr-6.0.0\+、emr-7.0.0\+ | 
| Presto 工作者 | http-server.https.port | 8446 | TLS | emr-5.6.0\+、emr-6.0.0\+、emr-7.0.0\+ | 

## Trino
<a name="emr-encryption-support-matrix-trino"></a>

在 Amazon EMR 6.1.0 版及更新版本中，Presto 協調器與工作者之間的內部通訊會使用 TLS Amazon EMR 設定所有必要組態，以在 Trino 中啟用[安全的內部通訊](https://trino.io/docs/current/security/internal-communication.html)。

如果連接器使用 Hive 中繼存放區做為中繼資料存放區，通訊器和 Hive 中繼存放區之間的通訊也會使用 TLS 加密。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Trino 協調器 | http-server.https.port | 8446 | TLS | emr-6.1.0\+、emr-7.0.0\+ | 
| Trino 工作者 | http-server.https.port | 8446 | TLS | emr-6.1.0\+、emr-7.0.0\+ | 

## Hive 和 Tez
<a name="emr-encryption-support-matrix-hive-tez"></a>

根據預設，在 EMR 叢集中啟用傳輸中加密時，Hive 伺服器 2、Hive 中繼存放區伺服器、Hive LLAP Daemon Web UI 和 Hive LLAP 隨機播放都支援 TLS。如需 Hive 組態的詳細資訊，請參閱[組態屬性](https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties)。

在 EMR 叢集中啟用傳輸中加密時，託管在 Tomcat 伺服器上的 Tez UI 也會啟用 HTTPS。不過，Tez AM Web UI 服務已停用 HTTPS，因此 AM 使用者無法存取開啟 SSL 接聽程式的金鑰存放區檔案。您也可以使用布林值組態 `tez.am.tez-ui.webservice.enable.ssl`和 啟用此行為`tez.am.tez-ui.webservice.enable.client.auth`。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| HiveServer2 | hive.server2.thrift.port | 10000 | TLS | emr-6.9.0\+、emr-7.0.0\+ | 
| HiveServer2 | hive.server2.thrift.http.port | 10001 | TLS | emr-6.9.0\+、emr-7.0.0\+ | 
| HiveServer2 | hive.server2.webui.port | 10002 | TLS | emr-7.3.0\+ | 
| HiveMetastoreServer | hive.metastore.port | 9083 | TLS | emr-7.3.0\+ | 
| LLAP 協助程式 | hive.llap.daemon.yarn.shuffle.port | 15551 | TLS | emr-7.3.0\+ | 
| LLAP 協助程式 | hive.llap.daemon.web.port | 15002 | TLS | emr-7.3.0\+ | 
| LLAP 協助程式 | hive.llap.daemon.output.service.port | 15003 | 無 | Hive 不支援此端點的傳輸中加密 | 
| LLAP 協助程式 | hive.llap.management.rpc.port | 15004 | 無 | Hive 不支援此端點的傳輸中加密 | 
| LLAP 協助程式 | hive.llap.plugin.rpc.port | 動態 | 無 | Hive 不支援此端點的傳輸中加密 | 
| LLAP 協助程式 | hive.llap.daemon.rpc.port | 動態 | 無 | Hive 不支援此端點的傳輸中加密 | 
| WebHCat | templeton.port | 50111 | TLS | emr-7.3.0\+ | 
| Tez 應用程式主伺服器 | tez.am.client.am.port-range<br />tez.am.task.am.port-range | 動態 | 無 | Tez 不支援此端點的傳輸中加密 | 
| Tez 應用程式主伺服器 | tez.am.tez-ui.webservice.port-range | 動態 | 無 | 預設為停用。可以使用 emr-7.3.0\+ 中的 Tez 組態啟用 | 
| Tez 任務 | N/A - 無法設定 | 動態 | 無 | Tez 不支援此端點的傳輸中加密 | 
| Tez UI | 可透過託管 Tez UI 的 Tomcat 伺服器進行設定 | 8080 | TLS | emr-7.3.0\+ | 

## Flink
<a name="emr-encryption-support-matrix-flink"></a>

 當您在 EMR 叢集中啟用傳輸中加密時，Apache Flink REST 端點和 flink 程序之間的內部通訊預設支援 TLS。

 [https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-internal-enabled](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-internal-enabled) 設定為 `true`，並使用傳輸中加密進行 Flink 程序之間的內部通訊。如果您不希望內部通訊的傳輸中加密，請停用該組態。我們建議您使用預設組態，以獲得最大的安全性。

 Amazon EMR [https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-rest-enabled](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-rest-enabled)會將 設定為 ，`true`並為 REST 端點使用傳輸中加密。此外，Amazon EMR 也會[https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#historyserver-web-ssl-enabled](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#historyserver-web-ssl-enabled)將 設為 true，以使用與 Flink 歷史記錄伺服器的 TLS 通訊。如果您不希望 REST 點的傳輸中加密，請停用這些組態。我們建議您使用預設組態，以獲得最大的安全性。

Amazon EMR 使用 [https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-algorithms](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/config/#security-ssl-algorithms)。 指定使用 AES 型加密的密碼清單。覆寫此組態以使用您想要的加密。

如需詳細資訊，請參閱 Flink 文件中的 [SSL 設定](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/security/security-ssl/)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Flink 歷史記錄伺服器 | historyserver.web.port | 8082 | TLS | emr-7.3.0\+ | 
| Job Manager Rest 伺服器 | rest.bind-port<br />rest.port | 動態 | TLS | emr-7.3.0\+ | 

## HBase
<a name="emr-encryption-support-matrix-hbase"></a>

 Amazon EMR 會將 [ Secure Hadoop RPC](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html#Data_Encryption_on_RPC) 設定為 `privacy`。HMaster 和 RegionServer 使用以 SASL 為基礎的傳輸中加密。這需要在安全組態中啟用 Kerberos 身分驗證。

Amazon EMR `hbase.ssl.enabled`將 設為 true，並針對 UI 端點使用 TLS。如果您不想將 TLS 用於 UI 端點，請停用此組態。我們建議您使用預設組態，以獲得最大的安全性。

Amazon EMR 會分別為 REST `hbase.rest.ssl.enabled`和 Thirft 伺服器端點設定 和 `hbase.thrift.ssl.enabled`，並使用 TLS。如果您不想對這些端點使用 TLS，請停用此組態。我們建議您使用預設組態，以獲得最大的安全性。

從 EMR 7.6.0 開始，HMaster 和 RegionServer 端點支援 TLS。Amazon EMR 也會設定 `hbase.server.netty.tls.enabled`和 `hbase.client.netty.tls.enabled`。如果您不想對這些端點使用 TLS，請停用此組態。我們建議您使用預設組態，該組態可提供加密，從而提高安全性。若要進一步了解，請參閱《Apache [HBase 參考指南》中的 HBase RPC 通訊中的 Transport Level Security (TLS)](https://hbase.apache.org/book.html#_transport_level_security_tls_in_hbase_rpc_communication)。 * HBase * 


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| HMaster | HMaster | 16000 | SASL \+ Kerberos<br />TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+ 和 emr-7.0.0\+ 中的 SASL \+ Kerberos<br />emr-7.6.0\+ 中的 TLS | 
| HMaster | HMaster 使用者介面 | 16010 | TLS | emr-7.3.0\+ | 
| RegionServer | RegionServer | 16020 | SASL \+ Kerberos<br />TLS | emr-4.8.0\+、emr-5.0.0\+、emr-6.0.0\+ 和 emr-7.0.0\+ 中的 SASL \+ Kerberos<br />emr-7.6.0\+ 中的 TLS | 
| RegionServer | RegionServer 資訊 | 16030 | TLS | emr-7.3.0\+ | 
| HBase Rest 伺服器 | 靜態伺服器 | 8070 | TLS | emr-7.3.0\+ | 
| HBase Rest 伺服器 | 靜態 UI | 8085 | TLS | emr-7.3.0\+ | 
| Hbase Thrift 伺服器 | Thrift 伺服器 | 9090 | TLS | emr-7.3.0\+ | 
| Hbase Thrift 伺服器 | Thrift 伺服器使用者介面 | 9095 | TLS | emr-7.3.0\+ | 

## Phoenix
<a name="emr-encryption-support-matrix-phoenix"></a>

 如果您在 EMR 叢集中啟用傳輸中加密，Phoenix Query Server 會支援 TLS 屬性 `phoenix.queryserver.tls.enabled`，此屬性`true`預設為 。

若要進一步了解，請參閱 Phoenix Query Server 文件中的與 [ HTTPS 相關的組態](https://phoenix.apache.org/docs/features/query-server#query-server-configuration)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| 查詢伺服器 | phoenix.queryserver.http.port | 8765 | TLS | emr-7.3.0\+ | 

## Oozie
<a name="emr-encryption-support-matrix-oozie"></a>

如果您在 Amazon EMR 7.3.0 及更高版本上執行 Oozie，則 [OOZIE-3673](https://issues.apache.org/jira/browse/OOZIE-3673) 可在 Amazon EMR 上使用。如果您在執行電子郵件動作時需要設定自訂 SSL 或 TLS 通訊協定，您可以在 `oozie-site.xml` `oozie.email.smtp.ssl.protocols`檔案中設定 屬性。根據預設，如果您啟用傳輸中加密，Amazon EMR 會使用 TLS v1.3 通訊協定。

如果您在 Amazon EMR [OOZIE-3677](https://issues.apache.org/jira/browse/OOZIE-3677).0 及更高版本上執行 [OOZIE-3674](https://issues.apache.org/jira/browse/OOZIE-3674)7 和 OOZIE-3674。這可讓您在 `trustStoreType`中指定屬性 `keyStoreType`和 `oozie-site.xml`。OOZIE-3674 `--insecure`會將 參數新增至 Oozie 用戶端，以便忽略憑證錯誤。

Oozie 會強制執行 TLS 主機名稱驗證，這表示您用於傳輸中加密的任何憑證都必須符合主機名稱驗證要求。如果憑證不符合條件，當 Amazon EMR 佈建叢集時，叢集可能會卡在`oozie share lib update`階段。我們建議您更新憑證，以確保其符合主機名稱驗證。不過，如果您無法更新憑證，您可以透過在叢集組態`false`中將 `oozie.https.enabled` 屬性設定為 來停用 Oozie 的 SSL。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| EmbeddedOozieServer | oozie.https.port | 11443 | TLS | emr-7.3.0\+ | 
| EmbeddedOozieServer | oozie.email.smtp.port | 25 | TLS | emr-7.3.0\+ | 

## Hue
<a name="emr-encryption-support-matrix-hue"></a>

根據預設，在 Amazon EMR 叢集中啟用傳輸中加密時，Hue 支援 TLS。如需 Hue 組態的詳細資訊，請參閱[使用 HTTPS / SSL 設定 Hue](https://gethue.com/configure-hue-with-https-ssl/)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Hue | http\_port | 8888 | TLS | emr-7.4.0\+ | 

## Livy
<a name="emr-encryption-support-matrix-livy"></a>

根據預設，在 Amazon EMR 叢集中啟用傳輸中加密時，Livy 支援 TLS。如需 Livy 組態的詳細資訊，請參閱[使用 Apache Livy 啟用 HTTPS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html)。

從 Amazon EMR 7.3.0 開始，如果您使用傳輸中加密和 Kerberos 身分驗證，則無法使用依賴 Hive 中繼存放區的 Spark 應用程式的 Livy 伺服器。此問題已在 [HIVE-16340](https://issues.apache.org/jira/browse/HIVE-16340) 中修正，並在開放原始碼 Spark 應用程式可以升級至 Hive 3 時，在 [SPARK-44114](https://issues.apache.org/jira/browse/SPARK-44114) 中完全解決。同時，如果您將 `hive.metastore.use.SSL`設定為 ，則可以解決此問題`false`。如需詳細資訊，請參閱[設定應用程式](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)。

如需詳細資訊，請參閱[使用 Apache Livy 啟用 HTTPS](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/enabling-https.html)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| livy-server | livy.server.port | 8998 | TLS | emr-7.4.0\+ | 

## JupyterEnterpriseGateway
<a name="emr-encryption-matrix-jupyter-enterprise"></a>

根據預設，在 Amazon EMR 叢集中啟用傳輸中加密時，Jupyter Enterprise Gateway 支援 TLS。如需 Jupyter Enterprise Gateway 組態的詳細資訊，請參閱[保護企業閘道伺服器](https://jupyter-enterprise-gateway.readthedocs.io/en/v1.2.0/getting-started-security.html#securing-enterprise-gateway-server)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| jupyter\_enterprise\_gateway | c.EnterpriseGatewayApp.port | 9547 | TLS | emr-7.4.0\+ | 

## JupyterHub
<a name="emr-encryption-matrix-jupyter-hub"></a>

根據預設，在 Amazon EMR 叢集中啟用傳輸中加密時，JupyterHub 支援 TLS。如需詳細資訊，請參閱 JupyterHub 文件中的[啟用 SSL 加密](https://jupyterhub.readthedocs.io/en/latest/tutorial/getting-started/security-basics.html#enabling-ssl-encryption)。不建議停用加密。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| jupyter\_hub | c.JupyterHub.port | 9443 | TLS | emr-5.14.0\+、emr-6.0.0\+、emr-7.0.0\+ | 

## Zeppelin
<a name="emr-encryption-matrix-zeppelin"></a>

 根據預設，當您在 EMR 叢集中啟用傳輸中加密時，Zeppelin 支援 TLS。如需 Zeppelin 組態的詳細資訊，請參閱 Zeppelin 文件中的 [ SSL 組態](https://zeppelin.apache.org/docs/0.11.1/setup/operation/configuration.html#ssl-configuration)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| zeppelin | zeppelin.server.ssl.port | 8890 | TLS | 7.3.0\+ | 

## Zookeeper
<a name="emr-encryption-matrix-zookeeper"></a>

Amazon EMR `serverCnxnFactory`將 設定為 `org.apache.zookeeper.server.NettyServerCnxnFactory`，以為 Zookeeper 規定人數和用戶端通訊啟用 TLS。

`secureClientPort` 指定接聽 TLS 連線的連接埠。如果用戶端不支援與 Zookeeper 的 TLS 連線，用戶端可以連線到 中指定的不安全連接埠 2181`clientPort`。您可以覆寫或停用這兩個連接埠。

Amazon EMR 同時`admin.forceHttps`將 `sslQuorum`和 設定為 `true`，以啟用規定人數和管理伺服器的 TLS 通訊。如果您不想為規定人數和管理員伺服器進行傳輸中加密，您可以停用這些組態。我們建議您使用預設組態，以獲得最大的安全性。

如需詳細資訊，請參閱 Zookeeper 文件中的[加密、身分驗證、授權選項](https://zookeeper.apache.org/doc/r3.9.2/zookeeperAdmin.html#sc_authOptions)。


| 元件 | Endpoint | 站點 | 傳輸中加密機制 | 從版本支援 | 
| --- | --- | --- | --- | --- | 
| Zookeeper 伺服器 | secureClientPort | 2281 | TLS | emr-7.4.0\+ | 
| Zookeeper 伺服器 | 配額連接埠 | 有 2 個：<br />跟隨者使用 2888 連線到領導者。<br />領導者選擇使用 3888 | TLS | emr-7.4.0\+ | 
| Zookeeper 伺服器 | admin.serverPort | 8341 | TLS | emr-7.4.0\+ | 