本主題說明如何為 Cassandra 節點之間,以及用戶端與 Cassandra 節點之間的通訊設定驗證機制。
如何在執行階段平面中為 Cassandra 設定 TLS
Cassandra 可在用戶端電腦與資料庫叢集之間,以及叢集內的節點之間提供安全的通訊。啟用加密功能可確保傳輸中的資料不會遭到入侵,並安全傳輸。在 Apigee hybrid 中,系統預設會為 Cassandra 節點之間,以及用戶端與 Cassandra 節點之間的所有通訊啟用 TLS。
您可以使用使用者名稱/密碼組合設定驗證機制,方法是直接將其放入覆寫檔案,或新增至 Kubernetes 密鑰,如本主題所述。
關於 Cassandra 使用者驗證
混合平台會使用 Cassandra 做為執行階段平面資料的後端資料儲存庫。根據預設,任何與 Cassandra 的用戶端通訊都需要驗證。用戶端與 Cassandra 通訊時會使用三個使用者。系統會為這些使用者提供預設密碼,您不必變更。
這些使用者 (包括預設使用者) 的說明如下:
- DML 使用者:用於用戶端通訊,可讀取及寫入 Cassandra 的資料 (KMS、KVM、快取和配額)。
- DDL 使用者:MART 用於任何資料定義工作,例如建立、更新和刪除鍵空間。
- 管理員使用者:用於在 Cassandra 叢集中執行的任何管理活動。
- 預設 Cassandra 使用者:啟用驗證功能並將使用者名稱設為
cassandra
時,Cassandra 會建立預設使用者。
在覆寫檔案中變更預設密碼
Apigee Hybrid 會為 Cassandra 使用者提供預設密碼。如要變更預設使用者密碼,請在 overrides.yaml
檔案中執行這項操作。新增下列設定,視需要變更預設密碼 (「iloveapis123」),然後將變更套用至叢集。
cassandra: auth: default: ## the password for the new default user (static username: cassandra) password: "iloveapis123" admin: ## the password for the admin user (static username: admin_user) password: "iloveapis123" ddl: ## the password for the DDL User (static username: ddl_user) password: "iloveapis123" dml: ## the password for the DML User (static username: dml_user) password: "iloveapis123"
注意事項:
- 不支援憑證授權單位 (CA) 輪替。
- 系統不支援使用密碼產生的伺服器憑證。
在 Kubernetes 密鑰中設定使用者名稱和密碼
本節說明如何設定 Cassandra 使用 Kubernetes 密鑰進行驗證。
建立密鑰
請使用下列範本設定 Kubernetes 密鑰。將範本儲存至檔案,然後編輯必要的屬性。請注意,如果您使用這個選項,必須為每個密碼提供使用者名稱。
apiVersion: v1 kind: Secret metadata: name: $SECRET_NAME namespace: $APIGEE_NAMESPACE type: Opaque data: default.password: $PASSWORD #base64-encoded string admin.user: $USERNAME #base64-encoded string admin.password: $PASSWORD #base64-encoded string dml.user: $USERNAME #base64-encoded string dml.password: $PASSWORD #base64-encoded string ddl.user: $USERNAME #base64-encoded string ddl.password: $PASSWORD #base64-encoded string
其中 $SECRET_NAME 是您為密鑰選擇的名稱,$APIGEE_NAMESPACE 是部署 Apigee Pod 的命名空間 (預設為 apigee
),而 $USERNAME 和 $PASSWORD 則是每位使用者的使用者名稱和密碼。請注意,使用者名稱和密碼必須採用 Base64 編碼。
將密鑰套用至叢集。例如:
kubectl apply -f $SECRET_FILE
將密鑰新增至覆寫檔案:
cassandra: auth: secret: $SECRET_NAME
將更新後的 Cassandra 覆寫值套用至叢集:
$APIGEECTL_HOME/apigeectl apply -f overrides/overrides.yaml -c cassandra
查看 Cassandra 記錄
請在 Cassandra 啟動後立即檢查記錄。下方記錄顯示 Cassandra 用戶端連線已加密。
kubectl logs apigee-cassandra-2 -n apigee -f INFO 00:44:36 Starting listening for CQL clients on /10.0.2.12:9042 (encrypted)... INFO 00:44:36 Binding thrift service to /10.0.2.12:9160 INFO 00:44:36 enabling encrypted thrift connections between client and server INFO 00:44:36 Listening for thrift clients...