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ノードでクライアントとノード間のSSL暗号化を有効にするには、cassandra.yamlファイル内の
-
実稼働環境の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 |