Cassandra 認証を有効にする

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

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

  • ユーザー名 = 「cassandra」
  • password = 'cassandra'

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

詳細については、Cassandra SQL シェルコマンドをご覧ください。

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

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

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

CASS_AUTH=y # The default value is n.

Cassandra にアクセスする Edge コンポーネントは次のとおりです。

  • 管理サーバー
  • Message Processor
  • ルーター
  • 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 ノードにブロードキャストされます。
    /opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra

    ここで

    1. cassIP は、Cassandra ノードの IP アドレスです。
    2. 9042 は、デフォルトの Cassandra ポートです。
    3. デフォルト ユーザーは cassandra です。
    4. デフォルトのパスワードは cassandra です。以前にパスワードを変更した場合は、現在のパスワードを使用します。パスワードに特殊文字が含まれている場合は、一重引用符で囲みます。
  2. cqlsh> プロンプトで次のコマンドを実行し、パスワードを更新します。
    ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. 次の例のように cqlsh ツールを終了します。
    exit
  4. Management Server、Message Processor、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 cassandra_username -p cassandra_password

    必要に応じて、新しいユーザー名とパスワードを含むファイルをコマンドに渡すことができます。

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

    ここで、configFile には次のものが含まれます。

    CASS_USERNAME=cassandra_username # Default is cassandra
    CASS_PASSWORD='cassandra_password' # Default is cassandra; wrap in single quotes if it includes special chars

    このコマンドにより、Management Server が自動的に再起動されます。

  2. 次の各サービスに対してステップ 1 を繰り返します。
    • すべての Message Processor
    • すべてのルーター
    • すべての Qpid サーバー(edge-qpid-server)
    • Postgres サーバー(edge-postgres-server)

    サービスごとにステップ 1 を繰り返す場合は、上記のコマンドの edge-management-server を適切なサービス名に置き換えます。たとえば、Router サービスに対してステップを実行する場合は、次のコマンドを使用します。

    /opt/apigee/apigee-service/bin/apigee-service edge-router
      store_cassandra_credentials -u cassandra -p cassandra

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> プロンプトで次のコマンドを実行して、キースペースを常に利用できる状態にします。

    単一のデータセンターの場合:

    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 [-u username -pw 'password'] repair system_auth

    ユーザー名とパスワードを渡す必要があるのは、Cassandra に対して JMX 認証を有効にした場合のみです。