DataStax Enterpriseのセキュリティ・チェックリスト

DataStax Enterpriseデータベースを保護するために必要なセキュリティ対策のリスト。

DSE Advanced Security(DSE拡張セキュリティ)は、意図的な攻撃やユーザー・エラーによる潜在的な危険に対してDataStax Enterprise(DSE)データベースを強化する機能スイートです。これには、認証と権限管理、転送中のデータと保存されたデータの暗号化、およびデータ監査に対応した高度なメカニズムが含まれます。また、DataStax Enterpriseは、さまざまなパートナー・セキュリティ・ソリューションと互換性があり、業界固有の要件やその他の高度な要件に対応しています。

DSE Advanced Security(DSE拡張セキュリティ)は、社内標準に従ってActive Directory(AD)、Lightweight Directory Access Protocol(LDAP)、Kerberos、Public Key Infrastructure(PKI)、Key Management Interoperability Protocol(KMIP)などの既存の技術と集約的に統合されます。

DataStax Enterpriseには、エンタープライズレベルのデータベース用の高度なデータ保護機能が搭載されています。

機能 データベース Search Analytics Graph
認証外部LDAPまたは内部) あり あり あり 一部あり
Kerberos認証 あり あり あり あり
権限管理(RBAC) あり 一部あり 一部あり あり
行レベルのパーミッション(RLAC) あり なし あり なし
クライアントとノード間の暗号化 あり あり あり あり
ノード間の暗号化 あり あり あり あり
透過的なデータ暗号化 あり あり なし あり
データ監査 あり あり 一部あり あり
注: 一部のDataStaxドライバーによって、クライアント/サーバー通信でKerberosサポートおよびSSLが利用可能になります。ドライバーはDataStax Academyからダウンロードしてください。

DSEデータベースのセキュリティ・チェックリスト

DataStax Enterpriseセキュリティ機能を使用して、トランザクション・ノードのセキュリティを保護します。

DataStax Enterpriseデータベース・ノードのセキュリティ:

  • 認証
    既知のユーザーのみにデータベースへの接続を制限します。DSEは、以下の認証方法を使用したユーザーの検証をサポートしています。
    • 内部:内部データベースに格納されている認証情報
    • LDAP:Active Directoryなどの外部LDAPサービス
    • Kerberos:外部のKey Distribution Server(KDS)に対して確認されるMIT Kerberosチケット

    DSE Unified Authentication(DSE統合認証)の構成」を参照してください。

    制約事項: DSE Unified Authentication(DSE統合認証)は、データベース接続でのみサポートされています。ゴシップなどのノード間通信を認証するには、ノード間のSSL証明書を使用します。
  • 権限付与
    ロール・ベース・アクセス制御(RBAC)を使用して、認証ユーザーのデータベース・リソースへのアクセスを制限します。DSEは、以下の方法を使用したロール管理をサポートしています。
    • 内部データベース:ユーザー名またはプリンシパル名とロールの1-1マッピング
    • LDAP:1対多のマッピング。LDAPにおいて、ユーザーがメンバーであるグループに一致するすべてのロールがユーザーに割り当てられます。

    DataStaxは、認証が有効な場合のRBACのみをサポートしています。「ログインとユーザーのセットアップ」および「パーミッションの割り当て」を参照してください。

  • アクティビティーの監査

    データベース・リソースのアクティビティーをログに記録して、監視します。「データベース監査のセットアップ」を参照してください。

  • 透過的なデータ暗号化(TDE)
    保存されているデータを保護します。DSEは機密データの暗号化において以下のデータを暗号化します。
    • テーブル全体(常にプレーン・テキストで格納されるパーティション・キーを除く)
    • システム・テーブルなど、データが含まれているSSTable(system.batchlogやsystem.paxosなど)
    • 検索インデックス
    • ファイルベースのヒント(DSE 5.0以降)
    • コミット・ログ
    • dse.yamlおよびcassandra.yamlの機密性の高いプロパティ

    外部のKMIPまたはローカル・サービスを使用してデータを暗号化します。「透過的なデータ暗号化について」を参照してください。

  • SSLを使用した転送中のデータの暗号化

    クライアントとデータベース間およびクラスター内のノード間の通信のセキュリティを保護します。「SSLの構成」を参照してください。

DSE Searchのセキュリティ・チェックリスト

DSE Searchのセキュリティ保護

server.xml

Tomcat server.xmlファイルのデフォルトの場所は、インストール・タイプによって異なります。
パッケージ・インストール /etc/dse/tomcat/conf/server.xml
tarボール・インストール installation_location/resources/tomcat/conf/server.xml

