Como usar um driver de cliente Cassandra Python para acessar o Amazon Keyspaces programaticamente - Amazon Keyspaces (para Apache Cassandra)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como usar um driver de cliente Cassandra Python para acessar o Amazon Keyspaces programaticamente

Esta seção mostra como se conectar ao Amazon Keyspaces usando um driver de cliente Python. Para fornecer aos usuários e aplicativos credenciais para acesso programático aos recursos do Amazon Keyspaces, você pode executar uma das seguintes ações:

  • Crie credenciais específicas do serviço associadas a um usuário específico AWS Identity and Access Management ()IAM.

  • Para aumentar a segurança, recomendamos criar chaves de IAM acesso para IAM usuários ou funções que sejam usadas em todos os AWS serviços. O plug-in de autenticação SigV4 do Amazon Keyspaces para drivers de clientes do Cassandra permite que você autentique chamadas para o Amazon Keyspaces IAM usando chaves de acesso em vez de nome de usuário e senha. Para obter mais informações, consulte Criar e configurar AWS credenciais para Amazon Keyspaces.

Antes de começar

Você precisa concluir a tarefa seguinte antes de iniciar.

O Amazon Keyspaces exige o uso do Transport Layer Security (TLS) para ajudar a proteger as conexões com os clientes. Para se conectar ao Amazon Keyspaces usandoTLS, você precisa baixar um certificado digital da Amazon e configurar o driver Python a ser usado. TLS

Faça o download do certificado digital Starfield usando o comando a seguir e salve sf-class2-root.crt localmente ou em seu diretório inicial.

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

Você também pode usar o certificado digital da Amazon para se conectar ao Amazon Keyspaces e continuar fazendo isso se seu cliente estiver se conectando ao Amazon Keyspaces com sucesso. O certificado Starfield fornece compatibilidade adicional com versões anteriores para clientes que usam autoridades de certificação mais antigas.

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

Conecte-se ao Amazon Keyspaces usando o driver Python para Apache Cassandra e credenciais específicas do serviço

O exemplo de código a seguir mostra como se conectar ao Amazon Keyspaces com um driver de cliente Python e credenciais específicas do serviço.

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)

Observações de uso:

  1. Substitua "path_to_file/sf-class2-root.crt" pelo caminho para o certificado salvo na primeira etapa.

  2. Certifique-se de que o ServiceUserName e ServicePassword corresponda ao nome de usuário e à senha que você obteve ao gerar as credenciais específicas do serviço seguindo as etapas para. Crie credenciais específicas do serviço para acesso programático ao Amazon Keyspaces

  3. Para obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.

Conecte-se ao Amazon Keyspaces usando o driver DataStax Python para Apache Cassandra e o plug-in de autenticação SigV4

A seção a seguir mostra como usar o plug-in de autenticação SigV4 para o driver DataStax Python de código aberto do Apache Cassandra para acessar o Amazon Keyspaces (para o Apache Cassandra).

Se você ainda não fez isso, comece criando credenciais para sua IAM função seguindo as etapas emCriar e configurar AWS credenciais para Amazon Keyspaces. Este tutorial usa credenciais temporárias, o que requer uma IAM função. Para obter mais informações sobre credenciais temporárias, consulte Crie credenciais temporárias para se conectar ao Amazon Keyspaces usando IAM uma função e o plug-in SigV4.

Em seguida, adicione o plug-in de autenticação Python SigV4 ao seu ambiente a partir do repositório. GitHub

pip install cassandra-sigv4

O exemplo de código a seguir mostra como se conectar ao Amazon Keyspaces usando o driver DataStax Python de código aberto para Cassandra e o plug-in de autenticação SigV4. O plugin depende do AWS SDK for Python (Boto3). Ele usa boto3.session para obter credenciais temporárias.

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)

Observações de uso:

  1. Substitua "path_to_file/sf-class2-root.crt" pelo caminho para o certificado salvo na primeira etapa.

  2. Certifique-se de que o aws_access_key_id, aws_secret_access_key, e o aws_session_token combine comAccess Key,Secret Access Key, e Session Token você obteve usandoboto3.session. Para obter mais informações, consulte Credenciais no AWS SDK for Python (Boto3).

  3. Para obter uma lista de endpoints disponíveis, consulte Endpoints de serviço para Amazon Keyspaces.