View a markdown version of this page

Configure os pré-requisitos para o MSK Replicator com clusters Apache Kafka autogerenciados - Amazon Managed Streaming for Apache Kafka

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configure os pré-requisitos para o MSK Replicator com clusters Apache Kafka autogerenciados

Criar um perfil de execução do IAM.

Crie uma função do IAM com uma política de confiança parakafka.amazonaws.com. Anexe a política AWSMSKReplicatorExecutionRole gerenciada. A política gerenciada concede ao Kafka em nível de cluster, tópico e grupo de consumidores as permissões de que o replicador precisa, mas não inclui as permissões, que são AWS KMS necessárias para autenticação e AWS Secrets Manager credenciais. SASL/SCRAM CMK-encrypted Para ver os trechos de política em linha a serem adicionados, consulte. Permissões adicionais de SER para SASL/SCRAM, mTLS e SASL/OAUTHBEARER chaves gerenciadas pelo cliente

Exemplo de política de confiança:

{ "Statement": [{ "Effect": "Allow", "Principal": {"Service": "kafka.amazonaws.com"}, "Action": "sts:AssumeRole" }] }

Configurar SASL/SCRAM permissões de usuário e ACL

Crie um usuário SCRAM dedicado em seu cluster Kafka autogerenciado. As seguintes permissões de ACL são necessárias:

  1. Leia, descreva sobre todos os tópicos

  2. Leia, descreva em todos os grupos de consumidores

  3. Descreva um recurso de cluster

Exemplo de comandos do kafka-acls.sh:

# Grant Read and Describe on all topics kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --topic '*' # Grant Read and Describe on all consumer groups kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Read --operation Describe \ --group '*' # Grant Describe on cluster kafka-acls.sh --bootstrap-server <broker>:9092 \ --add --allow-principal User:msk-replicator \ --operation Describe --cluster

Configurar mTLS em um cluster autogerenciado

Configure um ouvinte SSL em seus corretores Kafka autogerenciados com. ssl.client.auth=required O repositório confiável do corretor deve conter o certificado CA que assinou o certificado do cliente que você usará para o MSK Replicator.

Conceda permissões de ACL ao principal do Kafka derivadas do Nome Distinto (DN) do certificado do cliente. As permissões necessárias são: Ler e descrever em todos os tópicos, ler e descrever em todos os grupos de consumidores e descrever no recurso do cluster.

Configurar SASL/OAUTHBEARER (OAuth) em um cluster autogerenciado

Com SASL/OAUTHBEARER, o MSK Replicator obtém um token de acesso do seu provedor de identidade (IDP) e o apresenta ao seu cluster Kafka autogerenciado durante o handshake (RFC 7628). SASL/OAUTHBEARER Configure seus corretores com um SASL_SSL ouvinte OAUTHBEARER habilitado e configure a validação do lado do corretor dos tokens emitidos pelo seu IDP. sasl.enabled.mechanisms

Conceda ao Kafka o princípio de que seu IDP mapeie o token de acesso às permissões de ACL que o MSK Replicator exige no cluster de origem.

O MSK Replicator oferece suporte aos seguintes mecanismos para adquirir um token de acesso. Você escolhe um ao criar o Replicador (consulteCreateReplicator Exemplos de API para clusters Kafka autogerenciados).

  • Credenciais do cliente — A client_credentials concessão padrão (RFC 6749 §4.4). Você fornece um client_id e client_secret em AWS Secrets Manager. Use esse mecanismo com IdPs como Okta, Microsoft Entra ID, Keycloak e Google. PingFederate

  • Portador do IAM JWT — A concessão de declaração do portador do JWT (RFC 7523). O MSK Replicator usa a AWS identidade da função de execução do serviço para obter um JWT assinado que é enviado ao endpoint do token como afirmação. Nenhum segredo compartilhado é necessário, embora você possa, opcionalmente, fornecer credenciais de cliente se seu IDP exigir que o cliente também se autentique.

  • Afirmação de credenciais de cliente — A client_credentials concessão com uma afirmação de cliente JWT (RFC §2.2). 7521/7523 O JWT assinado da função de execução do serviço é usado client_assertion para autenticar o cliente, sem um segredo compartilhado.

