クライアントとクラスター間の接続のセキュリティ保護

クライアントとノード間の暗号化は、クライアント・コンピューターからデータベース・クラスターに転送中のデータをSSLを使用して保護し、クライアントとコーディネーター・ノードの間にセキュアなチャネルを確立します。

クライアントとノード間の暗号化は、クライアント・コンピューターからデータベース・クラスターに転送中のデータをSSL(Secure Sockets Layer)を使用して保護し、クライアントとコーディネーター・ノードの間にセキュアなチャネルを確立します。Kerberosとは異なり、共有認証サービスを設定する必要がありません。

注: DSE Searchを使用する場合は、SSLを有効にするとDSE Searchのweb.xmlファイルが自動的に有効になり、認証/権限管理フィルターを使用してTomcatのSSLコネクターが構成されます。web.xmlファイルまたはserver.xmlファイルを変更する必要はありません。

TomcatSolrRunnerがserver.xmlでコネクターを見つけられない場合は、デフォルトのコネクターが作成されます。デフォルトのコネクターは、cassandra.yamlrpc_addressにバインドされます。

始める前に

手順

暗号化を有効にするには、ノードごとに以下の手順を実行します。
注: DSE SearchノードとSparkノードには、cassandra.yaml内にトラストストア・エントリーが必要です。
  1. 実稼働クラスター:cassandra.yamlファイルのclient_encryption_optionsセクションで、以下の手順を実行します。
    • enabledをtrueに設定します。
    • .keystoreファイルと.truststoreファイルへのパスを設定します。
    • キーストアとトラストストアを生成するときに使用したパスワードを入力します。
    • クライアントの証明書認証を有効にするには、require_client_authをtrueに設定します。
    • SSL実稼働環境証明書を使用します。
    client_encryption_options:
        enabled: true
        keystore: resources/dse/conf/.keystore  ## Path to your .keystore file
        keystore_password: keystore_password  ## Password that you used to generate the keystore
        require_client_auth: true
        # Set truststore and truststore_password when require_client_auth: true
        truststore: resources/dse/conf/.truststore  ## Path to your .truststore
        truststore_password: truststore_password  ## Password that you used to generate the truststore
        protocol: ssl
        algorithm: SunX509
        store_type: JKS
        cipher_suites: [TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA]
    SSLでKerberosを使用する方法については、「CQLシェル(cqlsh)でSSLを使用する」を参照してください。トラストストアとキーストアのパスワードをKMIPで暗号化するには、「テーブル・データの暗号化」を参照してください。
  2. 開発クラスター:cassandra.yamlファイルのclient_encryption_optionsセクションで、以下の手順を実行します。
    • enabledをtrueに設定します。
    • キーストアとトラストストアを生成するときに使用したパスワードを入力します。
    • .keystoreファイルと.truststoreファイルへのパスを設定します。
    • 双方向の証明書認証が必要な場合は、require_client_authをtrueに設定します。双方向の証明書認証を有効にすると、ツールはリモート・ノードに接続できます。
    • SSL証明書の設定」の手順を完了します。

    SSL暗号化を使用してローカル・ノードでcqlshを実行するためのローカル・アクセスでは、require_client_authfalseに設定できます。

    client_encryption_options:
        enabled: true
        # If enabled and optional is set to true encrypted and unencrypted connections are handled.
        optional: false
        keystore: conf/keystore.node0 
        keystore_password: cassandra
        
        require_client_auth: true
        # Set trustore and truststore_password if require_client_auth is true
        truststore: conf/truststore.node0
        truststore_password: cassandra
        protocol: TLS
        algorithm: SunX509
        store_type: JKS
        cipher_suites: [TLS_RSA_WITH_AES_256_CBC_SHA]
  3. client_encryption_optionsdse.yamlファイルで設定されている場合は、これらを削除します。
  4. JCE Unlimited Strength Jurisdiction Policyを使用していない場合は、プリンシパルを付与したチケットでAES-256が使用されないことを確認します。
    プリンシパルを付与したチケットでAES-256が使用される場合は、以下のような警告がログに記録されることがあります。
    WARN [StreamConnectionEstablisher:18] 2015-06-22 14:12:18,589 SSLFactory.java (line 162) Filtering out 
    TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA as it isnt supported by the socket
  5. DataStax Enterpriseを再起動します。
    Tomcat server.xmlファイルのデフォルトの場所は、インストール・タイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/tomcat/conf/server.xml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/tomcat/conf/server.xml
    dse.yamlファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/dse.yaml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/dse/conf/dse.yaml
    cassandra.yamlファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/cassandra/cassandra.yaml

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/cassandra/conf/cassandra.yaml