Noções básicas da criptografia em trânsito - Amazon EMR

Noções básicas da criptografia em trânsito

Você pode configurar um cluster do EMR para executar estruturas de código aberto, como Apache Spark, Apache Hive e Presto. Cada uma dessas estruturas de código aberto tem um conjunto de processos em execução nas instâncias do EC2 de um cluster. Cada um desses processos pode hospedar endpoints de rede para comunicação de rede.

Se a criptografia em trânsito estiver habilitada em um cluster do EMR, diferentes endpoints de rede usarão mecanismos de criptografia distintos. Consulte as seções a seguir para saber mais sobre os endpoints de rede específicos da estrutura de código aberto compatíveis com criptografia em trânsito, os mecanismos de criptografia relacionados e qual versão do Amazon EMR adicionou suporte. Cada aplicação de código aberto também pode ter diferentes práticas recomendadas e configurações da estrutura de código aberto que você pode alterar.

Para obter a maior cobertura de criptografia em trânsito, recomendamos que você habilite a criptografia em trânsito e o Kerberos. Se você habilitar somente a criptografia em trânsito, ela estará disponível somente para os endpoints de rede compatíveis com TLS. O Kerberos é necessário porque alguns endpoints de rede da estrutura de código aberto usam Simple Authentication and Security Layer (SASL) para criptografia em trânsito.

Observe que qualquer estrutura de código aberto sem suporte nas versões 7.x.x do Amazon EMR não está incluída.

Spark

Ao habilitar a criptografia em trânsito nas configurações de segurança, spark.authenticate é automaticamente definido para true e usa a criptografia baseada em AES para conexões RPC.

A partir do Amazon EMR 7.3.0, se você usar criptografia em trânsito e autenticação do Kerberos, não poderá usar aplicações Spark que dependam do Hive Metastore. O Hive 3 corrige esse problema no HIVE-16340. O HIVE-44114 resolve totalmente esse problema quando o Spark de código aberto pode ser atualizado para o Hive 3. Enquanto isso, você pode definir hive.metastore.use.SSL para false e contornar esse problema. Para obter mais informações, consulte Configure applications.

Para obter mais informações, consulte Spark security da documentação do Apache Spark.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

Servidor de histórico do Spark

spark.ssl.history.port

18480

TLS

emr-5.3.0+, emr-6.0.0+, emr-7.0.0+

IU do Spark

spark.ui.port

4440

TLS

emr-5.3.0+, emr-6.0.0+, emr-7.0.0+

Driver do Spark

spark.driver.port

Dinâmico

Criptografia baseada em AES do Spark

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

Executor do Spark

Porta do executor (sem configuração nomeada)

Dinâmico

Criptografia baseada em AES do Spark

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

YARN NodeManager

spark.shuffle.service.port1

7337

Criptografia baseada em AES do Spark

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

1 spark.shuffle.service.port está hospedado no NodeManager do YARN, mas é usado somente pelo Apache Spark.

YARN do Hadoop

O Secure Hadoop RPC está configurado para privacy e usa criptografia em trânsito baseada em SASL. Isso requer que a autenticação do Kerberos esteja habilitada na configuração de segurança. Se você não quiser criptografia em trânsito para o Hadoop RPC, configure hadoop.rpc.protection = authentication. Recomendamos usar a configuração padrão para obter a segurança máxima.

Se os certificados TLS não atenderem aos requisitos de verificação do nome de host TLS, você poderá configurar hadoop.ssl.hostname.verifier = ALLOW_ALL. Recomendamos que você use a configuração padrão de hadoop.ssl.hostname.verifier = DEFAULT, que impõe a verificação do nome de host TLS.

Para desabilitar o HTTPS nos endpoints da aplicação Web do YARN, configure yarn.http.policy = HTTP_ONLY. Isso faz com que o tráfego para esses endpoints permaneça sem criptografia. Recomendamos usar a configuração padrão para obter a segurança máxima.

Para obter mais informações, consulte Hadoop in secure mode, na documentação do Apache Hadoop.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

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

Criptografia baseada em AES do Spark

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

1 mapreduce.shuffle.port está hospedado no NodeManager do YARN, mas é usado somente pelo MapReduce do Hadoop.

2 spark.shuffle.service.port estão hospedados no NodeManager do YARN, mas são usados somente pelo Apache Spark.

HDFS do Hadoop

O nó de nome, o nó de dados e o nó de diário do Hadoop oferecem suporte a TLS por padrão se a criptografia em trânsito estiver habilitada nos clusters do EMR.

O Secure Hadoop RPC está configurado para privacy e usa criptografia em trânsito baseada em SASL. Isso requer que a autenticação do Kerberos esteja habilitada na configuração de segurança.

Recomendamos não alterar as portas padrão usadas em endpoints HTTPS.

A criptografia de dados na transferência de blocos HDFS usa AES 256 e requer que a criptografia em repouso esteja habilitada na configuração de segurança.

Para obter mais informações, consulte Hadoop in secure mode, na documentação do Apache Hadoop.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

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+

Nó de diário

dfs.journalnode.https-address

8481

TLS

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