Os seguintes requisitos se aplicam ao endpoint do token:

  • Eles tokenEndpointUrl devem usar o esquema HTTPS e especificar um nome de host (literais de endereço IP não são permitidos, para que a verificação do nome de host TLS possa ser realizada).

  • O endpoint do token deve ser acessado a partir das sub-redes VPC que você fornece para o replicador. Consulte Configurar a conectividade de rede.

  • Se seu IDP apresentar um certificado emitido por uma CA privada, armazene o certificado de CA AWS Secrets Manager e faça referência a ele tokenEndpointTlsCertificateArn ao criar o Replicador.

Configurar SSL no cluster autogerenciado

Configure ouvintes SSL em seus corretores. Para certificados publicamente confiáveis, nenhuma configuração adicional é necessária. Para certificados privados ou autoassinados, inclua toda a cadeia de certificados CA no segredo armazenado no AWS Secrets Manager.

Armazene credenciais em AWS Secrets Manager 

Crie um segredo do tipo Outro (não RDS/Redshift) no AWS Secrets Manager com os pares de valores-chave apropriados para seu tipo de autenticação.

Para SASL/SCRAM:

  1. username— Nome de usuário SCRAM para o cluster autogerenciado

  2. password— Senha SCRAM para o cluster autogerenciado

  3. certificate— Cadeia de certificados CA (formato PEM; necessário para certificados private/self assinados)

Para mTLS:

  1. certificate— cadeia de certificados de PEM-encoded clientes

  2. privateKey— chave PEM-encoded privada

  3. privateKeyPassword— (Opcional) Frase secreta para a chave privada, necessária somente para chaves PKCS8 criptografadas

Para SASL/OAUTHBEARER:

Um segredo é necessário para o mecanismo de credenciais do cliente e é opcional para os mecanismos de afirmação de credenciais do cliente e do portador do JWT do IAM (forneça-o somente se seu IDP exigir que o cliente também se autentique). O segredo é um objeto JSON plano de pares de valores-chave. O MSK Replicator reconhece as seguintes chaves:

  • client_id— O identificador do cliente OAuth. Necessário para o mecanismo de credenciais do cliente.

  • client_secret— O segredo do cliente OAuth. Necessário para o mecanismo de credenciais do cliente.

  • custom_param.<name>— (Opcional) Um parâmetro de formulário adicional anexado à solicitação de token, para IdPs que exigem parâmetros além do conjunto padrão do OAuth. Adicione uma chave por parâmetro (por exemplo,custom_param.resource).

  • custom_header.<name>— (Opcional) Um cabeçalho HTTP adicional enviado com a solicitação de token. Adicione uma chave por cabeçalho (por exemplo,custom_header.X-Custom).

  • extension.<name>— (Opcional) Uma extensão SASL enviada ao corretor Kafka durante o SASL/OAUTHBEARER handshake, para provedores de Kafka que exigem pares adicionais de valores-chave durante a autenticação. Adicione uma chave por extensão.

Chaves diferentes de client_id e client_secret que não usam um desses prefixos são ignoradas. Veja a seguir um exemplo de valor secreto para o mecanismo de credenciais do cliente:

{ "client_id": "my-oauth-client", "client_secret": "example-client-secret", "custom_param.resource": "urn:example:kafka" }
nota

O MSK Replicator rejeita custom_param. entradas cujo nome de parâmetro está em conflito com um parâmetro OAuth padrão (por exemplo,,,grant_type, client_id client_secretclient_assertion, client_assertion_type e). assertion scope Ele também rejeita custom_header. entradas restritasHost, comoAuthorization, e. Content-Type

Configurar a conectividade de rede

O MSK Replicator exige conectividade de rede com seu cluster Kafka autogerenciado. Opções suportadas:

  • AWS Site-to-Site VPN — Conecte redes locais à sua VPC pela Internet.

  • AWS Conexão direta — Estabeleça uma conexão de rede privada dedicada de suas instalações para AWS.

Se você usar SASL/OAUTHBEARER, o endpoint do token também deverá estar acessível a partir das sub-redes VPC que você fornece para o replicador. Para um IDP hospedado na Internet, isso normalmente requer um gateway da Internet, um gateway NAT e entradas na tabela de rotas; para um IDP local ou privado, use VPN ou Direct Connect. AWS Site-to-Site AWS O endpoint do token não deve ser resolvido para um endereço de loopback, link local ou metadados. AWS

Configurar grupos de segurança

Certifique-se de que os grupos de segurança permitam o tráfego entre o MSK Replicator e o cluster autogerenciado na porta usada pelo seu ouvinte de autenticação. Atualize as regras de entrada nos grupos de segurança da VPC e as regras de saída no firewall de cluster autogerenciado.