Cassandra 用の TLS の構成

ランタイム プレーンの Cassandra 用に TLS を構成する方法

Cassandra は、クライアント マシンとデータベース クラスタの間、およびクラスタ内のノード間で安全な通信を提供します。暗号化を有効にすると、転送中のデータが侵害されず、転送のセキュリティが確保されます。Apigee Hybrid では、Cassandra ノード間、およびクライアントと Cassandra ノードの間の通信に対して TLS がデフォルトで有効になっています。

Cassandra ユーザー認証について

Hybrid プラットフォームでは、Cassandra がランタイム プレーン データのバックエンド データストアとして使用されます。デフォルトでは、クライアントから Cassandra への通信には認証が必要です。クライアントで Cassandra との通信に使用されるユーザーは 3 種類あります。これらのユーザーにはデフォルト パスワードが提供されており、そのパスワードを変更する必要はありません。

これらのユーザーとデフォルト ユーザーは次のとおりです。

  • DML ユーザー: クライアントによる Cassandra からのデータの読み取りと Cassandra へのデータの書き込みに使用されます(KMS、KVM、キャッシュ、割り当て)。
  • DDL ユーザー: キースペースの作成、更新、削除などのデータ定義タスクのために MART によって使用されます。
  • 管理ユーザー: 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 クラスタの間でクラスタを切り替える

このセクションの手順は、マルチリージョン デプロイメントで説明されているマルチリージョン クラスタを使用している場合に適用されます。

  1. 使用可能な Kubernetes コンテキストを取得します。
    kubectl config get-contexts
    
        CURRENT   NAME                                         CLUSTER                                      AUTHINFO                                     NAMESPACE
                  gke_my_username_us-central1_jai-perf-test    gke_my_username_us-central1_jai-perf-test    gke_my_username_us-central1_jai-perf-test
                  gke_my_username_us-central1_cluster01        gke_my_username_us-central1_cluster01        gke_my_username_us-central1_cluster01
        *         gke_my_username_us-central1_k8s-us-central1  gke_my_username_us-central1_k8s-us-central1  gke_my_username_us-central1_k8s-us-central1
  2. Kubernetes コンテキストを切り替えます。
        kubectl config use-context context name
        

ポッドの詳細を表示して作成が成功したかどうかを確認する

Cassandra ポッドが正常に起動したかどうかを確認するには、次のコマンドを使用します。

kubectl describe pods apigee-cassandra-2 -n apigee

     Normal   Created                 31s                kubelet, gke-k8s-us-west1-default-pool-e9daaab3-tjmz  Created container
     Normal   Started                 31s                kubelet, gke-k8s-us-west1-default-pool-e9daaab3-tjmz  Started container

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...
    

Cassandra クラスタのステータスを確認する

次のコマンドは、2 つのデータセンターでクラスタが正常にセットアップされているかどうかを確認するのに役立ちます。このコマンドは、2 つのリージョンの nodetool ステータスをチェックします。

    kubectl exec apigee-cassandra-0  -- nodetool status

    Datacenter: us-central1
    =======================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  10.12.1.45  112.09 KiB  256          100.0%            3c98c816-3f4d-48f0-9717-03d0c998637f  ra-1
    UN  10.12.4.36  95.27 KiB  256          100.0%            0a36383d-1d9e-41e2-924c-7b62be12d6cc  ra-1
    UN  10.12.5.22  88.7 KiB   256          100.0%            3561f4fa-af3d-4ea4-93b2-79ac7e938201  ra-1
    Datacenter: us-west1
    ====================
    Status=Up/Down
    |/ State=Normal/Leaving/Joining/Moving
    --  Address     Load       Tokens       Owns (effective)  Host ID                               Rack
    UN  10.0.4.33   78.69 KiB  256          0.0%              a200217d-260b-45cd-b83c-182b27ff4c99  ra-1
    UN  10.0.0.21   78.68 KiB  256          0.0%              9f3364b9-a7a1-409c-9356-b7d1d312e52b  ra-1
    UN  10.0.1.26   15.46 KiB  256          0.0%              1666df0f-702e-4c5b-8b6e-086d0f2e47fa  ra-1