セキュリティ・チェックリスト
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)などの既存の技術と集約的に統合されます。
- 行レベル・アクセス制御(RLAC)
- 検索インデックスのロール・ベース・アクセス制御
- データベース・クライアントのDSEプロキシ認証
- 統合型のLDAPロール管理
- 内部またはLDAPによるJMX認証
DataStax Enterpriseには、エンタープライズレベルのデータベース用の高度なデータ保護機能が搭載されています。
機能 | データベース | Search | Analytics | グラフ |
---|---|---|---|---|
認証(外部LDAPまたは内部) | あり | あり | あり | 一部あり |
Kerberos認証 | あり | あり | あり | あり |
権限管理(RBAC) | あり | 一部あり | 一部あり | あり |
クライアントとノード間の暗号化 | あり | あり | あり | あり |
透過的なデータ暗号化 | あり | あり | なし | あり |
データ監査 | あり | あり | 一部あり | あり |
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のみをサポートしています。「ロールの管理」および「データベース・リソースへのアクセスの権限管理」を参照してください。
- アクティビティーの監査:
データベース・リソースのアクティビティーをログに記録し、監視します。「DataStax Enterpriseのデータ監査の有効化」を参照してください。
- 透過的なデータ暗号化(TDE):保存されているデータを保護します。DSEは機密データの暗号化において以下のデータを暗号化します。
- テーブル全体(常にプレーン・テキストで格納されるパーティション・キーを除く)
- システム・テーブルなど、データが含まれているSSTable(system.batchlogやsystem.paxosなど)
- 検索インデックス
- ファイルベースのヒント(DSE 5.0以降)
- コミット・ログ
- dse.yamlおよびcassandra.yamlの機密性の高いプロパティ
外部のKMIPまたはローカル・サービスを使用してデータを暗号化します。「透過的なデータ暗号化について」を参照してください。
- SSLを使用した転送中のデータの暗号化
クライアントとデータベース間およびクラスター内のノード間の通信のセキュリティを保護します。「SSLの構成」を参照してください。
DSE Searchのセキュリティ・チェックリスト
DSE Searchのセキュリティ保護
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コンポーネントを使用する必要があります。
- を定義します。
- 「DSE Unified Authentication(DSE統合認証)の有効化」に従い、CQLシェルを使用してインデックス管理タスクを実行します。
- 権限管理
検索インデックスに関するパーミッションを指定するには、認証済みユーザーにロールベース・アクセス制御(RBAC)を使用します。「ロールの管理」、「検索インデックス・パーミッションの管理」、「」を参照してください。行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE SearchまたはDSE Graphでの使用はサポートされていません。
- アクティビティーの監査
データベース・リソースのアクティビティーをログに記録し、監視します。「DataStax Enterpriseのデータ監査の有効化」を参照してください。
- 透過的なデータ暗号化(TDE)
保存されているデータを保護します。DSEでは、検索インデックスの機密データにKMIPまたはローカル暗号化を利用できます。「検索インデックスの暗号化」を参照してください。
- SSLを使用した転送中のデータの暗号化
DSESearchノードでクライアントとノード間の暗号化を使用して、HTTPクライアントとCQLシェル間でSSLを使用する接続を暗号化します。「SSLの構成」を参照してください。
注: SSLを使用する特定のセキュリティ要件を満たすために、DSE Searchへのクライアント接続のIPアドレスを変更できます。たとえば、サブネットを分離するなどの目的で変更します。
- TDE:キャッシュされたデータは暗号化されません。暗号化はDSEデータベース側でのみ実行され、その間はパフォーマンスがわずかに低下します。
- 権限管理:パーミッションは、検索インデックス管理やデータベース内に格納されているデータへのアクセスなど、CQL要求に対してのみ適用されます。パーミッションは、キャッシュやインデックス構成などの検索ファイル・リソースには適用されません。
- 行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE Searchでの使用はサポートされていません。
- DSE SearchデータへのHTTPアクセスは、SSLを使用して保護されています(クライアントとノード間の暗号化)。SSLを使用したノード間の暗号化は、内部Solr通信を保護します。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra.yaml |
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/dse.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/dse/conf/dse.yaml |
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/tomcat/conf/server.xml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/tomcat/conf/server.xml |
DSE Analyticsのセキュリティ・チェックリスト
DSE Analyticsのセキュリティ保護。
- SSLを使用したクライアントとノード間の暗号化を有効にする。
- Sparkコンポーネントは信頼されるユーザーにのみ公開する。
- ファイル・システムへのアクセスを信頼されるユーザーにのみ許可する。
- 認証:
- ノード間およびエグゼキューターごとの共有シークレット。「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はセキュリティが保護されておらず、Kerberosの使用時にデリゲーション・トークンを含むSpark構成を表示する可能性があります。
- 権限管理:
Sparkジョブについてデータベースから取得されたデータは、ロールベース・アクセス制御(RBAC)によって保護されます。要求を実行するユーザーは、ロールの割り当てによってデータにアクセスするためのパーミッションが付与されている必要があります。
注: Spark UIマスターおよびワーカーには権限管理を使用できません。 - 監査:
- Sparkで実行されるAnalytics操作はSparkイベント・ログに記録されます。有効にするには、「Sparkロギング・オプションの構成」を参照してください。
- CQL要求はデータベース・ログに記録されます。「DataStax Enterpriseのデータ監査の有効化」を参照してください。
- 透過的なデータ暗号化(TDE):
TDEはデータベースに格納されているデータにのみ適用されます。DSEは、Sparkに使用され、DSEFSまたはローカル一時ディレクトリーに格納されているデータの暗号化をサポートしていません。
- SSLを使用した転送中のデータの暗号化:
クライアントとノード間の暗号化は、クライアントとコーディネーター・ノードの間にセキュアなチャネルを確立することで、SparkエグゼキューターとDSEデータベース間の接続で転送中のデータを保護します。SSLでは、共有認証サービスを設定する必要がありません。サーバー証明書の作成とクライアントとノード間のSSLの有効化が必要です。
Sparkのノード間通信とクライアントとクラスター間の通信も、dse.yamlでサーバー側のSSLを有効にして、Spark構成ファイルspark-defaults.confでクライアント側のSSLを有効にすることで、SSLを使用して暗号化できます。詳細については、「Spark接続のセキュリティ保護」を参照してください。
dse.yamlファイルの場所は、インストールのタイプによって異なります。パッケージ・インストールInstaller-Servicesインストール
/etc/dse/dse.yaml tarボール・インストールInstaller-No Servicesインストール
installation_location/resources/dse/conf/dse.yaml
DSE Graphのセキュリティ・チェックリスト
DataStax Enterpriseのセキュリティ機能を使用して、DSE Graphデータ全体、または部分的にセキュリティを保護します。
- 認証:
トランザクション用データベースでDSE Unified Authentication(DSE統合認証)を有効にして、DSE Graphデータへのアクセスを認証ユーザーにのみ許可し、DSE Graphの
remote.yaml
で認証情報を構成します。「DSE Graphの認証情報の提供」を参照してください。 - 権限管理: DSE Graphのキースペースとテーブルのロールを定義して、グラフ・データへのアクセスを制限します。「DSE Graphキースペースへのアクセスの管理」を参照してください。注: RBACはキャッシュされたデータには適用されません。行レベル・アクセス制御(RLAC)を使用した行レベルのパーミッションの設定は、DSE SearchまたはDSE Graphでの使用はサポートされていません。
DseGraphRpc
オブジェクトの実行パーミッションを定義したロールに付与します。 - アクティビティーの監査:
DSE Graph関連データベース・リソースのアクティビティーをログに記録して、監視します。「DataStax Enterpriseのデータ監査の有効化」を参照してください。
- 透過的なデータ暗号化:
DSE Graphインデックス・テーブルのデータを暗号化します。「透過的なデータ暗号化」を参照してください。
注: キャッシュされたデータは暗号化されません。暗号化によってパフォーマンスが多少低下する場合があります。 - SSLを使用した暗号化データベース接続:
DSE Graphの転送中のデータを暗号化します。DSE Graphノードでクライアントとノード間のSSL暗号化を有効にするには、cassandra.yamlファイルで
client_encryption_options
を設定します。「クライアントとノード間の暗号化」を参照してください。 - Graphサンドボックス:
Graphサンドボックスは、デフォルトで有効になっていて、Javaパッケージ、スーパークラス、タイプの実行を許可または禁止するよう構成できます。「Graphサンドボックス」を参照してください。
- GremlinクエリーがCQLなどのクエリー・タイプ間で区別されないという制限があります。
- CQLを使用する個々のパーミッションを使用して、パーミッションは頂点ラベル単位で適用され、CQLを使用してテーブル・レベルで登録されます。
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/cassandra/cassandra.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/cassandra/conf/cassandra.yaml |
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/dse.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/dse/conf/dse.yaml |
パッケージ・インストールInstaller-Servicesインストール |
/etc/dse/graph/gremlin-console/conf/remote.yaml |
tarボール・インストールInstaller-No Servicesインストール |
installation_location/resources/graph/gremlin-console/conf/remote.yaml |