

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 전송 중 암호화 이해
<a name="emr-encryption-support-matrix"></a>

[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/)와 같은 오픈 소스 프레임워크를 실행하도록 EMR 클러스터를 구성할 수 있습니다. 이러한 각 오픈 소스 프레임워크에는 클러스터의 EC2 인스턴스에서 실행되는 프로세스 세트가 있습니다. 이러한 각 프로세스는 네트워크 통신을 위해 네트워크 엔드포인트를 호스팅할 수 있습니다.

EMR 클러스터에서 전송 중 데이터 암호화가 활성화된 경우 네트워크 엔드포인트마다 서로 다른 암호화 메커니즘을 사용합니다. 전송 중 암호화로 지원되는 특정 오픈 소스 프레임워크 네트워크 엔드포인트, 관련 암호화 메커니즘 및 해당 지원을 추가한 Amazon EMR 릴리스에 대해 자세히 알아보려면 다음 섹션을 참조하세요. 각 오픈 소스 애플리케이션에는 변경할 수 있는 오픈 소스 프레임워크 구성과 다양한 모범 사례가 있을 수 있습니다.

 전송 중 데이터 암호화 적용 범위를 최대한으로 보장하려면 전송 중 데이터 암호화 및 Kerberos를 모두 활성화하는 것이 좋습니다. 전송 중 데이터 암호화만 활성화하면 전송 중 데이터 암호화는 TLS를 지원하는 네트워크 엔드포인트에서만 사용할 수 있습니다. 일부 오픈 소스 프레임워크 네트워크 엔드포인트가 전송 중 데이터 암호화를 위해 Simple Authentication and Security Layer(SASL)를 사용하기 때문에 Kerberos가 필요합니다.

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)에서 이 문제를 수정합니다. [HIVE-44114](https://issues.apache.org/jira/browse/SPARK-44114)는 오픈 소스 Spark에서 Hive 3으로 업그레이드할 수 있을 때 이 문제를 완전히 해결합니다. 그동안 `hive.metastore.use.SSL`을 `false`로 설정하여 이 문제를 해결할 수 있습니다. 자세한 내용은 [애플리케이션 구성](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-configure-apps.html)을 참조하세요.

자세한 내용은 Apache Spark 설명서의 [Spark security](https://spark.apache.org/docs/latest/security)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| Spark 기록 서버 | spark.ssl.history.port | 18480 | TLS | emr-5.3.0 이상, emr-6.0.0 이상, emr-7.0.0 이상 | 
| Spark UI | 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을 사용하여 애플리케이션 UI에 액세스할 수 없습니다. **영향을 받는 버전:** EMR - 7.3.0 \~ EMR - 7.9.0.

다음 해결 방법을 사용할 수 있습니다.

1. 실행 중인 클러스터에서 `HTTPS` 포트 번호 `18480`을(를) 사용하도록 `/etc/spark/conf/spark-defaults.conf`의 `spark.yarn.historyServer.address` 구성을 수정했습니다.

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>

[보안 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`을 구성할 수 있습니다. TLS 호스트 이름 확인을 적용하는 `hadoop.ssl.hostname.verifier = DEFAULT`의 기본 구성을 사용하는 것이 좋습니다.

YARN 웹 애플리케이션 엔드포인트에 대한 HTTPS를 비활성화하려면 `yarn.http.policy = HTTP_ONLY`를 구성합니다. 이 경우 이러한 엔드포인트에 대한 트래픽이 암호화되지 않은 상태로 유지됩니다. 보안을 극대화하려면 기본 구성을 사용하는 것이 좋습니다.

자세한 내용은 Apache Hadoop 설명서에서 [Hadoop in secure mode](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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` 구성은 현재 포트 19888과 함께 HTTP를 사용 중이므로 Resource Manager UI에서 애플리케이션 로그에 액세스할 수 없습니다. **영향을 받는 버전:** EMR - 7.3.0 \~ EMR - 7.8.0.

다음 해결 방법을 사용할 수 있습니다.

1. `HTTPS` 프로토콜 및 포트 번호 `19890`을 사용하려면 `yarn-site.xml`에서 `yarn.log.server.url` 구성을 수정하세요.

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를 지원합니다.

[보안 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 in secure mode](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| Namenode | dfs.namenode.https-address | 9871 | TLS | emr-4.8.0 이상, emr-5.0.0 이상, emr-6.0.0 이상, emr-7.0.0 이상 | 
| Namenode | 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 | 없음 | ZKFC용 TLS는 Hadoop 3.4.0에서만 지원됩니다. 자세한 내용은 [HADOOP-18919](https://issues.apache.org/jira/browse/HADOOP-18919)를 참조하세요. Amazon EMR 릴리스 7.1.0은 현재 Hadoop 3.3.6에서 지원됩니다. 상위 Amazon EMR 릴리스는 향후 Hadoop 3.4.0에서 지원됩니다. | 

## 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 in secure mode](https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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로 암호화됩니다.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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로 암호화됩니다.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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>

기본적으로 Hive 서버 2, Hive 메타스토어 서버, Hive LLAP 대몬 웹 UI 및 Hive LLAP 셔플은 EMR 클러스터에서 전송 중 데이터 암호화가 활성화된 경우 모두 TLS를 지원합니다. Hive 구성에 대한 자세한 내용은 [Configuration properties](https://cwiki.apache.org/confluence/display/Hive/Configuration+Properties)를 참조하세요.

EMR 클러스터에서 전송 중 데이터 암호화가 활성화되면 Tomcat 서버에서 호스팅되는 Tez UI에서도 HTTPS가 활성화됩니다. 그러나 Tez AM 웹 UI 서비스에서는 HTTPS가 비활성화되어 있으므로 AM 사용자는 열린 SSL 리스너의 키 저장소 파일에 액세스할 수 없습니다. 부울 구성 `tez.am.tez-ui.webservice.enable.ssl` 및 `tez.am.tez-ui.webservice.enable.client.auth`를 사용하여 이 동작을 활성화할 수도 있습니다.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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 | 동적 | 없음 | 기본 설정은 “Disable”입니다. emr-7.3.0 이상에서 Tez 구성을 사용하여 활성화할 수 있습니다. | 
| Tez 태스크 | 해당 없음 - 구성할 수 없음 | 동적 | 없음 | Tez는 이 엔드포인트에 대해 전송 중 암호화를 지원하지 않습니다. | 
| Tez UI | Tez UI가 호스팅되는 Tomcat 서버를 통해 구성 가능 | 8080 | TLS | emr-7.3.0 이상 | 

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

 Apache Flink REST 엔드포인트와 Flink 프로세스 간 내부 통신은 EMR 클러스터에서 전송 중 데이터 암호화를 활성화할 때 기본적으로 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은 Flink 기록 서버와의 TLS 통신을 사용하기 위해 [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로 설정합니다. 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 Setup](https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/security/security-ssl/)을 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| Flink 기록 서버 | historyserver.web.port | 8082 | TLS | emr-7.3.0 이상 | 
| 작업 관리자 Rest Server | rest.bind-port<br />rest.port | 동적 | TLS | emr-7.3.0 이상 | 

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

 Amazon EMR은 [보안 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를 사용합니다. UI 엔드포인트에 대해 TLS를 사용하지 않으려면 이 구성을 비활성화합니다. 보안을 극대화하려면 기본 구성을 사용하는 것이 좋습니다.

Amazon EMR은 REST 및 Thirft 서버 엔드포인트에 각각 `hbase.rest.ssl.enabled` 및 `hbase.thrift.ssl.enabled`를 설정하고 TLS를 사용합니다. 이러한 엔드포인트에 대해 TLS를 사용하지 않으려면 이 구성을 비활성화합니다. 보안을 극대화하려면 기본 구성을 사용하는 것이 좋습니다.

EMR 7.6.0부터, TLS는 HMaster 및 RegionServer 엔드포인트에서 지원됩니다. Amazon EMR은 `hbase.server.netty.tls.enabled` 및 `hbase.client.netty.tls.enabled`도 설정합니다. 이러한 엔드포인트에 대해 TLS를 사용하지 않으려면 이 구성을 비활성화합니다. 암호화를 제공하여 보안을 강화하는 기본 구성을 사용하는 것이 좋습니다. 자세한 내용은 *Apache HBase 참조 안내서*의[ HBase RPC 통신의 전송 수준 보안(TLS)](https://hbase.apache.org/book.html#_transport_level_security_tls_in_hbase_rpc_communication)을 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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 UI | 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 Server | Rest Server | 8070 | TLS | emr-7.3.0 이상 | 
| HBase Rest Server | REST UI | 8085 | TLS | emr-7.3.0 이상 | 
| Hbase Thrift 서버 | Thrift 서버 | 9090 | TLS | emr-7.3.0 이상 | 
| Hbase Thrift 서버 | Thrift 서버 UI | 9095 | TLS | emr-7.3.0 이상 | 

## 피닉스
<a name="emr-encryption-support-matrix-phoenix"></a>

 EMR 클러스터에서 전송 중 데이터 암호화를 활성화한 경우 Phoenix Query Server는 TLS 속성 `phoenix.queryserver.tls.enabled`를 지원합니다. 기본적으로 `true`로 설정되어 있습니다.

자세한 내용은 Phoenix 쿼리 서버 설명서의 [Configurations relating to HTTPS](https://phoenix.apache.org/docs/features/query-server#query-server-configuration)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 쿼리 서버 | 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를 실행하는 경우 Amazon EMR에서 [OOZIE-3673](https://issues.apache.org/jira/browse/OOZIE-3673)을 사용할 수 있습니다. 이메일 작업을 실행할 때 사용자 지정 SSL 또는 TLS 프로토콜을 구성해야 하는 경우 `oozie-site.xml` 파일 `oozie.email.smtp.ssl.protocols` 속성을 설정할 수 있습니다. 기본적으로 전송 중 데이터 암호화를 활성화한 경우 Amazon EMR은 TLS v1.3 프로토콜을 사용합니다.

또한 Amazon EMR 7.3.0 이상에서 Oozie를 실행하는 경우 Amazon EMR에서 [OOZIE-3677](https://issues.apache.org/jira/browse/OOZIE-3677) 및 [OOZIE-3674](https://issues.apache.org/jira/browse/OOZIE-3674)를 사용할 수 있습니다. 이를 통해 `oozie-site.xml`에서 `keyStoreType` 및 `trustStoreType` 속성을 지정할 수 있습니다. OOZIE-3674는 인증서 오류를 무시할 수 있도록 Oozie 클라이언트에 `--insecure` 파라미터를 추가합니다.

Oozie는 TLS 호스트 이름 확인을 적용합니다. 즉, 전송 중 데이터 암호화에 사용하는 모든 인증서가 호스트 이름 확인 요구 사항을 충족해야 합니다. 인증서가 기준을 충족하지 않으면 Amazon EMR이 클러스터를 프로비저닝할 때 클러스터가 `oozie share lib update` 단계에서 멈출 수 있습니다. 호스트 이름 확인을 준수하도록 인증서를 업데이트하는 것이 좋습니다. 그러나 인증서를 업데이트할 수 없는 경우 클러스터 구성에서 `oozie.https.enabled` 속성을 `false`로 설정하여 Oozie용 SSL을 비활성화할 수 있습니다.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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>

기본적으로 Hue는 Amazon EMR 클러스터에서 전송 중 암호화가 활성화된 경우 TLS를 지원합니다. Hue 구성에 대한 자세한 내용은 [HTTPS/SSL을 사용한 Hue 구성](https://gethue.com/configure-hue-with-https-ssl/)을 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| Hue | http\_port | 8888 | TLS | emr-7.4.0 이상 | 

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

기본적으로 Livy는 Amazon EMR 클러스터에서 전송 중 암호화가 활성화된 경우 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)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| livy-server | livy.server.port | 8998 | TLS | emr-7.4.0 이상 | 

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

기본적으로 Jupyter Enterprise Gateway는 Amazon EMR 클러스터에서 전송 중 데이터 암호화가 활성화된 경우 TLS를 지원합니다. Jupyter Enterprise Gateway 구성에 대한 자세한 내용은 [Enterprise Gateway 서버 보호](https://jupyter-enterprise-gateway.readthedocs.io/en/v1.2.0/getting-started-security.html#securing-enterprise-gateway-server)를 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| jupyter\_enterprise\_gateway | c.EnterpriseGatewayApp.port | 9547 | TLS | emr-7.4.0 이상 | 

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

기본적으로 JupyterHub는 Amazon EMR 클러스터에서 전송 중 암호화가 활성화된 경우 TLS를 지원합니다. 자세한 내용은 JupyterHub 설명서의 [SSL 암호화 활성화](https://jupyterhub.readthedocs.io/en/latest/tutorial/getting-started/security-basics.html#enabling-ssl-encryption)를 참조하세요. 암호화를 비활성화하는 것은 권장되지 않습니다.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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>

 기본적으로 Zeppelin은 EMR 클러스터에서 전송 중 데이터 암호화를 활성화할 때 TLS를 지원합니다. Zeppelin 구성에 대한 자세한 내용은 Zeppelin 설명서의 [SSL Configuration](https://zeppelin.apache.org/docs/0.11.1/setup/operation/configuration.html#ssl-configuration)을 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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 연결을 지원하지 않는 경우, 클라이언트는 `clientPort`에 지정된 2181의 안전하지 않은 포트에 연결할 수 있습니다. 이 두 포트를 재정의하거나 비활성화할 수 있습니다.

Amazon EMR은 쿼럼 및 관리자 서버에 대해 TLS 통신을 활성화하기 위해 `sslQuorum` 및 `admin.forceHttps`를 모두 `true`로 설정합니다. 쿼럼 및 관리자 서버에 대한 전송 중 데이터 암호화를 원하지 않는 경우 이러한 구성을 비활성화할 수 있습니다. 보안을 극대화하려면 기본 구성을 사용하는 것이 좋습니다.

자세한 내용은 Zookeeper 설명서의 [암호화, 인증, 권한 부여 옵션](https://zookeeper.apache.org/doc/r3.9.2/zookeeperAdmin.html#sc_authOptions)을 참조하세요.


| 구성 요소 | 엔드포인트 | 포트 | 전송 중 암호화 메커니즘 | 릴리스에서 지원 | 
| --- | --- | --- | --- | --- | 
| 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 이상 | 