Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
Authentification avec mTLS pour l’ingestion en streaming Redshift à partir de sources Apache Kafka
Le protocole mTLS (Mutual Transport-layer Security) permet à un serveur d’authentifier un client auquel il envoie des informations et au client d’authentifier le serveur. L’avantage de l’utilisation de mTLS 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 en streaming vers Redshift, l’authentification a lieu entre un serveur, qui peut être Amazon MSK, Apache Kafka ou Confluent Cloud, et un cluster Amazon Redshift alloué ou un groupe de travail Amazon Redshift sans serveur.
Cette rubrique fournit des procédures et des exemples de commandes SQL qui montrent comment créer un schéma externe qui utilise mTLS pour l’authentification 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 en streaming à partir de sources Apache Kafka. Pour plus d’informations, consultez Mise en route de l’ingestion en streaming à partir de sources Apache Kafka.
Conditions préalables à l’utilisation de mTLS pour l’ingestion en streaming
Cette section fournit les étapes préalables à l’utilisation de mTLS pour l’ingestion en streaming avec AWS Certificate Manager ou AWS Secrets Manager.
À 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 Autorité de certification privée L’autorité de certification privée (Private CA) est un service disponible qui exécute cette fonction. Pour plus d’informations, consultez Création d’une autorité de certification privée du Guide de l’utilisateur AWS Autorité de certification privée. Après avoir créé l’autorité de certification privée, exportez le certificat CA 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 mTLS pour l’ingestion en streaming avec AWS Certificate Manager
La procédure suivante explique comment configurer mTLS pour l’ingestion en streaming Redshift en utilisant AWS Certificate Manager (ACM) pour le stockage et la gestion des certificats :
Demandez un certificat privé via ACM. Dans ce cas, sélectionnez la PCA que vous avez créée dans la section Prérequis comme autorité de certification. ACM stocke le certificat signé et la clé privée attachée pour une communication sécurisée. Pour plus d’informations sur la gestion des certificats avec ACM, consultez Émission et gestion des certificats dans le Guide de l’utilisateur AWS Certificate Manager.
Pour le rôle IAM que vous utilisez pour gérer votre cluster Redshift ou votre groupe de travail Amazon Redshift sans serveur, attachez l’autorisation d’exporter le certificat, qui est acm:ExportCertificate. Pour de plus amples informations sur la configuration des ressources IAM nécessaires à l’ingestion en streaming, consultez Configuration de l’ingestion en streaming depuis Kafka. Spécifiez le même rôle IAM à l’étape suivante pour créer le schéma externe.
Note
Les requêtes à AWS Certificate Manager nécessitent 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 d’un VPC Secrets Manager à votre VPC.
Pour plus d’informations sur l’utilisation de Secrets Manager avec mTLS pour l’ingestion en streaming, consultez Utilisation de mTLS pour l’ingestion en streaming avec AWS Secrets Manager ci-dessous.
Obtenez l’URI de l’agent d’amorçage pour le cluster Amazon MSK, Apache Kafka ou Confluent Cloud. Pour plus d’informations sur l’obtention de l’URI de l’agent d’amorçage pour Amazon MSK, consultez Obtenir les agents d’amorçage pour un cluster Amazon MSK dans le Guide du développeur Amazon Managed Streaming pour Apache Kafka.
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 en streaming.
URI : l’URI de l’agent d’amorçage pour le cluster. Notez que pour Amazon MSK, le port 9094 est spécifié pour communiquer avec les agents pour le chiffrement TLS.
AUTHENTICATION_ARN : 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 plus d’informations, consultez Mise en route de l’ingestion en streaming à partir de sources Apache Kafka.
Utilisation de mTLS pour l’ingestion en streaming avec AWS Secrets Manager
Vous pouvez configurer mTLS pour l’ingestion en streaming Redshift en utilisant AWS Secrets Manager 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 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 privée (PCA) AWS 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 IssueCertificate dans la Référence de l’API AWS Autorité de certification privée.
Extrayez le certificat à l’aide de AWS Autorité de certification privée. Pour de plus amples informations, consultez Récupération d’un certificat privé dans le Guide de l’utilisateur AWS Autorité de certification privée.
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 secretet utilisez le format 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 des secrets dans AWS Secrets Manager, consultez Création et gestion des secrets avec AWS Secrets Manager dans le Guide de l’utilisateur AWS Secrets Manager.{"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-----"}Attachez la politique d’autorisation pour extraire le secret vers le rôle IAM que vous utilisez pour gérer votre cluster Amazon Redshift ou votre groupe de travail Amazon Redshift sans serveur. Cette autorisation est
secretsmanager:GetSecretValue. Pour plus d’informations, consultez Configurer l’authentification. Pour plus d’informations sur la gestion des stratégies IAM, consultez Modification de 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 un schéma externe. Vous utilisez le type 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 en streaming.
URI : l’URI de l’agent d’amorçage pour le cluster. Notez que pour Amazon MSK, le port 9094 est spécifié pour communiquer avec les agents pour le chiffrement TLS.
SECRET_ARN : l’ARN du secret provenant de Secrets Manager, contenant le certificat à utiliser pour mTLS.
Activation de l’authentification mTLS pour un schéma externe existant
Si vous utilisez un schéma externe pour l’ingestion en streaming et que vous souhaitez implémenter le protocole mTLS 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';
Pour en savoir plus sur la commande ALTER EXTERNAL SCHEMA, consultez ALTER EXTERNAL SCHEMA.