Cassandra 認証を有効にする

Edge for Private Cloud v4.18.05

デフォルトでは、Cassandra は認証を有効にせずにインストールされます。だれでも Cassandra にアクセスできるということです。Edge のインストール後、またはインストール プロセスの一環として認証を有効にできます。

Cassandra で認証を有効にする場合、次のデフォルト認証情報が使用されます。

  • ユーザー名 = 'cassandra'
  • パスワード = 'cassandra'

このアカウントを使用するか、このアカウントに異なるパスワードを設定するか、Cassandra の新しいユーザーを作成することができます。Cassandra の CREATE/ALTER/DROP USER 文を使ってユーザーの追加、削除、変更ができます。

詳細については、こちらをご覧ください。http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/cqlCommandsTOC.html

インストール時に Cassandra 認証を有効にする

インストール時に Cassandra 認証を有効にすることができます。ただし、Cassandra のインストール時に認証を有効にすることはできますが、デフォルトのユーザー名とパスワードは変更できません。Cassandra のインストール後に、手動でその手順を実行する必要があります。

インストール時に Cassandra 認証を有効にするには、すべての Cassandra ノードの構成ファイルにプロパティ CASS_AUTH を含めます。

CASS_AUTH=y # The default value is n.

次の Edge コンポーネントは、Cassandra にアクセスします。

  • Management Server
  • Message Processor
  • Router
  • Qpid サーバー
  • Postgres サーバー

したがって、これらのコンポーネントをインストールするときは、構成ファイルに次のプロパティを設定して、Cassandra の認証情報を指定する必要があります。

CASS_USERNAME=cassandra
    CASS_PASSWORD=cassandra

Cassandra インストール後に Cassandra の認証情報を変更できます。ただし、Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをすでにインストールしている場合は、これらのコンポーネントも新しい認証情報を使用するよう更新する必要があります。

Cassandra インストール後に Cassandra の認証情報を変更するには

  1. cqlsh ツールとデフォルトの認証情報を使って、いずれかの Cassandra ノードにログインします。1 つの Cassandra ノードでパスワードを変更するだけで、リング内のすべての Cassandra ノードにブロードキャストされます。
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    ここで

    1. cassIP は、Cassandra ノードの IP アドレスです。
    2. デフォルトの Cassandra ポートは 9042 です。
    3. デフォルト ユーザーは cassandra です。
    4. デフォルト パスワードは cassandra です。以前にパスワードを変更した場合は、現在のパスワードを使います。
  2. cqlsh> プロンプトで次のコマンドを実行して、パスワードを更新します。
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. cqlsh ツールを終了します。
    exit
  4. Management Server、Message Processors、Router、Qpid サーバー、Postgres サーバーをまだインストールしていない場合は、構成ファイルで次のプロパティを設定し、これらのコンポーネントをインストールします。
    CASS_USERNAME=cassandra
        CASS_PASSWORD=NEW_PASSWORD
  5. ただし、Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをすでにインストールしている場合、これらのコンポーネントも新しいパスワードを使用するように更新するため、Edge パスワードをリセットするをご覧ください。

インストール後に Cassandra 認証を有効にする

認証を有効にするには

  • Cassandra に接続するすべての Edge コンポーネントを、Cassandra のユーザー名とパスワードで更新します。
  • すべての Cassandra ノードで、認証を有効にします。
  • いずれかのノードで Cassandra のユーザー名とパスワードを設定します。1 つの Cassandra ノードで認証情報を変更するだけで、リング内のすべての Cassandra ノードにブロードキャストされます。

Cassandra と通信するすべての Edge コンポーネントを新しい認証で更新する手順は次のとおりです。Cassandra の認証情報を実際に更新する前に、この手順を実行してください。

  1. Management Server ノードで、次のコマンドを実行します。
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server
          store_cassandra_credentials -u CASS_USERNAME -p CASS_PASSWORD

    あるいは、次のように、新しいユーザー名とパスワードの入ったファイルをコマンドに渡すこともできます。

    apigee-service edge-management-server store_cassandra_credentials  -f configFile

    上の configFile は以下の内容を含みます。

    CASS_USERNAME=cassandra
        CASS_PASSWORD=CASS_PASSWROD

    このコマンドは、自動的に Management Server を再起動します。

  2. 以下について、ステップ 1 を繰り返します。
    • すべての Message Processor
    • すべての Router
    • すべての Qpid サーバー(edge-qpid-server)
    • Postgres サーバー(edge-postgres-server)

Cassandra 認証を有効にしてユーザー名とパスワードを設定するには、次の手順を実行します。

  1. 最初の Cassandra ノードにログインします。
  2. 次のコマンドを実行します。
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra
          enable_cassandra_authentication -e y

    このコマンドは認証を有効にし、Cassandra を再起動します。

  3. すべての Cassandra ノードで手順 1 と 2 を繰り返します。
  4. cqlsh ツールとデフォルトの認証情報を使って、いずれかの Cassandra ノードにログインします。1 つの Cassandra ノードでパスワードを変更するだけで、リング内のすべての Cassandra ノードにブロードキャストされます。
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    ここで

    • cassIP は、Cassandra ノードの IP アドレスです。
    • 9042 は、Cassandra のポートです。
    • デフォルト ユーザーは cassandra です。
    • デフォルト パスワードは cassandra です。以前にパスワードを変更した場合は、現在のパスワードを使います。
  5. cqlsh> プロンプトで次のコマンドを実行して、パスワードを更新します。
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  6. cqlsh> プロンプトで次のコマンドを実行して、キースペースが常に使用可能であることを確認します。 1 つのデータセンターの場合
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3'};
    2 つのデータセンターの場合
    ALTER KEYSPACE system_auth WITH replication = {'class': 'NetworkTopologyStrategy', 'dc-1': '3', 'dc-2': '3'};
  7. cqlsh ツールを終了します。
    exit
  8. nodetool repair を実行して、変更がすべての Cassandra ノードに反映されていることを確認します。
    /opt/apigee/apigee-cassandra/bin/nodetool repair system_auth