Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de un controlador de cliente Python para Cassandra para acceder mediante programación a Amazon Keyspaces
En esta sección, le mostramos cómo conectarse a Amazon Keyspaces utilizando un controlador de cliente Python. Para proporcionar a los usuarios y a las aplicaciones credenciales de acceso programático a los recursos de Amazon Keyspaces, puede realizar cualquiera de las siguientes acciones:
-
Cree credenciales específicas del servicio que estén asociadas a un usuario AWS Identity and Access Management (IAM) específico.
-
Para mejorar la seguridad, recomendamos crear claves de IAM acceso para IAM los usuarios o roles que se utilicen en todos los AWS servicios. El complemento de autenticación SiGv4 de Amazon Keyspaces para los controladores de clientes de Cassandra le permite autenticar las llamadas a Amazon Keyspaces IAM mediante claves de acceso en lugar del nombre de usuario y la contraseña. Para obtener más información, consulte Creación y configuración de AWS credenciales para Amazon Keyspaces.
Temas
Antes de empezar
Debe completar la siguiente tarea antes de comenzar.
Amazon Keyspaces requiere el uso de Transport Layer Security (TLS) para proteger las conexiones con los clientes. Para conectarse a Amazon Keyspaces medianteTLS, debe descargar un certificado digital de Amazon y configurar el controlador de Python que va a utilizar. TLS
Descargue el certificado digital de Starfield utilizando el siguiente comando y guarde sf-class2-root.crt
localmente o en su directorio de inicio.
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
nota
También puede utilizar el certificado digital de Amazon para conectarse a Amazon Keyspaces, y puede seguir haciéndolo si su cliente se conecta a Amazon Keyspaces correctamente. El certificado de Starfield proporciona compatibilidad retroactiva adicional para los clientes que utilicen autoridades de certificación más antiguas.
curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
Conexión a Amazon Keyspaces mediante el controlador Python para Apache Cassandra y credenciales específicas del servicio
En el siguiente ejemplo de código se muestra cómo conectarse a Amazon Keyspaces con un controlador de cliente Python y credenciales específicas del servicio.
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)
Notas de uso:
Sustituya
"
por la ruta al certificado guardado en el primer paso.path_to_file
/sf-class2-root.crt"Asegúrese de que
ServicePassword
coincidan con el nombre de usuario y la contraseña que obtuvo al generar las credenciales específicas del servicio siguiendo los pasos que se indican a continuación.ServiceUserName
Creación de credenciales específicas del servicio para el acceso programático a Amazon KeyspacesPara obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.
Conéctese a Amazon Keyspaces mediante el controlador de DataStax Python para Apache Cassandra y el complemento de autenticación SigV4
En la siguiente sección, se muestra cómo utilizar el complemento de autenticación SigV4 para que el controlador DataStax Python de código abierto para Apache Cassandra acceda a Amazon Keyspaces (para Apache Cassandra).
Si aún no lo ha hecho, comience por crear las credenciales para su IAM función siguiendo los pasos que se indican en. Creación y configuración de AWS credenciales para Amazon Keyspaces En este tutorial se utilizan credenciales temporales, que requieren un IAM rol. Para obtener más información sobre credenciales temporales, consulte Cree credenciales temporales para conectarse a Amazon Keyspaces mediante un IAM rol y el complemento SigV4.
A continuación, añada el complemento de autenticación SigV4 de Python a su entorno desde el GitHub repositorio
pip install cassandra-sigv4
El siguiente ejemplo de código muestra cómo conectarse a Amazon Keyspaces mediante el controlador DataStax Python de código abierto para Cassandra y el complemento de autenticación SigV4. El complemento depende de la versión AWS SDK para Python (Boto3). Utiliza boto3.session
para obtener credenciales temporales.
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)
Notas de uso:
Sustituya
"
por la ruta al certificado guardado en el primer paso.path_to_file
/sf-class2-root.crt"Asegúrese de que
aws_access_key_id
aws_secret_access_key
, y elaws_session_token
coincidan conAccess Key
Secret Access Key
, ySession Token
que obtuvo usando.boto3.session
Para obtener más información, consulte la sección sobre credencialesen la AWS SDK for Python (Boto3). Para obtener una lista de los puntos de conexión disponibles, consulte Puntos de conexión de servicio para Amazon Keyspaces.