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.
Authentification avec MTL pour l'ingestion de flux Redshift à partir de sources Apache Kafka
La sécurité mutuelle de la couche de transport (mTLS) permet à un serveur d'authentifier un client auquel il envoie des informations et au client d'authentifier le serveur. L'avantage de l'utilisation des MTL est de fournir une authentification fiable pour une variété de cas d'utilisation dans plusieurs applications sectorielles. Il s'agit notamment de cas d'utilisation dans les secteurs de la finance, du commerce de détail, du gouvernement et de la santé. En cas d'ingestion du streaming vers Redshift, l'authentification a lieu entre un serveur, qui peut être Amazon MSK, Apache Kafka ou Confluent Cloud, et un cluster provisionné par Amazon Redshift ou un groupe de travail Amazon Redshift Serverless.
Cette rubrique fournit des procédures et des exemples de commandes SQL qui montrent comment créer un schéma externe utilisant mTLS pour s'authentifier entre le client Redshift et n'importe quel serveur Apache Kafka. Les étapes décrites dans cette rubrique complètent l'ensemble des étapes de configuration de l'ingestion du streaming à partir de sources Apache Kafka. Pour de plus amples informations, veuillez consulter Commencer à ingérer du streaming à partir de sources Apache Kafka.
Conditions préalables à l'utilisation des MTL pour l'ingestion du streaming
Cette section fournit les étapes préalables à l'utilisation des MTL pour l'ingestion du streaming avec l'un AWS Certificate Manager ou AWS Secrets Manager l'autre.
À titre d'étape préliminaire, vous devez disposer ou créer une autorité de certification privée (PCA), que vous pouvez utiliser pour émettre des certificats qui, entre autres fonctions, permettent une communication sécurisée via des canaux de communication sécurisés. AWS Private Certificate Authority (Private CA) est un service disponible qui exécute cette fonction. Pour plus d'informations, consultez la section Création d'une autorité de certification privée dans le guide de AWS Private Certificate Authority l'utilisateur. Après avoir créé l'autorité de certification privée, exportez le certificat de l'autorité de certification racine et enregistrez-le dans un fichier portant l'extension .pem.
Pour créer un cluster qui utilise le certificat CA, procédez comme suit :
Utilisation de MTL pour l'ingestion du streaming avec AWS Certificate Manager
La procédure suivante explique comment configurer les MTL pour l'ingestion du streaming Redshift en AWS Certificate Manager utilisant (ACM) pour le stockage et la gestion des certificats :
Demandez un certificat privé via ACM. Dans ce cas, sélectionnez le PCA que vous avez créé dans la section Prérequis comme autorité de certification. ACM stocke le certificat signé et la clé privée jointe pour une communication sécurisée. Pour plus d'informations sur la gestion des certificats avec ACM, consultez la section Émission et gestion des certificats dans le guide de l'AWS Certificate Manager utilisateur.
Pour le rôle IAM que vous utilisez pour gérer votre cluster Redshift ou votre groupe de travail Amazon Redshift Serverless, attachez l'autorisation d'exporter le certificat, qui est acm :. ExportCertificate Pour plus d'informations sur la configuration des ressources IAM nécessaires à l'ingestion du streaming, consultezConfiguration de l'ingestion du streaming depuis Kafka. Spécifiez le même rôle IAM à l'étape suivante pour créer le schéma externe.
Note
Demandes pour AWS Certificate Manager exiger une passerelle Internet (IGW) ou une passerelle NAT (NGW) dans votre VPC. Si votre VPC ne possède ni IGW ni NGW, procédez comme suit :
Utilisez Secrets Manager au lieu d'ACM pour stocker vos certificats.
Attachez un point de terminaison VPC Secrets Manager à votre VPC.
Pour plus d'informations sur l'utilisation de Secrets Manager avec MTL pour l'ingestion du streaming, voir Utilisation de MTL pour l'ingestion du streaming avec AWS Secrets Manager ci-dessous.
Obtenez l'URI du broker bootstrap pour le cluster Amazon MSK, Apache Kafka ou Confluent Cloud. Pour plus d'informations sur l'obtention de l'URI du courtier bootstrap pour Amazon MSK, consultez Getting the bootstrap brokers for an Amazon MSK cluster dans le manuel Amazon Managed Streaming for Apache Kafka Developer Guide.
Exécutez une commande SQL telle que l'exemple suivant pour créer un schéma externe qui mappe le cluster à un schéma externe Redshift, en utilisant.
mtls
Paramètres importants :
IAM_ROLE — Rôle IAM associé au cluster, pour l'ingestion du streaming.
URI — L'URI du courtier bootstrap pour le cluster. Notez que pour Amazon MSK, le port 9094 est spécifié pour communiquer avec les courtiers pour le chiffrement TLS.
AUTHENTICATION_ARN — L'ARN du certificat ACM. L'ARN est disponible dans la console ACM lorsque vous choisissez le certificat émis.
Après avoir effectué ces étapes de configuration, vous pouvez créer une vue matérialisée Redshift qui fait référence au schéma défini dans l'exemple, puis utiliser REFRESH MATERIALIZED VIEW pour diffuser des données. Pour de plus amples informations, veuillez consulter Commencer à ingérer du streaming à partir de sources Apache Kafka.
Utilisation de MTL pour l'ingestion du streaming avec AWS Secrets Manager
Vous pouvez configurer les MTL pour l'ingestion du streaming Redshift en les AWS Secrets Manager utilisant pour la gestion des certificats si vous ne souhaitez pas référencer le certificat dans. AWS Certificate Manager Les étapes suivantes décrivent comment configurer les MTLs à l'aide de Secrets Manager.
Créez une demande de signature de certificat et une clé privée avec l'outil de votre choix. Vous pouvez ensuite utiliser la demande de signature pour générer un certificat signé, en utilisant la même autorité de certification AWS privée (PCA) que celle que vous avez utilisée pour générer le certificat pour le cluster. Pour plus d'informations sur l'émission d'un certificat, consultez IssueCertificatela référence de l'AWS Private Certificate Authority API.
Extrayez le certificat à l'aide de AWS Private Certificate Authority. Pour plus d'informations, consultez la section Récupérer un certificat privé dans le guide de AWS Private Certificate Authority l'utilisateur.
Stockez le certificat et la clé privée générés à l'étape précédente dans AWS Secrets Manager. Choisissez
Other type of secret
et utilisez le format de texte brut. Les paires clé-valeur doivent être au format{"certificate":"<cert value>","privateKey":"<pkey value>"}
, comme dans l'exemple suivant. Pour plus d'informations sur la création et la gestion de secrets dans AWS Secrets Manager, voir Création et gestion de secrets AWS Secrets Manager dans le Guide de AWS Secrets Manager l'utilisateur.{"certificate":"-----BEGIN CERTIFICATE----- klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi H4hAX8/eE96qCcjkpfT84EdvHzp6fC+/WwM0oXlwUEWlvfMCXNaG5D8SqRq3qA== -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY -----END CERTIFICATE-----", "privateKey":"-----BEGIN PRIVATE KEY----- klhdslkfjahksgdfkgioeuyihbflahabhbdslv6akybeoiwv1hoaiusdhbahsbdi 7OD4m1dBEs3Fj++hDMH9rYRp99RqtCOf0EWOUe139KOilOsW+cyhAoc9Ci2+Jo/k 17u2N1iGILMQEZuCRtnJOkFYkw== -----END PRIVATE KEY-----"}
Joignez la politique d'autorisation pour récupérer le secret au rôle IAM que vous utilisez pour gérer votre cluster Amazon Redshift ou votre groupe de travail Amazon Redshift Serverless. Cette autorisation est
secretsmanager:GetSecretValue
. Pour de plus amples informations, veuillez consulter Configurer l'authentification. Pour plus d'informations sur la gestion des politiques IAM, voir Modifier les politiques IAM. Spécifiez le même rôle IAM à l'étape suivante pour créer le schéma externe.Dans Redshift, exécutez la commande SQL pour créer le schéma externe. Vous utilisez le type d'AUTHENTIFICATION
mtls
. Vous spécifiez également l'URI du cluster et l'ARN secret dans AWS Secrets Manager.CREATE EXTERNAL SCHEMA my_schema FROM KAFKA IAM_ROLE 'arn:aws:iam::012345678901:role/my_role' AUTHENTICATION mtls URI 'b-1.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094,b-2.myTestCluster.123z8u.c2.kafka.us-west-1.amazonaws.com:9094' SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';
Paramètres importants :
IAM_ROLE — Rôle IAM associé au cluster, pour l'ingestion du streaming.
URI — L'URI du courtier bootstrap pour le cluster. Notez que pour Amazon MSK, le port 9094 est spécifié pour communiquer avec les courtiers pour le chiffrement TLS.
SECRET_ARN — L'ARN du secret provenant de Secrets Manager, contenant le certificat à utiliser pour les MTL.
Activation de l'authentification mTLS pour un schéma externe existant
Si vous utilisez un schéma externe pour l'ingestion du streaming et que vous souhaitez implémenter le protocole TLS mutuel pour l'authentification, vous pouvez exécuter une commande telle que la suivante, qui spécifie l'authentification mTLS et l'ARN du certificat ACM dans ACM.
ALTER EXTERNAL SCHEMA schema_name AUTHENTICATION mtls AUTHENTICATION_ARN 'arn:aws:acm:Region:444455556666:certificate/certificate_ID';
Vous pouvez également spécifier l'authentification mTLS, en référence à l'ARN secret dans AWS Secrets Manager.
ALTER EXTERNAL SCHEMA schema_name AUTHENTICATION mtls SECRET_ARN 'arn:aws:secretsmanager:us-east-1:012345678910:secret:myMTLSSecret';