Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Apache Kafka diffuse en tant que source dans Pipes EventBridge
Apache Kafka est une plateforme open source de streaming d’événements qui prend en charge des charges de travail telles que les canaux de données et l’analytique de streaming. Vous pouvez utiliser Amazon Managed Streaming pour Apache Kafka MSK (Amazon) ou un cluster Apache Kafka autogéré. En AWS termes terminologiques, un cluster autogéré fait référence à tout cluster Apache Kafka non hébergé par AWS. Cela inclut à la fois les clusters que vous gérez vous-même, ainsi que ceux hébergés par un fournisseur tiers Confluent
Cloud
Pour plus d'informations sur les autres options d' AWS hébergement pour votre cluster, consultez la section Meilleures pratiques pour exécuter Apache Kafka AWS sur
Apache Kafka en tant que source fonctionne de la même manière qu'Amazon Simple Queue Service (AmazonSQS) ou Amazon Kinesis. EventBridgeinterroge en interne les nouveaux messages provenant de la source, puis invoque la cible de manière synchrone. EventBridge lit les messages par lots et les fournit à votre fonction sous forme de charge utile d'événements. La taille de lot maximale est configurable. (par défaut, 100 messages).
Pour les sources basées sur Apache Kafka, EventBridge prend en charge les paramètres de contrôle du traitement, tels que les fenêtres de traitement par lots et la taille des lots.
EventBridge envoie le lot de messages dans le paramètre d'événement lorsqu'il invoque votre canal. La charge utile d’un événement contient un tableau de messages. Chaque élément de tableau contient les détails de la rubrique Apache Kafka et l’identifiant de partition Apache Kafka, ainsi qu’un horodatage et un message codé en base64.
Exemples d’événements
L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez Filtrage des événements dans Amazon EventBridge Pipes.
[ { "eventSource": "SelfManagedKafka", "bootstrapServers": "b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", "eventSourceKey": "mytopic-0", "topic": "mytopic", "partition": 0, "offset": 15, "timestamp": 1545084650987, "timestampType": "CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers": [ { "headerKey": [ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ]
Authentification de cluster Apache Kafka
EventBridge Pipes prend en charge plusieurs méthodes pour s'authentifier auprès de votre cluster Apache Kafka autogéré. Veillez à configurer le cluster Apache Kafka de sorte à utiliser l’une des méthodes d’authentification prises en charge suivantes : Pour plus d’informations sur la sécurité Apache Kafka, consultez la section Sécurité
VPCaccès
Si vous utilisez un environnement Apache Kafka autogéré dans lequel seuls les utilisateurs d'Apache Kafka VPC ont accès à vos courtiers Apache Kafka, vous devez configurer Amazon Virtual Private Cloud (AmazonVPC) dans la source Apache Kafka.
SASL/SCRAMauthentification
EventBridge Pipes prend en charge l'authentification simple et l'authentification par couche de sécurité/mécanisme d'authentification Salted Challenge Response (SASL/SCRAM) avec le cryptage Transport Layer Security (TLS). EventBridge Pipes envoie les informations d'identification cryptées pour s'authentifier auprès du cluster. Pour plus d'informations sur SCRAM l'authentificationSASL/, consultez RFC5802
EventBridge Pipes prend en charge PLAIN l'authentificationSASL/avec TLS cryptage. Avec PLAIN l'authentificationSASL/, EventBridge Pipes envoie les informations d'identification sous forme de texte clair (non crypté) au serveur.
Pour SASL l'authentification, vous stockez les informations de connexion sous forme de code secret dans AWS Secrets Manager.
TLSAuthentification mutuelle
Mutual TLS (mTLS) fournit une authentification bidirectionnelle entre le client et le serveur. Le client envoie un certificat au serveur pour que le serveur vérifie le client, et le serveur envoie un certificat au client pour que le client vérifie le serveur.
Dans Apache Kafka autogéré, EventBridge Pipes agit en tant que client. Vous configurez un certificat client (en tant que secret dans Secrets Manager) pour authentifier EventBridge Pipes auprès de vos courtiers Apache Kafka. Le certificat client doit être signé par une autorité de certification (CA) située dans le magasin d’approbations du serveur.
Le cluster Apache Kafka envoie un certificat de serveur à EventBridge Pipes pour authentifier les courtiers Apache Kafka auprès de Pipes. EventBridge Le certificat de serveur peut être un certificat d’autorité de certification public ou un certificat CA/auto-signé privé. Le certificat CA public doit être signé par une autorité de certification qui se trouve dans le EventBridge Pipes Trust Store. Pour un certificat privé ou auto-signé, vous configurez le certificat CA racine du serveur (en tant que secret dans Secrets Manager). EventBridge Pipes utilise le certificat racine pour vérifier les courtiers Apache Kafka.
Pour plus d'informations sur mTLS, consultez Présentation de TLS l'authentification mutuelle pour Amazon MSK en tant que source
Configuration du secret du certificat client
Le AUTH secret CLIENT CERTIFICATE _ TLS _ _ nécessite un champ de certificat et un champ de clé privée. Pour une clé privée chiffrée, le secret nécessite un mot de passe de clé privée. Le certificat et la clé privée doivent tous deux être au PEM format.
Note
EventBridge Pipes prend en charge les algorithmes de chiffrement à clé privée PBES1
Le champ de certificat doit contenir une liste de certificats, commençant par le certificat client, suivi de tous les certificats intermédiaires et se terminant par le certificat racine. Chaque certificat doit commencer sur une nouvelle ligne avec la structure suivante :
-----BEGIN CERTIFICATE----- <certificate contents> -----END CERTIFICATE-----
Secrets Manager prend en charge les secrets jusqu’à 65 536 octets, ce qui offre suffisamment d’espace pour de longues chaînes de certificats.
La clé privée doit être au format PKCS#8
-----BEGIN PRIVATE KEY----- <private key contents> -----END PRIVATE KEY-----
Pour une clé privée chiffrée, utilisez la structure suivante :
-----BEGIN ENCRYPTED PRIVATE KEY----- <private key contents> -----END ENCRYPTED PRIVATE KEY-----
L'exemple suivant montre le contenu d'un secret pour mon TLS authentification à l'aide d'une clé privée cryptée. Pour une clé privée chiffrée, incluez le mot de passe de clé privée dans le secret.
{ "privateKeyPassword": "testpassword", "certificate": "-----BEGIN CERTIFICATE----- MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw ... j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk cmUuiAii9R0= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb ... rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg== -----END CERTIFICATE-----", "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY----- MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp ... QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA== -----END ENCRYPTED PRIVATE KEY-----" }
Configuration du secret du certificat d’autorité de certification racine du serveur
Vous créez ce secret si vos courtiers Apache Kafka utilisent le TLS chiffrement avec des certificats signés par une autorité de certification privée. Vous pouvez utiliser TLS le chiffrement pour l'TLSauthentification VPC SCRAMPLAIN, SASLSASL/,/ou m.
Le secret du certificat de l'autorité de certification racine du serveur nécessite un champ contenant le PEM format du certificat d'autorité de certification racine du courtier Apache Kafka. La structure du secret est présentée dans l’exemple suivant.
{ "certificate": "-----BEGIN CERTIFICATE----- MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dG... -----END CERTIFICATE-----"
Configuration réseau
Si vous utilisez un environnement Apache Kafka autogéré qui utilise une VPC connectivité privée, vous EventBridge devez avoir accès aux ressources Amazon Virtual Private Cloud (AmazonVPC) associées à vos courtiers Apache Kafka.
-
Pour accéder à votre cluster Apache Kafka, EventBridge vous pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. VPC Pour les sous-réseaux privés, il peut s'agir d'une NAT passerelle ou de la vôtre. NAT Assurez-vous qu'il NAT possède une adresse IP publique et qu'il peut se connecter à Internet. Pour les sous-réseaux publics, vous devez utiliser des VPC points de terminaison (expliqués ci-dessous).
-
EventBridge Pipes prend également en charge la diffusion d'événements AWS PrivateLink
, ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy. Vous pouvez également utiliser les VPC points de terminaison pour prendre en charge la diffusion à partir de clusters Kafka dans des sous-réseaux publics. Pour configurer un VPC point de terminaison, consultez la section Créer un VPC point de terminaison dans le guide de AWS PrivateLink l'utilisateur. Pour le nom du service, sélectionnez
com.amazonaws.
.region
.pipes-data
Configurez vos groupes VPC de sécurité Amazon avec les règles suivantes (au minimum) :
-
Règles de trafic entrant : autorisez tout le trafic sur le port du broker Apache Kafka pour les groupes de sécurité spécifiés pour votre source.
-
Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port du broker Apache Kafka pour les groupes de sécurité spécifiés pour votre source.
Les ports Broker incluent :
9092 pour le texte en clair
9094 pour TLS
9096 pour SASL
9098 pour IAM
Mise à l'échelle automatique des consommateurs avec les sources Apache Kafka
Lorsque vous créez initialement une source Apache Kafka, EventBridge elle alloue un consommateur pour traiter toutes les partitions du sujet Kafka. Chaque consommateur dispose de plusieurs processeurs exécutés en parallèle pour gérer des charges de travail accrues. En outre, EventBridge augmente ou diminue automatiquement le nombre de consommateurs en fonction de la charge de travail. Pour préserver l’ordre des messages dans chaque partition, le nombre maximum de consommateurs est de un par partition dans la rubrique.
EventBridge Évalue, à intervalles d'une minute, le décalage entre les utilisateurs et toutes les partitions du sujet. Si le décalage est trop élevé, la partition reçoit les messages plus rapidement qu'elle ne EventBridge peut les traiter. Si nécessaire, EventBridge ajoute ou supprime des consommateurs du sujet. Le processus de mise à l’échelle consistant à ajouter ou à supprimer des consommateurs a lieu dans les trois minutes suivant l’évaluation.
Si votre cible est surchargée, vous EventBridge réduisez le nombre de consommateurs. Cette action réduit la charge de travail de la fonction en diminuant le nombre de messages que les consommateurs peuvent échanger avec la fonction.