Utilisation d'un pilote client Cassandra Python pour accéder à Amazon Keyspaces par programmation - Amazon Keyspaces (pour Apache Cassandra)

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.

Utilisation d'un pilote client Cassandra Python pour accéder à Amazon Keyspaces par programmation

Dans cette section, nous vous expliquons comment vous connecter à Amazon Keyspaces à l'aide d'un pilote client Python. Pour fournir aux utilisateurs et aux applications des informations d'identification leur permettant d'accéder par programmation aux ressources Amazon Keyspaces, vous pouvez effectuer l'une des opérations suivantes :

  • Créez des informations d'identification spécifiques au service associées à un utilisateur spécifique AWS Identity and Access Management (IAM).

  • Pour renforcer la sécurité, nous recommandons de créer des clés IAM d'accès pour IAM les utilisateurs ou les rôles qui soient utilisées dans tous les AWS services. Le plugin d'authentification Amazon Keyspaces SigV4 pour les pilotes clients Cassandra vous permet d'authentifier les appels vers Amazon Keyspaces à l'IAMaide de clés d'accès plutôt que d'un nom d'utilisateur et d'un mot de passe. Pour de plus amples informations, veuillez consulter Création et configuration AWS informations d'identification pour Amazon Keyspaces.

Avant de commencer

Vous devez effectuer la tâche suivante avant de pouvoir commencer.

Amazon Keyspaces nécessite l'utilisation de Transport Layer Security (TLS) pour sécuriser les connexions avec les clients. Pour vous connecter à Amazon Keyspaces à l'aide d'Amazon KeyspacesTLS, vous devez télécharger un certificat numérique Amazon et configurer le pilote Python à utiliser. TLS

Téléchargez le certificat numérique Starfield à l'aide de la commande suivante et enregistrez-le sf-class2-root.crt localement ou dans votre répertoire personnel.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Note

Vous pouvez également utiliser le certificat numérique Amazon pour vous connecter à Amazon Keyspaces et continuer à le faire si votre client se connecte correctement à Amazon Keyspaces. Le certificat Starfield fournit une rétrocompatibilité supplémentaire aux clients utilisant des autorités de certification plus anciennes.

curl https://certs.secureserver.net/repository/sf-class2-root.crt -O

Connectez-vous à Amazon Keyspaces à l'aide du pilote Python pour Apache Cassandra et des informations d'identification spécifiques au service

L'exemple de code suivant vous montre comment vous connecter à Amazon Keyspaces à l'aide d'un pilote client Python et d'informations d'identification spécifiques au service.

from cassandra.cluster import Cluster from ssl import SSLContext, PROTOCOL_TLSv1_2 , CERT_REQUIRED from cassandra.auth import PlainTextAuthProvider ssl_context = SSLContext(PROTOCOL_TLSv1_2 ) ssl_context.load_verify_locations('path_to_file/sf-class2-root.crt') ssl_context.verify_mode = CERT_REQUIRED auth_provider = PlainTextAuthProvider(username='ServiceUserName', password='ServicePassword') cluster = Cluster(['cassandra.us-east-2.amazonaws.com'], ssl_context=ssl_context, auth_provider=auth_provider, port=9142) session = cluster.connect() r = session.execute('select * from system_schema.keyspaces') print(r.current_rows)

Remarques d'utilisation :

  1. "path_to_file/sf-class2-root.crt"Remplacez-le par le chemin d'accès au certificat enregistré lors de la première étape.

  2. Assurez-vous que ServiceUserName and ServicePassword correspondez au nom d'utilisateur et au mot de passe que vous avez obtenus lorsque vous avez généré les informations d'identification spécifiques au service en suivant les étapes de. Créez des informations d'identification spécifiques au service pour un accès programmatique à Amazon Keyspaces

  3. Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section Points de terminaison de service pour Amazon Keyspaces.

Connectez-vous à Amazon Keyspaces à l'aide du pilote DataStax Python pour Apache Cassandra et du plugin d'authentification SigV4

La section suivante explique comment utiliser le plugin d'authentification SigV4 pour le pilote DataStax Python open source pour Apache Cassandra afin d'accéder à Amazon Keyspaces (pour Apache Cassandra).

Si ce n'est pas déjà fait, commencez par créer des informations d'identification pour votre IAM rôle en suivant les étapes décrites dansCréation et configuration AWS informations d'identification pour Amazon Keyspaces. Ce didacticiel utilise des informations d'identification temporaires, qui nécessitent un IAM rôle. Pour plus d'informations sur les informations d'identification temporaires, consultezCréez des informations d'identification temporaires pour vous connecter à Amazon Keyspaces à l'aide d'un IAM rôle et du plugin SigV4.

Ajoutez ensuite le plugin d'authentification Python SigV4 à votre environnement depuis le GitHub référentiel.

pip install cassandra-sigv4

L'exemple de code suivant montre comment se connecter à Amazon Keyspaces à l'aide du pilote DataStax Python open source pour Cassandra et du plugin d'authentification SigV4. Le plugin dépend du plugin AWS SDK for Python (Boto3). Il est utilisé boto3.session pour obtenir des informations d'identification temporaires.

from cassandra.cluster import Cluster from ssl import SSLContext, PROTOCOL_TLSv1_2 , CERT_REQUIRED from cassandra.auth import PlainTextAuthProvider import boto3 from cassandra_sigv4.auth import SigV4AuthProvider ssl_context = SSLContext(PROTOCOL_TLSv1_2) ssl_context.load_verify_locations('path_to_file/sf-class2-root.crt') ssl_context.verify_mode = CERT_REQUIRED # use this if you want to use Boto to set the session parameters. boto_session = boto3.Session(aws_access_key_id="AKIAIOSFODNN7EXAMPLE", aws_secret_access_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", aws_session_token="AQoDYXdzEJr...<remainder of token>", region_name="us-east-2") auth_provider = SigV4AuthProvider(boto_session) # Use this instead of the above line if you want to use the Default Credentials and not bother with a session. # auth_provider = SigV4AuthProvider() cluster = Cluster(['cassandra.us-east-2.amazonaws.com'], ssl_context=ssl_context, auth_provider=auth_provider, port=9142) session = cluster.connect() r = session.execute('select * from system_schema.keyspaces') print(r.current_rows)

Remarques d'utilisation :

  1. "path_to_file/sf-class2-root.crt"Remplacez-le par le chemin d'accès au certificat enregistré lors de la première étape.

  2. Assurez-vous que aws_access_key_id, aws_secret_access_key, et le aws_session_token correspond au Access KeySecret Access Key, et Session Token vous avez obtenu en utilisantboto3.session. Pour de plus amples informations, veuillez consulter Informations d'identification dans le AWS SDK for Python (Boto3).

  3. Pour obtenir la liste des points de terminaison disponibles, reportez-vous à la section Points de terminaison de service pour Amazon Keyspaces.