View a markdown version of this page

Configura i prerequisiti per MSK Replicator con cluster Apache Kafka autogestiti - Amazon Managed Streaming per Apache Kafka

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configura i prerequisiti per MSK Replicator con cluster Apache Kafka autogestiti

Crea un ruolo di esecuzione IAM

Crea un ruolo IAM con una policy di fiducia perkafka.amazonaws.com. Allega la policy AWSMSKReplicatorExecutionRole gestita. La policy gestita concede le autorizzazioni Kafka a livello di cluster, argomento e gruppo di consumatori necessarie a Replicator, ma non include le autorizzazioni AWS Secrets Manager o AWS KMS , necessarie per l'autenticazione e le credenziali. SASL/SCRAM CMK-encrypted Per gli snippet di policy in linea da aggiungere, consulta. Autorizzazioni SER aggiuntive per MTL SASL/SCRAM e chiavi gestite dal SASL/OAUTHBEARER cliente

Esempio di politica di fiducia:

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

Configurare le SASL/SCRAM autorizzazioni utente e ACL

Crea un utente SCRAM dedicato sul tuo cluster Kafka autogestito. Sono richieste le seguenti autorizzazioni ACL:

  1. Leggi e descrivi tutti gli argomenti

  2. Leggi e descrivi su tutti i gruppi di consumatori

  3. Descrivi sulla risorsa del cluster

Esempi di comandi 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

Configurare gli MTL su un cluster autogestito

Configura un listener SSL sui tuoi broker Kafka autogestiti con. ssl.client.auth=required Il truststore del broker deve contenere il certificato CA che ha firmato il certificato client che utilizzerai per MSK Replicator.

Concedi le autorizzazioni ACL all'entità Kafka derivata dal Distinguished Name (DN) del certificato client. Le autorizzazioni richieste sono: Leggi e descrivi su tutti gli argomenti, Leggi e descrivi su tutti i gruppi di consumatori e Descrivi sulla risorsa del cluster.

Configurazione SASL/OAUTHBEARER (OAuth) su un cluster autogestito

Con SASL/OAUTHBEARER, MSK Replicator ottiene un token di accesso dal provider di identità (IDP) e lo presenta al cluster Kafka autogestito durante l'handshake (RFC 7628). SASL/OAUTHBEARER Configura i tuoi broker con un SASL_SSL listener OAUTHBEARER abilitato e configura la convalida lato broker dei token emessi dal tuo sasl.enabled.mechanisms IDP.

Concedi all'istanza Kafka affinché il tuo IDP associ il token di accesso alle autorizzazioni ACL richieste da MSK Replicator sul cluster di origine.

MSK Replicator supporta i seguenti meccanismi per l'acquisizione di un token di accesso. Ne scegli uno quando crei il Replicator (vedi). CreateReplicator Esempi di API per cluster Kafka autogestiti

  • Credenziali del cliente: la client_credentials concessione standard (RFC 6749 §4.4). Fornisci un «and in». client_id client_secret AWS Secrets Manager Utilizza questo meccanismo con IdP come Okta, Microsoft Entra ID, Keycloak e Google. PingFederate

  • IAM JWT bearer — The JWT bearer assertion grant (RFC 7523). MSK Replicator utilizza l' AWS identità del ruolo di esecuzione del servizio per ottenere un JWT firmato che viene inviato all'endpoint del token come asserzione. Non è richiesto alcun segreto condiviso, anche se è possibile fornire le credenziali del cliente se l'IDP richiede anche l'autenticazione del client.

  • Asserzione delle credenziali del cliente — La client_credentials concessione con un'asserzione del client JWT (RFC §2.2). 7521/7523 Il JWT firmato del ruolo di esecuzione del servizio viene utilizzato per client_assertion autenticare il client, senza un segreto condiviso.

