本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
用cqlsh
於連接到 Amazon Keyspaces
要使用連接到 Amazon Keyspacescqlsh
,您可以使用cqlsh-expansion
. 這是一個包含常見的 Apache 卡桑德拉工具一樣,cqlsh
並預先配置為 Amazon Keyspaces 助手,同時保持與 Apache 卡桑德拉完全兼容的工具包。該cqlsh-expansion
集成了 Sigv4 身份驗證插件,並允許您使用IAM訪問密鑰而不是用戶名和密碼進行連接。您只需要安裝cqlsh
腳本來建立連接,而不是完整的 Apache 卡桑德拉分佈,因為 Amazon Keyspaces 是無服務器的。此輕量型安裝套件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
告訴使pip
用 Python 用戶安裝目錄為您的平台。在基於 Unix 的系統上,這應該是~/.local/
目錄。你需要 Python 3 來安裝
cqlsh-expansion
,找出你的 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
目錄中。將星空數位憑證複製到
.cassandra
目錄中。Amazon Keyspaces 使用此憑證來設定與傳輸層安全性 (TLS) 的安全連線。傳輸中的加密功能會在資料往返 Amazon Keyspaces 時加密,藉此提供額外的資料保護層。
要首先查看腳本,您可以在 Github 存儲庫中訪問它
post_install.py
。 要使用該腳本,您可以運行以下命令。
cqlsh-expansion.init
注意
當您解除安裝
cqlsh-expansion
使用時,不會移除安裝後指令碼所建立的目錄和檔案pip uninstall
,而且必須手動刪除。
使用連接到 Amazon Keyspaces cqlsh-expansion
配置您的 AWS 區域 並將其添加為用戶環境變量。
若要將預設 Region 新增為 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存取金鑰的詳細資訊,請參閱〈〉建立和設定 AWS Amazon Keyspaces 的憑據。
建立一個IAM政策,以授予角色 (或IAM使用者) 至少對 Amazon 金 Keyspaces 的唯讀存取權限。如需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 身份驗證 Connect 到 Amazon Keyspaces。要使用連接到 Amazon Keyspaces
cqlsh-expansion
,您可以使用以下命令。確保將服務端點替換為您區域的正確端點。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取得疑難排解資訊。
使用服務特定登入資料 Connect 到 Amazon Keyspaces。
要與 Cassandra 用於身份驗證的傳統用戶名和密碼組合連接,您必須首先為 Amazon 密 Keyspaces 創建特定服務的憑據,如中所述。建立服務特定登入資料,以程式設計方式存取 Amazon Keyspaces您還必須授予該使用者存取 Amazon Keyspaces 的權限,如需詳細資訊,請參閱存取 Amazon Keyspaces 資料表。
為使用者建立服務特定認證和權限之後,您必須更新
cqlshrc
檔案,通常位於使用者目錄路徑~/.cassandra/
中。在該cqlshrc
文件中,轉到卡桑德拉[authentication]
部分,並註釋掉[auth_provider]
使用下的 SIGv4 模塊和類「;」字符,如下面的例子。[auth_provider] ; module = cassandra_sigv4.auth ; classname = SigV4AuthProvider
更新
cqlshrc
檔案後,您可以使用下列命令使用服務特定登入資料連線到 Amazon Keyspaces。cqlsh-expansion
--sslcassandra.us-east-1.amazonaws.com
9142 -umyUserName
-pmyPassword
清除
若要移除
cqlsh-expansion
套件,您可以使用pip uninstall
指令。pip3 uninstall cqlsh-expansion
此命
pip3 uninstall
令不會移除安裝後指令碼所建立的目錄和相關檔案。若要移除安裝後指令碼所建立的資料夾和檔案,您可以刪除目.cassandra
錄。
如何手動設定cqlsh
連線 TLS
Amazon Keyspaces 僅接受使用傳輸層安全性 (TLS) 的安全連線。您可以使用自動為您下載憑證並安裝預先設定的cqlshrc
組態檔的cqlsh-expansion
公用程式。如需詳細資訊,請參閱本頁使用連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,則可以繼續這麼做。Starfield 憑證為使用舊版憑證授權單位的用戶端提供額外的向後相容性。
例如,在卡桑德拉主目錄中打開
cqlshrc
配置文件,${HOME}/.cassandra/cqlshrc
並添加以下幾行。[connection] port = 9142 factory = cqlshlib.ssl.ssl_transport_factory [ssl] validate = true certfile =
path_to_file
/sf-class2-root.crt