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

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

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

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

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

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

開始する前に

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

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

次のコマンドを使用して 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. 「」の手順に従って、ServiceUser名前と がサービス固有の認証情報を生成したときに取得したユーザー名とパスワードServicePasswordと一致することを確認しますサービス固有の認証情報を生成する

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

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

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

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

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

pip install cassandra-sigv4

次のコード例は、Cassandra 用のオープンソース DataStax Python ドライバーと SigV4 認証プラグインを使用して Amazon Keyspaces に接続する方法を示しています。プラグインは AWS SDK for 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_keyaws_session_token が、boto3.session を使用して入手した Access KeySecret Access KeySession Token に一致していることを確認します。詳細については、AWS SDK for Python (Boto3)「Credentials」(認証情報) を参照してください。

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