Cassandra Python クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス - Amazon Keyspaces (Apache Cassandra 向け)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Cassandra Python クライアントドライバーを使用した Amazon Keyspaces へのプログラムアクセス

このセクションでは、Python クライアントドライバーを使用して Amazon Keyspaces に接続する方法について説明します。Amazon Keyspaces リソースへのプログラムアクセスに必要な認証情報を、ユーザーとアプリケーションに提供するには、次のいずれかを実行します。

  • 特定の AWS Identity and Access Management (IAM) ユーザーに関連付けられたサービス固有の認証情報を作成します。

  • セキュリティを強化するために、すべての AWS サービスで使用されるIAMユーザーまたはロールのIAMアクセスキーを作成することをお勧めします。Cassandra クライアントドライバー用の Amazon Keyspaces SigV4 認証プラグインを使用すると、ユーザー名とパスワードの代わりにIAMアクセスキーを使用して Amazon Keyspaces への呼び出しを認証できます。詳細については、「Amazon Keyspaces の AWS 認証情報の作成と設定」を参照してください。

[開始する前に]

開始する前に、次のタスクを完了する必要があります。

Amazon Keyspaces では、クライアントとの接続を保護するために Transport Layer Security (TLS) を使用する必要があります。を使用して Amazon Keyspaces に接続するにはTLS、Amazon デジタル証明書をダウンロードし、 を使用するように Python ドライバーを設定する必要がありますTLS。

次のコマンドを使用して Starfield デジタル証明書をダウンロードし、sf-class2-root.crt をローカルまたはホームディレクトリ内に保存します。

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

Amazon デジタル証明書を使用して Amazon Keyspaces に接続することもできます。クライアントが Amazon Keyspaces に正常に接続されている場合は、引き続き Amazon Keyspaces に接続できます。Starfield 証明書は、古い認定権限を使用しているクライアントに対して追加の下位互換性を提供するものです。

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

Apache Cassandra 用の Python ドライバーとサービス固有の認証情報を使用して Amazon Keyspaces に接続する

次のコード例では、Python クライアントドライバーとサービス固有の認証情報を使用して Amazon Keyspaces に接続する方法を示します。

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)

使用に関する注意事項:

  1. "path_to_file/sf-class2-root.crt" を、最初のステップで保存した証明書へのパスに置き換えてください。

  2. ServiceUserName 「」の手順に従って、 と がサービス固有の認証情報を生成したときに取得したユーザー名とパスワードServicePasswordと一致することを確認しますAmazon Keyspaces にプログラムによってアクセスするためのサービス固有の認証情報を作成する

  3. 利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。

Apache Cassandra 用の Python ドライバーと SigV4 認証プラグインを使用して DataStax Amazon Keyspaces に接続する

次のセクションでは、Apache Cassandra 用のオープンソース DataStax Python ドライバーの SigV4 認証プラグインを使用して Amazon Keyspaces (Apache Cassandra 向け) にアクセスする方法を示します。

まだ作成していない場合は、「」の手順に従ってIAMロールの認証情報を作成することから始めますAmazon Keyspaces の AWS 認証情報の作成と設定。このチュートリアルでは、 IAMロールを必要とする一時的な認証情報を使用します。一時認証情報の詳細については、「IAM ロールと SigV4 プラグインを使用して Amazon Keyspaces に接続するための一時的な認証情報を作成する」を参照してください。

次に、GitHub Python SigV4 認証プラグインをリポジトリから環境に追加します。

pip install cassandra-sigv4

次のコード例は、Cassandra 用のオープンソース DataStax Python ドライバーと SigV4 認証プラグインを使用して Amazon Keyspaces に接続する方法を示しています。プラグインは for AWS SDK Python (Boto3) に依存します。boto3.session を使用して一時認証情報を取得します。

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)

使用に関する注意事項:

  1. "path_to_file/sf-class2-root.crt" を、最初のステップで保存した証明書へのパスに置き換えてください。

  2. aws_access_key_idaws_secret_access_key、および が、 を使用してSession Token取得した Access KeySecret Access Key、および aws_session_tokenと一致することを確認しますboto3.session。詳細については、AWS SDK for Python (Boto3)「Credentials」(認証情報) を参照してください。

  3. 利用可能なエンドポイントのリストについては、「Amazon Keyspaces のサービスエンドポイント」を参照してください。