DataStax Enterpriseでは、セキュアなエンタープライズ検索をサポートしています。DataStax Enterpriseのセキュリティ・チェックリストには、DSE Searchやその他の統合コンポーネントのセキュリティ機能についてまとめてあります。

  • 認証
    DataStaxでは、Solr Admin UIを使用する場合とSolrJ APIを使用してcURLを含むコマンドを実行する場合はKerberos認証の使用を推奨しています。
    • DSE SearchクライアントをKerberos認証で認証するには、Simple and Protected GSSAPI Negotiation Mechanism(SPNEGO)を使用します。
    • Kerberos認証を使ってDSE Searchクラスターに対してSolrJ APIを使用するには、クライアント・アプリケーション側が、solrj-auth-README.mdファイルの記述に従って、SolrJ-AuthライブラリーとDataStax Enterprise SolrJコンポーネントを使用する必要があります。
    • Solr Admin UIからコアへのアクセス(廃止予定)を定義します。
    • DSE Unified Authentication(DSE統合認証)の有効化」に従い、CQLシェルを使用してインデックス管理タスクを実行します。
  • 権限付与

    検索インデックスに関するパーミッションを指定するには、認証済みユーザーにロールベース・アクセス制御(RBAC)を使用します。「ログインとユーザの設定」、「検索インデックスへのアクセスの制御」、および「Solr Admin UIから検索インデックスへのアクセス(廃止予定)」を参照してください。行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE SearchまたはDSE Graphでの使用はサポートされていません。

  • アクティビティーの監査

    データベース・リソースのアクティビティーをログに記録して、監視します。「データベース監査のセットアップ」を参照してください。

  • 透過的なデータ暗号化(TDE)

    保存されているデータを保護します。DSEでは、検索インデックスの機密データにKMIPまたはローカル暗号化を利用できます。「検索インデックスの暗号化」を参照してください。

  • SSLを使用した転送中のデータの暗号化

    DSE Searchノードでクライアントとノード間の暗号化を使用して、HTTPクライアントとCQLシェル間でSSLを使用する接続を暗号化します。「SSLの構成」を参照してください。

    注: SSLを使用する特定のセキュリティ要件を満たすために、DSE Searchへのクライアント接続のIPアドレスを変更できます。たとえば、サブネットを分離するなどの目的で変更します。
注: DSE Searchノードのセキュリティ構成は、DataStax Enterprise構成によって管理されます。TomcatとSolrでは、他に必要な構成はありません。高度なカスタム設定の場合のみ、web.xmlファイルまたはserver.xmlファイルを変更します。
制約事項: DSE Searchセキュリティ機能には、以下の制限事項があります。
  • TDE:キャッシュされたデータは暗号化されません。暗号化はDSEデータベース側でのみ実行され、その間はパフォーマンスがわずかに低下します。
  • 権限付与:パーミッションは、検索インデックス管理やデータベース内に格納されているデータへのアクセスなど、CQL要求に対してのみ適用されます。パーミッションは、キャッシュやインデックス構成などの検索ファイル・リソースには適用されません。
  • 行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE Searchでの使用はサポートされていません。
  • DSE SearchデータへのHTTPアクセスは、SSLを使用して保護されています(クライアントとノード間の暗号化)。SSLを使用したノード間の暗号化は、内部Solr通信を保護します。

DSE Analyticsのセキュリティ・チェックリスト

DSE Analyticsのセキュリティ保護。

DataStaxでは、以下のセキュリティ・プラクティスに従うことを推奨しています。
  • SSLを使用したクライアントとノード間の暗号化を有効にする。
  • ノード間通信用のSparkポートは、外部トラフィックにさらさずに、セキュリティで保護されたネットワーク内で実行する必要があります。
