DSE Graphのセキュリティ保護

DSE Graphデータは、DataStax Enterpriseのセキュリティ機能を使うことで、完全または部分的にセキュリティ保護されます。

DataStax Enterpriseは、セキュアな企業向けグラフ・データベース操作をサポートしています。DSE Graphやその他の統合コンポーネントのセキュリティ機能については、セキュリティ一覧にまとめてあります。DSE Graphデータは、以下のDataStax Enterpriseのセキュリティ機能を使うことで、完全または部分的にセキュリティ保護されます。
  • オブジェクト・パーミッション管理

    グラフ・キースペース(キャッシュ・データを除く)へのアクセスをアクセス・パーミッションを付与されたロールに限定します。パーミッション管理では、グラフ・データの格納に使用されるテーブルのセキュリティも保護されます。

  • 透過的なデータ暗号化

    Cassandraテーブルに保存済みのデータは暗号化できます。これには、Cassandraテーブルを使用して作成されたDSE Graphインデックス暗号化も含まれます。キャッシュ・データは暗号化されません。暗号化はCassandra側で実行され、その間はパフォーマンスがわずかに低下します。

  • クライアントとノード間の暗号化
    グラフ・データへのアクセスはSSLを使用して暗号化でき、DSE Graphノードではクライアントとノード間暗号化が使用できます。
    • DSE Graphノードでクライアントとノード間のSSL暗号化を有効にするには、cassandra.yamlファイル内のclient_encryption_optionsを設定します。
    • すべての暗号化アルゴリズムがサポートされるように、JCEをインストールします。

      cassandra.yaml内のserver_encryption_optionsのデフォルト・セットの一部の暗号化スイートは、Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policyファイルにのみ含まれています。すべての暗号化アルゴリズムがサポートされるように、JCE Unlimited Strength Jurisdiction Policyファイルをインストールしてください。

  • 実稼働環境のDSE Graphには、Kerberos認証を使用します。

    Simple and Protected GSSAPI Negotiation Mechanism(SPNEGO)を使用して、DSE GraphユーザーをKerberos認証で認証できます。Kerberos認証とSSL暗号化をGremlin Consoleとともに使用するには、remote.yamlに以下を追加する必要があります。
    hosts:[hostname-because-it's-kerberos]
    username:null
    password:null
    jaasEntry:DseClient 
    # protocol is the the same as the service_principal set in dse.yaml
    protocol:your_dse_principal 
    connectionPool:{enableSsl:true}
    パスワードはnullに設定でき、この場合、remote.yamlで無視されます。

Cassandraパスワード認証またはDataStax Enterprise LDAP認証

ベースとなるストレージはCassandraなので、DSE Graph認証はDSE認証により行われます。CQLとcqlshを使用してパーミッションを付与します。グラフへのパーミッションを付与するには、3つのDSE Graphキースペースにロールを作成した後に、cqlshを使用して以下のコマンドを実行します。
  • graphname (キースペースである、作成されたグラフの名前)
  • graphname_pvt (分割された頂点テーブルを収容しているキースペース)
  • graphname_system (保存された共有情報のキースペース)
GRANT <permission type> ON KEYSPACE <graphname> TO <rolename>;
GRANT <permission type> ON KEYSPACE <graphname_pvt> TO <rolename>;
GRANT <permission type> ON KEYSPACE <graphname_system> TO <rolename>;
ロールのパーミッションがグラフ操作のアクセス権に与える影響は、以下の表のとおりです。
操作 スーパーユーザー 非ユーザー ロールのない一般ユーザー すべてのグラフ・パーミッション
接続 T F F T
選択 T F F T
スキーマ変更 T F F T
頂点の追加 T F F T
頂点の作成/削除 T、T F、n/a F T、T
操作 CREATEロール SELECTロール ALTERロール MODIFYロール
接続 T T T T
選択 F T F F
スキーマ変更 F F F F
頂点の追加 F F T T
頂点の作成/削除 F F F F
操作 CREATE/SELECTロール CREATE/ALTERロール CREATE/MODIFYロール CREATE/ALTER/DROPロール
接続 T T T T
選択 T F F F
スキーマ変更 F F F T
頂点の追加 F F T F
頂点の作成/削除 F F F F
注: 「接続」は、DSE Graphサーバーに接続できることを意味します。
Cassandra内部のパスワード認証を使用するには、クライアント・アプリケーションで認証情報を提供する必要があります。Gremlin Consoleを使用するには、remote.yamlファイルに認証情報を入力します。たとえば、以下の行を追加します。
username:realuser
password:password
connectionPool:{enableSsl:false}
LDAPのユーザー名とパスワードを定義します。内部またはLDAP認証にはパスワードが必要です。

実稼働のDSE Graphをセキュリティ保護するには、DataStax EnterpriseでKerberos認証またはLDAP認証を有効にするか、Cassandra認証を使用します。

cassandra.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/cassandra/cassandra.yaml
tarボール・インストール install_location/resources/cassandra/conf/cassandra.yaml
dse.yamlファイルの場所は、インストールのタイプによって異なります。
Installer-Services /etc/dse/dse.yaml
パッケージ・インストール /etc/dse/dse.yaml
Installer-No Services install_location/resources/dse/conf/dse.yaml
tarボール・インストール install_location/resources/dse/conf/dse.yaml
remote.yamlファイルの場所は、インストールのタイプによって異なります。
パッケージ・インストール /etc/dse/graph/gremlin-console/conf/remote.yaml
tarボール・インストール install_location/resources/graph/gremlin-console/conf/remote.yaml