Nó de diário

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

Nenhum

O TLS para ZKFC só é compatível com o Hadoop 3.4.0. Para obter mais informações, consulte HADOOP-18919. A versão 7.1.0 do Amazon EMR está atualmente no Hadoop 3.3.6. Versões superiores do Amazon EMR estarão no Hadoop 3.4.0

Hadoop MapReduce

O Hadoop MapReduce, o servidor do histórico de tarefas e o shuffle do MapReduce oferecem suporte ao TLS por padrão quando a criptografia em trânsito está habilitada nos clusters do EMR.

A opção Embaralhamento criptografado do MapReduce para Hadoop usa TLS.

Recomendamos que você não altere as portas padrão para endpoints HTTPS.

Para obter mais informações, consulte Hadoop in secure mode, na documentação do Apache Hadoop.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

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 está hospedado no NodeManager do YARN, mas é usado somente pelo MapReduce do Hadoop.

Presto

Nas versões 5.6.0 e superiores do Amazon EMR, a comunicação interna entre o coordenador do Presto e os trabalhadores usa TLS. O Amazon EMR define todas as configurações necessárias para permitir a comunicação interna segura no Presto.

Se o conector usar o metastore do Hive como armazenamento de metadados, a comunicação entre o comunicador e o metastore do Hive também será criptografada com TLS.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

Coordenador do Presto

http-server.https.port

8446

TLS

emr-5.6.0+, emr-6.0.0+, emr-7.0.0+

Trabalhador do Presto

http-server.https.port

8446

TLS

emr-5.6.0+, emr-6.0.0+, emr-7.0.0+

Trino

Nas versões 6.1.0 e posteriores do Amazon EMR, a comunicação interna entre o coordenador do Presto e os trabalhadores usa TLS. O Amazon EMR define todas as configurações necessárias para permitir a comunicação interna segura no Trino.

Se o conector usar o metastore do Hive como armazenamento de metadados, a comunicação entre o comunicador e o metastore do Hive também será criptografada com TLS.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

Trino Coordinator

http-server.https.port

8446

TLS

emr-6.1.0+, emr-7.0.0+

Trino Worker

http-server.https.port

8446

TLS

emr-6.1.0+, emr-7.0.0+

Hive e Tez

Por padrão, o servidor Hive 2, o servidor Hive Metastore, a interface de usuário da Web do daemon do LLAP do Hive e o shuffle do LLAP do Hive oferecem suporte ao TLS quando a criptografia em trânsito está habilitada nos clusters do EMR. Para obter mais informações sobre as configurações do Hive, consulte Configuration properties.

A interface de usuário do Tez hospedada no servidor Tomcat também é habilitada para HTTPS quando a criptografia em trânsito está ativada no cluster do EMR. No entanto, o HTTPS está desabilitado para o serviço de interface do usuário da Web do Tez AM, portanto, os usuários do AM não têm acesso ao arquivo de keystore do receptor de SSL de abertura. Você também pode habilitar esse comportamento com as configurações booleanas tez.am.tez-ui.webservice.enable.ssl e tez.am.tez-ui.webservice.enable.client.auth.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

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+

Daemon do LLAP

hive.llap.daemon.yarn.shuffle.port

15551

TLS

emr-7.3.0+

Daemon do LLAP

hive.llap.daemon.web.port

15002

TLS

emr-7.3.0+

Daemon do LLAP

hive.llap.daemon.output.service.port

15003

Nenhum

O Hive não oferece suporte à criptografia em trânsito para esse endpoint

Daemon do LLAP

hive.llap.management.rpc.port

15004

Nenhum

O Hive não oferece suporte à criptografia em trânsito para esse endpoint

Daemon do LLAP

hive.llap.plugin.rpc.port

Dinâmico

Nenhum

O Hive não oferece suporte à criptografia em trânsito para esse endpoint

Daemon do LLAP

hive.llap.daemon.rpc.port

Dinâmico

Nenhum

O Hive não oferece suporte à criptografia em trânsito para esse endpoint

WebHCat

templeton.port

50111

TLS

emr-7.3.0+

Tez Application Master

tez.am.client.am.port-range

tez.am.task.am.port-range

Dinâmico

Nenhum

O Tez não oferece suporte à criptografia em trânsito para esse endpoint

Tez Application Master

tez.am.tez-ui.webservice.port-range

Dinâmico

Nenhum

Desabilitado por padrão. Pode ser habilitado usando as configurações do Tez no emr-7.3.0+

Tarefa do Tez

N/D: não configurável

Dinâmico

Nenhum

O Tez não oferece suporte à criptografia em trânsito para esse endpoint

IU Tez

Configurável por meio do servidor Tomcat no qual a interface de usuário do Tez está hospedada

8080

TLS

emr-7.3.0+

Os endpoints REST do Apache Flink e a comunicação interna entre os processos do Flink oferecem suporte ao TLS por padrão quando você habilita a criptografia em trânsito nos clusters do EMR.

security.ssl.internal.enabled está definido como true e usa criptografia em trânsito para comunicação interna entre os processos do Flink. Se você não quiser criptografia em trânsito para comunicação interna, desabilite essa configuração. Recomendamos usar a configuração padrão para obter segurança máxima.