以下のように、DataStax Enterprise Analyticsノードのセキュリティを保護します。
  • 認証
    • ノード間およびアプリケーションごとにシークレットは異なります。「Sparkノードの構成」を参照してください。
    • 各アプリケーション・エグゼキューターのユーザー(実行ユーザー)と関連データの分離のネイティブ認証。「Sparkノードの構成」を参照してください。
    • Spark UIの内部認証またはLDAP認証については、「WebインターフェイスでのSparkの監視」を参照してください。
    • Sparkジョブのユーザー認証。DataStax Enterpriseは、Sparkの内部認証、LDAP認証、およびKerberos認証をサポートしています。
      • 内部およびLDAP:DataStax Enterprise Sparkアプリケーションおよびツールについては、Spark認証コマンドを使用して認証情報を提供します。「内部認証を使用したspark-submitジョブの実行」を参照してください。
      • Kerberos:Kerberosスキームの定義は、Sparkコンポーネントの相互認証に適用されるのではなく、SparkをDSEデータベースに接続するときに適用されます。Spark Web UIは保護されていないため、コマンドラインでエグゼキューターに渡したパラメーターの一部が表示される場合があります。ただし、DSEユーザー名、パスワード、およびデリゲーション・トークンは表示されません。デフォルトでは、Kerberosが唯一の認証スキームである場合はSpark UIにアクセスできないため、UI認証を無効にする必要があります。
  • 権限付与

    Sparkジョブ用にデータベースから取得されたデータおよびSparkアプリケーション・サブミットのアクセス制御は、ロールベース・アクセス制御(RBAC)によって保護されます。要求を実行するユーザーは、ロールの割り当てによってデータにアクセスするためのパーミッションが付与されている必要があります。

    注: Spark UIマスターおよびワーカーには権限管理を使用できません。
  • 監査
  • 透過的なデータ暗号化(TDE)

    TDEはデータベースに格納されているデータにのみ適用されます。DSEは、Sparkに使用され、DSEFSまたはローカル一時ディレクトリーに格納されているデータの暗号化をサポートしていません。

  • SSL、TLS、またはSASLを使用した転送中のデータの暗号化

    SSL/TLS:クライアントとノード間の暗号化は、クライアントとコーディネーター・ノードの間にセキュアなチャネルを確立することで、SparkエグゼキューターとDSEデータベース間の接続で転送中のデータを保護します。SSLでは、共有認証サービスを設定する必要がありません。サーバー証明書の作成クライアントとノード間のSSLの有効化が必要です。

    SASL:Sparkのノード間およびクライアントからクラスターへの通信は、相互認証および暗号化のためのSASL Digest-MD5メカニズムを使用して暗号化できます。SASL暗号化は、Sparkドライバー、Sparkエグゼキューター、および外部シャッフル・サービス(ExternalShuffleService)の間の通信にも使用できます。詳細については、「Spark接続の保護」を参照してください。

DSE Graphのセキュリティ・チェックリスト

DataStax Enterpriseのセキュリティ機能を使用して、DSE Graphデータ全体、または部分的にセキュリティを保護します。

cassandra.yaml

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール installation_location/resources/cassandra/conf/cassandra.yaml
DataStax Enterpriseは、グラフとデータベース間のセキュアなエンタープライズ操作をサポートしています。 DataStax Enterpriseのセキュリティ機能を使うことで、DSE Graphデータのセキュリティを全体、または部分的に保護できます。
  • 認証

    トランザクション用データベースでDSE Unified Authentication(DSE統合認証)を有効にして、DSE Graphデータへのアクセスを認証ユーザーにのみ許可し、DSE Graphのremote.yamlで認証情報を構成します。「Kerberosを使用してDSE GraphとGremlin Consoleを使用する」を参照してください。

  • 権限付与
    DSE Graphのキースペースとテーブルのロールを定義して、グラフ・データへのアクセスを制限します。「Graphキースペースへのアクセスの制御」を参照してください。
    注: RBACはキャッシュされたデータには適用されません。行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE SearchまたはDSE Graphでの使用はサポートされていません。

    DseGraphRpcオブジェクトの実行パーミッションを定義したロールに付与します。

  • アクティビティーの監査

    DSE Graph関連データベース・リソースのアクティビティーをログに記録して、監視します。「データベース監査のセットアップ」を参照してください。

  • 透過的なデータ暗号化

    DSE Graphインデックス・テーブルのデータを暗号化します。「透過的なデータ暗号化」を参照してください。

    注: キャッシュされたデータは暗号化されません。暗号化は、パフォーマンスにわずかに影響する場合があります。
  • SSLを使用した暗号化データベース接続

    DSE Graphの転送中のデータを暗号化します。DSE Graphノードでクライアントとノード間のSSL暗号化を有効にするには、client_encryption_optionscassandra.yaml ファイルで設定します。「クライアントとノード間の暗号化」を参照してください。

  • Graphサンドボックス:

    Graphサンドボックスは、デフォルトで有効になっていて、Javaパッケージ、スーパークラス、タイプの実行を許可または禁止するよう構成できます。「Graphサンドボックス」を参照してください。

制約事項:
DSEでは、Graphの権限管理に以下の制限事項があります。
  • GremlinクエリーがCQLなどのクエリー・タイプ間で区別されないという制限があります。
  • CQLを使用する個々のパーミッションを使用して、パーミッションは頂点ラベル単位で適用され、CQLを使用してテーブル・レベルで登録されます。