O ApsaraMQ for Kafka oferece três tipos de endpoint: padrão, Simple Authentication and Security Layer (SASL) e Secure Sockets Layer (SSL). Cada endpoint corresponde a uma porta específica e a um protocolo de segurança do Kafka. Escolha o endpoint com base no caminho de rede (Virtual Private Cloud (VPC) ou Internet) e no nível necessário de criptografia e autenticação.
Mecanismos SASL
O SASL é o framework padrão usado pelo Kafka para autenticação de clientes. O ApsaraMQ for Kafka oferece suporte a dois mecanismos SASL:
|
Mecanismo |
Funcionamento |
Criação dinâmica de usuários |
|
PLAIN |
Verifica um par nome de usuário e senha em texto simples. Quando combinado com SSL, as credenciais trafegam por um canal criptografado. |
Sim, sem reiniciar a instância |
|
SCRAM-SHA-256 |
Usa uma troca de desafio-resposta com salt para evitar o envio da senha pela rede. Oferece mais segurança que o PLAIN. |
Sim, sem reiniciar a instância |
Criptografia SSL
O SSL criptografa os dados em trânsito entre o cliente Kafka e o broker para impedir interceptação e escuta clandestina na rede.
Comparação de endpoints
Cada tipo de endpoint corresponde a um número de porta fixo e a um protocolo de segurança do Kafka. Os endpoints disponíveis variam conforme o tipo da instância.
Instâncias conectadas à Internet e à VPC
Essas instâncias aceitam conexões tanto da Internet quanto de uma VPC.
|
Rede |
Porta |
Endpoint |
Protocolo |
Criptografia |
Autenticação |
Mecanismos SASL |
|
Internet |
9093 |
Endpoint SSL |
SASL_SSL |
Sim |
Sim |
PLAIN, SCRAM-SHA-256 |
|
VPC |
9092 |
Endpoint padrão |
PLAINTEXT |
Não |
Não |
-- |
|
VPC |
9094 |
Endpoint SASL |
SASL_PLAINTEXT |
Não |
Sim |
PLAIN, SCRAM-SHA-256 |
|
VPC |
9095 |
Endpoint SSL |
SASL_SSL |
Sim |
Sim |
PLAIN, SCRAM-SHA-256 |
A ativação do recurso de lista de controle de acesso (ACL) durante a implantação ative o endpoint SASL na porta 9094. A ativação da criptografia de transmissão da VPC ative o endpoint SSL na porta 9095. Para obter detalhes, consulte Implantar uma instância.
A ativação da ACL em uma instância já implantada ative simultaneamente o endpoint SASL (porta 9094) e o endpoint SSL (porta 9095). Para obter detalhes, consulte Ativar ACL.
Instâncias conectadas à VPC
Essas instâncias aceitam conexões apenas de dentro de uma VPC.
|
Rede |
Porta |
Endpoint |
Protocolo |
Criptografia |
Autenticação |
Mecanismos SASL |
|
VPC |
9092 |
Endpoint padrão |
PLAINTEXT |
Não |
Não |
-- |
|
VPC |
9094 |
Endpoint SASL |
SASL_PLAINTEXT |
Não |
Sim |
PLAIN, SCRAM-SHA-256 |
|
VPC |
9095 |
Endpoint SSL |
SASL_SSL |
Sim |
Sim |
PLAIN, SCRAM-SHA-256 |
A ativação da ACL durante a implantação ative o endpoint SASL na porta 9094. A ativação da criptografia de transmissão da VPC ative o endpoint SSL na porta 9095. Para obter detalhes, consulte Implantar uma instância.
A ativação da ACL em uma instância já implantada ative simultaneamente o endpoint SASL (porta 9094) e o endpoint SSL (porta 9095). Para obter detalhes, consulte Ativar ACL.
Escolha de endpoint
|
Cenário |
Endpoint |
Porta |
Protocolo |
|
Acesso pela Internet |
Endpoint SSL |
9093 |
SASL_SSL |
|
Acesso via VPC, sem requisitos de segurança |
Endpoint padrão |
9092 |
PLAINTEXT |
|
Acesso via VPC, apenas autenticação |
Endpoint SASL |
9094 |
SASL_PLAINTEXT |
|
Acesso via VPC, criptografia e autenticação |
Endpoint SSL |
9095 |
SASL_SSL |
Acesso pela Internet: Todo o tráfego da Internet requer criptografia e autenticação. Use o endpoint SSL na porta 9093 com o protocolo SASL_SSL.
Acesso via VPC sem requisitos de segurança: Use o endpoint padrão na porta 9092 com o protocolo PLAINTEXT. Não há aplicação de criptografia ou autenticação.
Acesso via VPC apenas com autenticação: Use o endpoint SASL na porta 9094 com o protocolo SASL_PLAINTEXT. As mensagens passam por autenticação, mas não por criptografia. Selecione o mecanismo PLAIN ou SCRAM-SHA-256 conforme seus requisitos de segurança.
Acesso via VPC com criptografia e autenticação: Use o endpoint SSL na porta 9095 com o protocolo SASL_SSL. O sistema aplica tanto a criptografia quanto a autenticação.
Permissões de ACL e usuários SASL
Toda instância do ApsaraMQ for Kafka possui um usuário SASL padrão com permissões de leitura e escrita em todos os tópicos e grupos de consumidores. Para controle de acesso granular, ative a ACL, crie usuários SASL dedicados e conceda permissões específicas.
Após a ativação da ACL, as permissões do usuário SASL padrão tornam-se inválidas. Para obter detalhes, consulte Conceder permissões a usuários SASL.
Exemplos de configuração do cliente
Cada exemplo define as propriedades bootstrap.servers, security.protocol e SASL para um tipo específico de endpoint. Substitua <your-endpoint> pelo valor do endpoint obtido no console do ApsaraMQ for Kafka.
Endpoint padrão (PLAINTEXT, porta 9092)
bootstrap.servers=<your-endpoint>:9092
security.protocol=PLAINTEXT
Endpoint SASL (SASL_PLAINTEXT, porta 9094)
Com o mecanismo PLAIN:
bootstrap.servers=<your-endpoint>:9094
security.protocol=SASL_PLAINTEXT
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="<your-username>" \
password="<your-password>";
Com o mecanismo SCRAM-SHA-256:
bootstrap.servers=<your-endpoint>:9094
security.protocol=SASL_PLAINTEXT
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="<your-username>" \
password="<your-password>";
Endpoint SSL (SASL_SSL, porta 9093 ou 9095)
Com o mecanismo PLAIN:
bootstrap.servers=<your-endpoint>:9093
security.protocol=SASL_SSL
sasl.mechanism=PLAIN
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
username="<your-username>" \
password="<your-password>";
ssl.truststore.location=<path-to-truststore>
ssl.truststore.password=<truststore-password>
Com o mecanismo SCRAM-SHA-256:
bootstrap.servers=<your-endpoint>:9093
security.protocol=SASL_SSL
sasl.mechanism=SCRAM-SHA-256
sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="<your-username>" \
password="<your-password>";
ssl.truststore.location=<path-to-truststore>
ssl.truststore.password=<truststore-password>
Espaços reservados
|
Espaço reservado |
Descrição |
Exemplo |
|
|
Endereço do servidor bootstrap obtido no console do ApsaraMQ for Kafka |
|
|
|
Nome de usuário SASL |
|
|
|
Senha SASL |
-- |
|
|
Caminho para o arquivo truststore SSL |
|
|
|
Senha do arquivo truststore |
-- |