TMPディレクトリーのセキュリティ保護

noexecフラグを使用してTMPディレクトリーをマウントする前に、別の実行可能ディレクトリーにJNAをマップします。

エンタープライズ・セキュリティ・ポリシーでは、多くの場合、実行なし(noexec)フラグを使用して/tmpディレクトリーをマウントすることが求められます。デフォルトで、Cassandra Java Native Access(JNA)は/tmpにマップされます。JNAが起動するには実行可能ディレクトリーが必要です。JNAを別の(実行可能な)ディレクトリーにマップし直して、DSEサービスを実行するユーザーにフル・アクセスを許可するようにパーミッションを変更します。

手順

  1. ディレクトリーを作成し、Cassandraユーザーにフル・アクセス権を付与します。
  2. JNA一時ディレクトリーをマップします。jvm.optionsファイルで新しいディレクトリーのパスを使用して以下のフラグを追加します。
    -Djna.tmpdir=JNA_startup_directory
    jvm.optionsファイルの場所は、インストールのタイプによって異なります。

    パッケージ・インストールInstaller-Servicesインストール

    /etc/dse/cassandra/jvm.options

    tarボール・インストールInstaller-No Servicesインストール

    installation_location/resources/cassandra/conf/jvm.options
  3. DataStax Enterpriseを再起動します
    JNA起動ディレクトリーを使用できないためにDataStax Enterpriseが起動に失敗すると、システム・ログに以下のエラーが記録される場合があります。
    tail -3 /var/log/cassandra/system.log
    エラーは、次のようになります。
    ERROR main 2015-12-18 09:57:00,879 CassandraDaemon.java:213 - JNA failing to initialize properly. Use -Dcassandra.boot_without_jna=true to bootstrap even so.
    INFO Thread-2 2015-12-18 09:57:00,880 DseDaemon.java:418 - DSE shutting down...
    INFO Thread-2 2015-12-18 09:57:00,881 PluginManager.java:103 - All plugins are stopped.

    JNAの初期化に失敗する」を参照してください。