I seguenti requisiti si applicano all'endpoint del token:

  • tokenEndpointUrlÈ necessario utilizzare lo schema HTTPS e specificare un nome host (i valori letterali dell'indirizzo IP non sono consentiti, quindi è possibile eseguire la verifica del nome host TLS).

  • L'endpoint del token deve essere raggiungibile dalle sottoreti VPC fornite per il Replicator. Consulta Configura la connettività di rete.

  • Se il tuo IDP presenta un certificato emesso da una CA privata, archivia il certificato CA AWS Secrets Manager e fai riferimento ad esso quando crei il Replicator. tokenEndpointTlsCertificateArn

Configura SSL su un cluster autogestito

Configura i listener SSL sui tuoi broker. Per i certificati pubblicamente attendibili, non è richiesta alcuna configurazione aggiuntiva. Per i certificati privati o autofirmati, includi l'intera catena di certificati CA nel segreto archiviato in AWS Secrets Manager.

Memorizza le credenziali in AWS Secrets Manager

Crea un segreto di tipo Altro (non RDS/Redshift) in AWS Secrets Manager con le coppie chiave-valore appropriate per il tuo tipo di autenticazione.

Per: SASL/SCRAM

  1. username— Nome utente SCRAM per il cluster autogestito

  2. password— Password SCRAM per il cluster autogestito

  3. certificate— Catena di certificati CA (formato PEM; richiesta per private/self i certificati firmati)

Per MTL:

  1. certificate— catena di certificati PEM-encoded del cliente

  2. privateKey— chiave PEM-encoded privata

  3. privateKeyPassword— (Facoltativo) Passphrase per la chiave privata, richiesta solo per le chiavi PKCS8 crittografate

Per: SASL/OAUTHBEARER

È richiesto un segreto per il meccanismo delle credenziali del client ed è facoltativo per i meccanismi di asserzione delle credenziali del cliente e del portatore IAM JWT (forniscilo solo se il tuo IDP richiede anche l'autenticazione). Il segreto è un oggetto JSON piatto composto da coppie chiave-valore. MSK Replicator riconosce le seguenti chiavi:

  • client_id— L'identificatore del client OAuth. Richiesto per il meccanismo delle credenziali del client.

  • client_secret— Il segreto del client OAuth. Richiesto per il meccanismo delle credenziali del client.

  • custom_param.<name>— (Facoltativo) Un parametro di modulo aggiuntivo aggiunto alla richiesta del token, per gli IDP che richiedono parametri oltre al set OAuth standard. Aggiungi una chiave per parametro (ad esempio,). custom_param.resource

  • custom_header.<name>— (Facoltativo) Un'intestazione HTTP aggiuntiva inviata con la richiesta del token. Aggiungi una chiave per intestazione (ad esempio,custom_header.X-Custom).

  • extension.<name>— (Facoltativo) Un'estensione SASL inviata al broker Kafka durante l' SASL/OAUTHBEARER handshake, per i provider Kafka che richiedono coppie chiave-valore aggiuntive durante l'autenticazione. Aggiungi una chiave per estensione.

Le chiavi diverse da client_id e client_secret che non utilizzano uno di questi prefissi vengono ignorate. Di seguito è riportato un esempio di valore segreto per il meccanismo delle credenziali del client:

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

MSK Replicator rifiuta custom_param. le voci il cui nome di parametro è in conflitto con un parametro OAuth standard (ad esempio,,,,, grant_type client_idclient_secret, client_assertion e). client_assertion_type assertion scope Rifiuta inoltre le custom_header. voci soggette a restrizioni come,, e. Host Authorization Content-Type

Configura la connettività di rete

MSK Replicator richiede la connettività di rete al cluster Kafka autogestito. Opzioni supportate:

  • AWS Site-to-Site VPN: connetti le reti locali al tuo VPC tramite Internet.

  • AWS Direct Connect: stabilisci una connessione di rete privata dedicata dalla tua sede a. AWS

Se lo utilizzi SASL/OAUTHBEARER, l'endpoint del token deve essere raggiungibile anche dalle sottoreti VPC fornite per il Replicator. Per un IDP ospitato su Internet, ciò richiede in genere un gateway Internet, un gateway NAT e voci nella tabella di routing; per un IDP locale o privato, utilizza VPN o Direct Connect. AWS Site-to-Site AWS L'endpoint del token non deve trasformarsi in un indirizzo di loopback, link-local o di metadati. AWS

Configurazione dei gruppi di sicurezza

Assicurati che i gruppi di sicurezza consentano il traffico tra MSK Replicator e il cluster autogestito sulla porta utilizzata dal tuo listener di autenticazione. Aggiorna sia le regole in entrata sui gruppi di sicurezza VPC che le regole in uscita sul firewall del cluster autogestito.