翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
cqlsh を使用した Amazon Keyspaces への接続
cqlsh で Amazon Keyspaces に接続するには、cqlsh-expansion を使用します。このツールキットには、cqlsh や Apache Cassandra との完全な互換性を維持して、Amazon Keyspaces 用に事前設定した一般的な Apache Cassandra ツールなどのヘルパーが含まれています。cqlsh-expansion は、SigV4 認証プラグインを統合しているため、ユーザー名とパスワードを使用する代わりに、IAM アクセスキーで接続できます。Amazon Keyspaces はサーバーレスなので、cqlsh スクリプトをインストールするだけで接続でき、Apache Cassandraディストリビューション一式をインストールする必要はありません。この軽量インストールパッケージには、cqlsh-expansion と、Python をサポートするプラットフォームであればどのプラットフォームにもインストールできるクラシック cqlsh スクリプトが含まれています。
注記
Murmur3Partitioner は、Amazon Keyspaces と cqlsh-expansion に推奨されるパーティショナーです。cqlsh-expansion は Amazon Keyspaces DefaultPartitioner に対応していません。詳細については、「Amazon Keyspaces でのパーティショナーの操作」を参照してください。
「cqlsh」の詳細については、「cqlsh: CQL シェル」
cqlsh-expansion による Amazon Keyspaces までの接続
cqlsh-expansion のインストールと設定
cqlsh-expansionPython パッケージをインストールするには、pipコマンドを実行します。これにより、pip install と依存関係のリストを保存したファイルとともに、cqlsh-expansionスクリプトがマシンにインストールされます。--user flagは、プラットフォームの Python ユーザーインストールディレクトリを使用するようにpipに指示します。Unix ベースのシステムでは、それが~/.local/ディレクトリになるはずです。cqlsh-expansionをインストールするには Python 3 が必要です。使用している Python のバージョンを確認するには、Python --versionを使用してください。インストールするには、次のコマンドを実行します。python3 -m pip install --user cqlsh-expansion出力は次のようになります。
Collecting cqlsh-expansion Downloading cqlsh_expansion-0.9.6-py3-none-any.whl (153 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 153.7/153.7 KB 3.3 MB/s eta 0:00:00 Collecting cassandra-driver Downloading cassandra_driver-3.28.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (19.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 19.1/19.1 MB 44.5 MB/s eta 0:00:00 Requirement already satisfied: six>=1.12.0 in /usr/lib/python3/dist-packages (from cqlsh-expansion) (1.16.0) Collecting boto3 Downloading boto3-1.29.2-py3-none-any.whl (135 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 135.8/135.8 KB 17.2 MB/s eta 0:00:00 Collecting cassandra-sigv4>=4.0.2 Downloading cassandra_sigv4-4.0.2-py2.py3-none-any.whl (9.8 kB) Collecting botocore<1.33.0,>=1.32.2 Downloading botocore-1.32.2-py3-none-any.whl (11.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 60.9 MB/s eta 0:00:00 Collecting s3transfer<0.8.0,>=0.7.0 Downloading s3transfer-0.7.0-py3-none-any.whl (79 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.8/79.8 KB 13.1 MB/s eta 0:00:00 Collecting jmespath<2.0.0,>=0.7.1 Downloading jmespath-1.0.1-py3-none-any.whl (20 kB) Collecting geomet<0.3,>=0.1 Downloading geomet-0.2.1.post1-py3-none-any.whl (18 kB) Collecting python-dateutil<3.0.0,>=2.1 Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 33.1 MB/s eta 0:00:00 Requirement already satisfied: urllib3<2.1,>=1.25.4 in /usr/lib/python3/dist-packages (from botocore<1.33.0,>=1.32.2->boto3->cqlsh-expansion) (1.26.5) Requirement already satisfied: click in /usr/lib/python3/dist-packages (from geomet<0.3,>=0.1->cassandra-driver->cqlsh-expansion) (8.0.3) Installing collected packages: python-dateutil, jmespath, geomet, cassandra-driver, botocore, s3transfer, boto3, cassandra-sigv4, cqlsh-expansion WARNING: The script geomet is installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. WARNING: The scripts cqlsh, cqlsh-expansion and cqlsh-expansion.init are installed in '/home/ubuntu/.local/bin' which is not on PATH. Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location. Successfully installed boto3-1.29.2 botocore-1.32.2 cassandra-driver-3.28.0 cassandra-sigv4-4.0.2 cqlsh-expansion-0.9.6 geomet-0.2.1.post1 jmespath-1.0.1 python-dateutil-2.8.2 s3transfer-0.7.0インストールディレクトリが
PATHにない場合は、オペレーティングシステムの指示に従って追加する必要があります。以下は、Ubuntu Linux の場合の一例です。export PATH="$PATH:/home/ubuntu/.local/bin"パッケージがインストールされたことを確認するためには、次のコマンドを実行します。
cqlsh-expansion --version出力は次のようになります。
cqlsh 6.1.0cqlsh-expansionを設定するには、インストール後のスクリプトを実行して次の手順を自動的に完了させることができます。.cassandraディレクトリがなければ、ユーザーのホームディレクトリに作成します。事前設定済みの
cqlshrc設定ファイルを.cassandraディレクトリにコピーします。結合された証明書ファイルを
.cassandraディレクトリにコピーします。Amazon Keyspaces では、この証明書で、Transport Layer Security (TLS) との安全な接続を設定します。転送時の暗号化では、Amazon Keyspaces との間で送受信するときにデータを暗号化することによって、データ保護のレイヤーを追加します。証明書の詳細については、「」を参照してくださいTLS の cqlsh 接続を手動で設定する方法。
このスクリプトを最初に確認するため、
post_install.pyにある Github リポジトリからスクリプトにアクセスします。 スクリプトを使用するには、次のコマンドを実行します。
cqlsh-expansion.init注記
ポストインストールスクリプトによって作成されるディレクトリとファイルは、
pip uninstallでcqlsh-expansionをアンインストールしても削除されないため、手動で削除する必要があります。
cqlsh-expansion を使用した Amazon Keyspaces への接続
を設定し AWS リージョン 、ユーザー環境変数として追加します。
デフォルトリージョンを Unix ベースシステムの環境変数として追加するには、次のコマンドを実行します。この例では、 を使用します
us-east-1。export AWS_DEFAULT_REGION=us-east-1他のプラットフォーム用など、環境変数の設定方法の詳細については、「環境変数を設定する方法」を参照してください。
サービスエンドポイントを検索します。
リージョンに適したサービスエンドポイントを選択します。Amazon Keyspaces で使用可能なエンドポイントを確認するには、「Amazon Keyspaces のサービスエンドポイント」を参照してください。この例では、
cassandra.us-east-1.amazonaws.comエンドポイントを使用します。認証方法を設定します。
IAM アクセスキー (IAM ユーザー、ロール、フェデレーテッドアイデンティティ) を使用した接続が、セキュリティ強化のための推奨方法です。
IAM アクセスキーで続する前に、以下の手順を完了してください。
IAM ユーザーを作成するか、ベストプラクティスに従って IAM ユーザーが引き受けることができる IAM ロールを作成します。IAM アクセスキーの作成方法の詳細については、「Amazon Keyspaces の AWS 認証情報の作成と設定」を参照してください。
Amazon Keyspaces に少なくとも読み取り専用アクセス権限を与えるロール(または IAM ユーザー)を作成します。IAM ユーザーまたはロールが Amazon Keyspaces に接続するために必要な権限の詳細については、「Amazon Keyspaces テーブルへのアクセス」を参照してください。
次の例のように、IAM ユーザーのアクセスキーをユーザーの環境変数に追加します。
export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY他のプラットフォームなど、環境変数の設定方法の詳細については、「環境変数を設定する方法」を参照してください。
注記
Amazon EC2 インスタンスから接続する場合は、そのインスタンスから Amazon Keyspaces へのトラフィックを許可するアウトバウンドルールをセキュリティグループで設定する必要もあります。EC2 アウトバウンドルールの表示方法と編集方法の詳細については、「Amazon EC2 ユーザーガイド」の「セキュリティグループへのルールの追加」を参照してください。
-
cqlsh-expansionと SigV4 認証で Amazon Keyspaces に接続cqlsh-expansionを使用して Amazon Keyspaces に接続するには、次のコマンドを使用します。必ずサービスエンドポイントを、リージョンに適したエンドポイントに置き換えてください。cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 --ssl正常に接続されると次の例のような出力が表示されます。
Connected to Amazon Keyspaces at cassandra.us-east-1.amazonaws.com:9142 [cqlsh 6.1.0 | Cassandra 3.11.2 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh current consistency level is ONE. cqlsh>接続エラーが発生した場合は、「cqlsh を使用して Amazon Keyspaces に接続できない」でトラブルシューティング情報をご確認ください。
サービス固有の認証情報で Amazon Keyspaces に接続します。
Cassandra が認証に使用する従来のユーザー名とパスワードの組み合わせで接続するには、Amazon Keyspaces にプログラムによってアクセスするためのサービス固有の認証情報を作成する にあるように、まず Amazon Keyspaces 用のサービス固有の認証情報を作成する必要があります。また、Amazon Keyspaces にアクセスするための権限をそのユーザーに与える必要があります。詳細については、「Amazon Keyspaces テーブルへのアクセス」を参照してください。
ユーザー用にサービス固有の認証情報と権限を作成したら、
cqlshrcファイルを更新します。通常、このファイルはユーザーディレクトリパス~/.cassandra/にあります。cqlshrcファイル内の Cassandra[authentication]セクションに移動し、以下の例のように「;」文字を使用して[auth_provider]の下にある SigV4 モジュールとクラスをコメントアウトします。[auth_provider] ; module = cassandra_sigv4.auth ; classname = SigV4AuthProvidercqlshrcファイルを更新すると、次のコマンドで Amazon Keyspaces に接続できます。サービス固有の認証情報で Amazon Keyspaces に接続できます。cqlsh-expansion cassandra.us-east-1.amazonaws.com 9142 -umyUserName-pmyPassword--ssl
クリーンアップ
cqlsh-expansionパッケージを削除するには、pip uninstallコマンドを使用します。pip3 uninstall cqlsh-expansionpip3 uninstallコマンドでは、インストール後のスクリプトによって作成されたディレクトリと関連ファイルは削除されません。ポストインストールスクリプトによって作成されたフォルダとファイルを削除するには、.cassandraディレクトリを削除します。
TLS の cqlsh 接続を手動で設定する方法
Amazon Keyspaces では、Transport Layer Security (TLS) を使用した安全な接続しか許容されません。証明書を自動的にダウンロードし、事前設定されたcqlshrc設定ファイルをインストールする cqlsh-expansionユーティリティを使用できます。詳細については、このページの「cqlsh-expansion による Amazon Keyspaces までの接続」を参照してください。
証明書をダウンロードして接続を手動で設定する場合は、次の手順を実行します。
次のデジタル証明書をダウンロードし、ローカルまたはホームディレクトリにファイルを保存します。
AmazonRootCA1
AmazonRootCA2
AmazonRootCA3
AmazonRootCA4
Starfield クラス 2 ルート (オプション – 下位互換性用)
証明書をダウンロードするには、次のコマンドを使用できます。
curl -O https://www.amazontrust.com/repository/AmazonRootCA1.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA2.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA3.pem curl -O https://www.amazontrust.com/repository/AmazonRootCA4.pem curl -O https://certs.secureserver.net/repository/sf-class2-root.crt注記
Amazon Keyspaces は以前、Starfield Class 2 CA に固定された TLS 証明書を使用していました。 AWS は、Amazon Trust Services (Amazon Root CAs で発行された証明書 AWS リージョン にすべて移行しています。この移行中に、Amazon ルート CAs 1~4 と Starfield ルートの両方を信頼するようにクライアントを設定し、すべてのリージョンで互換性を確保します。
ダウンロードしたすべての証明書を、この例の
keyspaces-bundle.pemという名前の 1 つのpemファイルに結合します。そのためには、以下の コマンドを実行します。ファイルへのパスを書き留めます。これは後で必要になります。cat AmazonRootCA1.pem \ AmazonRootCA2.pem \ AmazonRootCA3.pem \ AmazonRootCA4.pem \ sf-class2-root.crt \ >keyspaces-bundle.pemCassandra ホームディレクトリにある
cqlshrc設定ファイル(${HOME}/.cassandra/cqlshrcなど)を開いて、次の行を追加します。[connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile =path_to_file/keyspaces-bundle.pem