セキュリティ管理について
DataStax Enterpriseセキュリティの概要。
DataStax Enterpriseには、エンタープライズレベルのデータベース用の高度なデータ保護機能が搭載されています。
- ログイン・アカウントとパスワードを使用したCassandra内部のパスワード認証
- 外部LDAPサービス用のLDAP認証サポート
- Kerberos認証では、チケットを使用したセキュアな方法でノードが他のノードのIDを確認できるようにすることで、セキュリティ保護されていないネットワーク上でのノード間の通信が可能
- GRANT/REVOKEパラダイムに基づいた権限の構成とオブジェクト・パーミッションの管理
- クライアントからCassandraクラスターに送信されるデータのSSLを使用したSSLを使用したクライアントとノード間の暗号化
- ノード間のデータ用のSSLを使用したノード間の暗号化
- システム・メモリー内のmemtableからフラッシュされたデータをディスク上のSSTable(保存済みデータ)に透過的にエンコードし、未承認ユーザーが保存済みデータを読み取れないようにする透過的なデータ暗号化
- DSE SearchインデックスとSolrコミット・ログ暗号化
- DataStax Enterpriseでのデータ監査の有効化により、クラスター・アクティビティーの詳細な監査証跡を作成
SolrのTCP通信層では、SSLを使用したクライアントとノード間およびノード間の暗号化がサポートされていますが、Kerberosはサポートされていません。
DataStax Java Driver 2.0およびDataStax C# Driverは、DataStax Webサイトから入手可能で、Kerberosサポートおよびクライアント/サーバー通信用のSSLを有効にします。
ワークロードの種類別のデータ・セキュリティ
セキュリティ機能を構成するとして、以下の表は、トランザクションDSE Cassandra、DSE Analytics(Spark)、DSE Searchというワークロードの種類別にどのデータがセキュリティ保護されるかを示しています。
機能 | DataStax Enterpriseのセキュリティ | DSE Search(Solr使用) | DSE Analytics(Spark使用) | DSE Graph |
---|---|---|---|---|
内部認証/LDAP | あり | 一部あり [7] | あり [1] | 一部あり [7] |
オブジェクト・パーミッション管理 | あり | 一部あり [2] | 一部あり [2] | あり [10] |
クライアントとノード間の暗号化 | あり [3] | あり [4] | あり [5] | あり [3] |
Kerberos認証 | あり [6] | あり | あり [1] | あり [6] |
透過的なデータ暗号化 | あり | あり | なし | あり |
データ監査 | あり | 完全にあり | 一部あり [8] | あり [9] |
[1] パスワード認証は、内部認証とKerberos認証を行うために、SparkをCassandraに接続する場合に使用します。Sparkコンポーネントの相互認証には使用しません。Spark Web UIはセキュリティで保護されておらず、Kerberosを使用する場合は、ユーザー名、パスワード、デリゲーション・トークンを含むSpark構成を表示する可能性があります。
[2] Cassandraに格納されたオブジェクトへのアクセス・パーミッションがチェックされます。SolrキャッシュとインデックスはCassandraにより管理されないため、チェックされません。ただし、Solrデータを格納するテーブルでパーミッション・チェックを行うように設定することはできます。
[3] ノード間ゴシップ・プロトコルは、SSLを使用して保護されています。
[4] DSE SearchデータへのHTTPアクセスは、SSLを使用して保護されています。SSLを使用したノード間の暗号化は、内部Solr通信を保護します。
[5] SSLクライアントとノード間の暗号化は、Spark ExecutorとCassandraの接続のみに使用します。
[6] ノード間ゴシップ・プロトコルは、Kerberosを使用して認証されていません。SSLを使用したノード間の暗号化を使用できます。
[7] CQLを使用した検索は、内部認証/LDAPではサポートされていますが、HTTP経由ではサポートされていません。
[8] DSE Sparkデータ監査はCassandraアクセス・レベルで行われるため、Cassandraデータへのアクセス要求が監査されます。SSLを使用したノード間の暗号化は、ノード間ゴシップ・プロトコル経由の通信を保護します。
[9] 制限あり。Gremlinクエリーは、Cassandraのようにクエリーの種類が区別されないため。
[10] パーミッションは、CQLを使用して個々のパーミッションを使用して頂点ラベルごとに強制され、テーブル・レベルでCQLを通じて登録されます。
KerberosとSSLの同時使用
KerberosライブラリとSSLライブラリには、認証、暗号化、およびインテグリティの保護が組み込まれています。
- Kerberos – Kerberos認証を有効にすると、インテグリティの保護も有効になります。ただし、インテグリティの保護は暗号化なしでも有効にできます。
- SSL – SSLを使用する場合、認証、インテグリティの保護、および暗号化はすべて有効または無効になります。
- KerberosおよびSSL - Kerberos認証とSSLを一緒に有効にすることができます。ただし、この処理を行うと、Kerberos認証とSSL経由の証明書という2つの異なるスキームによって認証が実行されるため、認証の重複が発生します。DataStaxでは、いずれかを選択し、暗号化と認証の両方に使用することを推奨します。