Cassandra 認証を有効にする

Edge for Private Cloud v. 4.17.09

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

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

  • username = 'cassandra'
  • password = 'cassandra'

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

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

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

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

注: この手順は、Cassandra をインストールする際に「-p c」、「-p ds」、「-p sa」、「-p aio」、「-p asa」、「-p ebp」オプションを使用する場合に使用します。

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

CASS_AUTH=y # The default value is n.

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

  • 管理サーバー
  • Message Processor
  • ルーター
  • Qpid サーバー
  • Postgres サーバー
  • BaaS スタック

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

CASS_USERNAME=cassandra 
CASS_PASSWORD=cassandra

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

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> プロンプトで次のコマンドを実行して、パスワードを更新します。
    cqlsh> ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
  3. cqlsh ツールを終了します。
    cqlsh> exit
  4. Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバー、BaaS Stack をまだインストールしていない場合は、構成ファイルで次のプロパティを設定してから、これらのコンポーネントをインストールします。
    CASS_USERNAME=cassandra
    CASS_PASSWORD=NEW_PASSWORD
  5. Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバー、BaaS Stack をすでにインストールしている場合は、Edge パスワードのリセットで、新しいパスワードを使用するようにこれらのコンポーネントを更新する手順をご覧ください。

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

認証を有効にするには:

  • Cassandra に接続するすべての Edge コンポーネントを、Cassandra のユーザー名とパスワードで更新します。
  • すべての Cassandra ノードで認証を有効にします。
  • 任意の 1 つのノードで 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
    • すべてのルーター
    • すべての Qpid サーバー(edge-qpid-server)
    • Postgres サーバー(edge-postgres-server)
  3. バージョン 4.16.05.04 以降の BaaS Stack ノードの場合:
    1. 次のコマンドを実行して、暗号化されたパスワードを生成します。
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid secure_password

      このコマンドは、書式なしテキストのパスワードを求めるプロンプトを表示し、次の形式で暗号化されたパスワードを返します。
      SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050
    2. /opt/apigee/customer/application/usergrid.properties で次のトークンを設定します。このファイルが存在しない場合は、作成します。
      usergrid-deployment_cassandra.username=cassandra
      usergrid-deployment_cassandra.password=SECURE:ae1b6dedbf6b26aaab8bee815a910737c1c15b55f3505c239e43bc09f8050


      この例では、Cassandra のデフォルトのユーザー名を使用しています。ユーザー名を変更した場合は、それに応じて usergrid-deployment_cassandra.username の値を設定します。

      パスワードに「SECURE:」接頭辞が含まれていることを確認します。 それ以外の場合、BaaS スタックは値を暗号化されていないものとして解釈します。

      注: 各 BaaS Stack ノードには、パスワードの暗号化に使用される独自の一意の鍵があります。したがって、各 BaaS Stack ノードで暗号化された値を個別に生成する必要があります。
    3. usergrid.properties ファイルの所有権を「apigee」ユーザーに変更します。
      > chown apigee:apigee /opt/apigee/customer/application/usergrid.properties
    4. Stack ノードを構成します。
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid configure
    5. BaaS スタックを再起動します。
      > /opt/apigee/apigee-service/bin/apigee-service baas-usergrid restart
    6. すべての BaaS スタックノードに対して、これらの手順を繰り返します。

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 repair system_auth