O Amazon EMR define security.ssl.rest.enabled como true e usa criptografia em trânsito para os endpoints REST. Além disso, o Amazon EMR define historyserver.web.ssl.enabled como verdadeiro para usar a comunicação TLS com o servidor de histórico do Flink. Se você não quiser criptografia em trânsito para os pontos REST, desabilite essas configurações. Recomendamos usar a configuração padrão para obter segurança máxima.

O Amazon EMR usa security.ssl.algorithms para especificar a lista de cifras que usam criptografia baseada em AES. Substitua essa configuração para usar as cifras desejadas.

Para obter mais informações, consulte SSL Setup na documentação do Flink.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

Servidor de histórico do Flink

historyserver.web.port

8082

TLS

emr-7.3.0+

Servidor REST do gerenciador de trabalhos

rest.bind-port

rest.port

Dinâmico

TLS

emr-7.3.0+

HBase

O Amazon EMR define o Secure Hadoop RPC como privacy. O HMaster e o RegionServer usam criptografia em trânsito baseada em SASL. Isso requer que a autenticação do Kerberos esteja habilitada na configuração de segurança.

O Amazon EMR define hbase.ssl.enabled como verdadeiro e usa TLS para endpoints de interface do usuário. Se não quiser usar o TLS para endpoints da interface do usuário, desabilite essa configuração. Recomendamos usar a configuração padrão para obter a segurança máxima.

O Amazon EMR define hbase.rest.ssl.enabled e hbase.thrift.ssl.enabled e usa TLS para os endpoints do servidor REST e Thrift, respectivamente. Se não quiser usar o TLS para esses endpoints, desabilite essa configuração. Recomendamos usar a configuração padrão para obter a segurança máxima.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

HMaster

HMaster

16000

SASL + Kerberos

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

HMaster

HMaster UI

16010

TLS

emr-7.3.0+

RegionServer

RegionServer

16020

SASL + Kerberos

emr-4.8.0+, emr-5.0.0+, emr-6.0.0+, emr-7.0.0+

RegionServer

RegionServer Info

16030

TLS

emr-7.3.0+

Servidor REST do HBase

Servidor REST

8070

TLS

emr-7.3.0+

Servidor REST do HBase

Interface do usuário REST

8085

TLS

emr-7.3.0+

Servidor Thrift do Hbase

Servidor Thrift

9090

TLS

emr-7.3.0+

Servidor Thrift do Hbase

Interface do usuário do servidor Thrift

9095

TLS

emr-7.3.0+

Phoenix

Se você habilitou a criptografia em trânsito no cluster do EMR, o Phoenix Query Server será compatível com a propriedade phoenix.queryserver.tls.enabled do TLS, que é definida como true por padrão.

Para saber mais, consulte Configurations relating to HTTPS na documentação do Phoenix Query Server.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

Query Server

phoenix.queryserver.http.port

8765

TLS

emr-7.3.0+

Oozie

O OOZIE-3673 está disponível no Amazon EMR ao executar o Oozie no Amazon EMR 7.3.0 e superior. Se precisar configurar protocolos SSL ou TLS personalizados ao executar uma ação de e-mail, você pode definir a propriedade oozie.email.smtp.ssl.protocols no arquivo oozie-site.xml. Por padrão, se você habilitou a criptografia em trânsito, o Amazon EMR usa o protocolo TLS v1.3.

O OOZIE-3677 e o OOZIE-3674 também estão disponíveis no Amazon EMR se você executar o Oozie no Amazon EMR 7.3.0 e superior. Isso permite especificar as propriedades keyStoreType e trustStoreType em oozie-site.xml. O OOZIE-3674 adiciona o parâmetro --insecure ao cliente Oozie para que ele possa ignorar os erros do certificado.

O Oozie impõe a verificação do nome de host TLS, o que significa que qualquer certificado usado para criptografia em trânsito deve atender aos requisitos de verificação do nome de host. Se o certificado não atender aos critérios, o cluster pode ficar preso no estágio oozie share lib update quando o Amazon EMR provisiona o cluster. Recomendamos que você atualize seus certificados para garantir que eles estejam em conformidade com a verificação do nome de host. No entanto, se você não conseguir atualizar os certificados, poderá desabilitar o SSL para o Oozie definindo a propriedade oozie.https.enabled como false na configuração do cluster.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

EmbeddedOozieServer

oozie.https.port

11443

TLS

emr-7.3.0+

EmbeddedOozieServer

oozie.email.smtp.port

25

TLS

emr-7.3.0+

Zeppelin

Por padrão, o Zeppelin é compatível com TLS ao habilitar a criptografia em trânsito no cluster do EMR. Para obter mais informações sobre as configurações do Zeppelin, consulte SSL Configuration na documentação do Zeppelin.

Componente Endpoint Port (Porta) Mecanismo de criptografia em trânsito Com suporte da versão

zeppelin

zeppelin.server.ssl.port

8890

TLS

Compatível com versões 7.3.0 e superiores do Amazon EMR.