翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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-expansion
Python パッケージをインストールするには、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.0
cqlsh-expansion
を設定するには、インストール後のスクリプトを実行して次の手順を自動的に完了させることができます。.cassandra
ディレクトリがなければ、ユーザーのホームディレクトリに作成します。事前設定済みの
cqlshrc
設定ファイルを.cassandra
ディレクトリにコピーします。Starfield デジタル証明書を
.cassandra
ディレクトリにコピーします。Amazon Keyspaces では、この証明書で、Transport Layer Security (TLS) との安全な接続を設定します。転送時の暗号化では、Amazon Keyspaces との間で送受信するときにデータを暗号化することによって、データ保護のレイヤーを追加します。
このスクリプトを最初に確認するため、
post_install.py
にある Github リポジトリからスクリプトにアクセスします。 スクリプトを使用するには、次のコマンドを実行します。
cqlsh-expansion.init
注記
ポストインストールスクリプトによって作成されるディレクトリとファイルは、
pip uninstall
でcqlsh-expansion
をアンインストールしても削除されないため、手動で削除する必要があります。
cqlsh-expansion
を使用した Amazon Keyspaces への接続
AWS リージョン を設定して、ユーザー環境変数として追加します。
デフォルトリージョンを Unix ベースシステムの環境変数として追加するには、次のコマンドを実行します。この例では、米国東部 (バージニア北部) を使用します
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 = SigV4AuthProvider
cqlshrc
ファイルを更新すると、次のコマンドで Amazon Keyspaces に接続できます。サービス固有の認証情報で Amazon Keyspaces に接続できます。cqlsh-expansion
--sslcassandra.us-east-1.amazonaws.com
9142 -umyUserName
-pmyPassword
クリーンアップ
cqlsh-expansion
パッケージを削除するには、pip uninstall
コマンドを使用します。pip3 uninstall cqlsh-expansion
pip3 uninstall
コマンドでは、インストール後のスクリプトによって作成されたディレクトリと関連ファイルは削除されません。ポストインストールスクリプトによって作成されたフォルダとファイルを削除するには、.cassandra
ディレクトリを削除します。
TLS の cqlsh
接続を手動で設定する方法
Amazon Keyspaces では、Transport Layer Security (TLS) を使用した安全な接続しか許容されません。cqlsh-expansion
ユーティリティを使用できます。これで、証明書を自動的にダウンロードし、事前設定済みの cqlshrc
設定ファイルをインストールします。詳細については、このページの「cqlsh-expansion による Amazon Keyspaces までの接続」を参照してください。
証明書をダウンロードして手動で接続を設定する場合は、以下の手順に従います。
次のコマンドを使用して Starfield デジタル証明書をダウンロードし、
sf-class2-root.crt
をローカルまたはホームディレクトリ内に保存します。curl https://certs.secureserver.net/repository/sf-class2-root.crt -O
注記
Amazon デジタル証明書を使用して Amazon Keyspaces に接続することもできます。クライアントが Amazon Keyspaces に正常に接続されている場合は、引き続き Amazon Keyspaces に接続できます。Starfield 証明書は、古い認定権限を使用しているクライアントに対して追加の下位互換性を提供するものです。
Cassandra ホームディレクトリにある
cqlshrc
設定ファイル(${HOME}/.cassandra/cqlshrc
など)を開いて、次の行を追加します。[connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile =
path_to_file
/sf-class2-root.crt