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
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-16340hive.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
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 RPCprivacy
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
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 RPCprivacy
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
Para obter mais informações, consulte Hadoop in secure mode
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 |
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
Recomendamos que você não altere as portas padrão para endpoints HTTPS.
Para obter mais informações, consulte Hadoop in secure mode
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
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
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+ |
Flink
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
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
true
e usa criptografia em trânsito para os endpoints REST. Além disso, o Amazon EMR define historyserver.web.ssl.enabled
O Amazon EMR usa security.ssl.algorithms
Para obter mais informações, consulte SSL Setup
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 RPCprivacy
. 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
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-3673oozie.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-3677keyStoreType
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
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. |