Cassandra 認証を有効にする

デフォルトでは、Cassandra は認証を有効にせずにインストールされます。つまり、Cassandra サーバーにアクセスできるユーザーであれば誰でも、認証なしで Cassandra データベースをクエリできます。Edge のインストール後またはインストール プロセスの一環として認証を有効にできます。

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

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

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

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

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

インストール時に Cassandra 認証を有効にできます。ただし、Cassandra のインストール時に認証を有効にすることはできますが、インストール中はデフォルトの Cassandra ユーザー名とパスワード(‘cassandra’:’cassandra’)を使用する必要があります。デフォルト以外の Cassandra 認証情報を使用する場合は、 こちらに記載されている手順に沿って、インストール後に Cassandra 認証を再度有効にする必要があります。

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

CASS_AUTH=y
CASS_USERNAME=cassandra
CASS_PASSWORD=cassandra

このインストールにより、Cassandra で認証が有効になり、デフォルトの cassandra:cassandra 認証情報が設定されます。

初期インストールが完了したら、次の操作を行います(複数可)。

  • こちらの手順に沿って、Cassandra 認証に使用する代替ユーザーを作成します。
  • こちらの手順に沿って、デフォルトの Cassandra ユーザーのパスワードを変更します。
  • 上で設定した認証情報を使用するように、Cassandra を使用する Edge コンポーネントをインストールします。

Cassandra に接続する Edge コンポーネント

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

  • 管理サーバー
  • Message Processor
  • ルーター
  • Qpid サーバー
  • Postgres サーバー

Cassandra 認証が有効な場合に Edge コンポーネントをインストールする

これらの Edge コンポーネントを初めてインストールするときに Cassandra 認証を有効にしている場合は、サイレント構成ファイルで次の設定を指定する必要があります。

CASS_AUTH=Y
CASS_USERNAME=<valid username in Cassandra>
CASS_PASSWORD=<password for the above username>

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

Cassandra に接続する Edge コンポーネントを更新する

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 characters.

    このコマンドにより、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 認証を有効にする

    以降のセクションでは、インストール後に Cassandra 認証を有効にする方法について説明します。

    単一のデータセンター設定で Cassandra 認証を有効にする

    Cassandra がすでにインストールされている単一のデータセンター ベースの Apigee 設定の場合、次のことができます。

    注: 「Cassandra」ユーザーは Cassandra の特別なユーザーです。このユーザーを使用する認証には QUORUM の整合性が必要です。 Cassandra の整合性レベルについてをご覧ください。

    複数のデータセンターがある場合は Cassandra 認証を有効にする

    データセンターを拡張する場合は、ご使用の設定に応じて、次のいずれかのシナリオの手順を行います。

    シナリオ 1: 既存のデータセンターで Cassandra 認証が有効になっている

    既存のデータセンターで、デフォルトの cassandra:cassandra 認証情報を使用して Cassandra 認証がすでに有効になっている場合は、次の操作を行います。

    1. デフォルトの Cassandra:Cassandra 認証情報と CASS_AUTH=y を使用して新しいデータセンターをセットアップします。Cassandra 認証を初めて有効にするをご覧ください。
    2. デフォルトの Cassandra 認証情報を使用して、新しいデータセンターに Edge コンポーネントをインストールします。

    既存のデータセンターで、デフォルト以外の認証情報を使用して Cassandra 認証がすでに有効になっている場合は、次の操作を行います。

    1. デフォルトの Cassandra:Cassandra 認証情報と CASS_AUTH=y を使用して新しいデータセンターを設定します。Cassandra 認証を初めて有効にするをご覧ください。
    2. Cassandra 認証を初めて有効にするの手順に沿って、既存のデータセンターの認証情報を再利用します(既存のデータセンターでデフォルト以外の認証情報を使用している場合)。
    3. デフォルト以外の Cassandra 認証情報を使用して、新しいデータセンターに Edge コンポーネントをインストールします。

    シナリオ 2: 既存のデータセンターで Cassandra 認証が有効になっていない

    Cassandra 認証が有効になっていない場合は、次の操作を行います。

    1. Cassandra 認証を使用しない新しいデータセンターを設定します。
    2. Cassandra 認証を初めて有効にするの手順に沿って、クラスタ全体で Cassandra 認証を有効にします(拡張後)。
    3. こちらの手順に沿って、Cassandra に接続する Edge コンポーネントを更新します。

    Cassandra 認証を初めて有効にする

    Cassandra 認証を初めて有効にする場合、または新しい Cassandra のユーザー名とパスワードを作成するには、次の操作を行います。

    1. 次の内容でサイレント構成ファイルを作成します。
      # Specify IP address or DNS name of cassandra node
      IP1=192.168.1.1
      IP2=192.168.1.2
      IP3=192.168.1.3
      
      # Must resolve to IP address or DNS name of host
      HOSTIP=$(hostname -i)
      
      # Set to ‘y’ to enable Cassandra authentication.
      CASS_AUTH=y # Possible values are ‘y/n’
      
      # Cassandra username. If it does not exist, this user would be created as a SUPERUSER
      CASS_USERNAME=cassandra # Default value is cassandra
      # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password
      CASS_PASSWORD=cassandra # Default value is cassandra
      
      # Space-separated IP/DNS names of the Cassandra hosts
      CASS_HOSTS="$IP1:1,1 $IP2:1,1 $IP3:1,1"
      
      # Username of an existing C* user. Only needed if you have disabled or change details of the default cassandra user(‘cassandra’)
      CASS_EXISTING_USERNAME=cassandra  # The default username is cassandra
      # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’)
      CASS_EXISTING_PASSWORD=cassandra  # The default password is cassandra
      
      # Cassandra port
      CASS_PORT=9042 # The default port is 9042.
    2. 最初の Cassandra ノードにログインし、次のコマンドを実行します。
      apigee-service apigee-cassandra enable_cassandra_authentication -f CONFIG

      必要に応じて、次の例に示すように、プロパティをコマンド引数としてスクリプトに渡すことができます。

      CASS_AUTH=y HOSTIP=$(hostname -i) CASS_PORT=9042 CASS_EXISTING_USERNAME=cassandra CASS_EXISTING_PASSWORD=cassandra CASS_USERNAME=cassandra CASS_PASSWORD=cassandra  CASS_HOSTS="192.168.1.1:1,1 192.168.1.2:1,1 192.168.1.3:1,1" apigee-service apigee-cassandra enable_cassandra_authentication

      メモ:

      • デフォルトの Cassandra 認証情報の場合、上記のコマンドは Cassandra 認証を有効にして、Cassandra を再起動します。
      • デフォルト以外の認証情報の場合、このコマンドはレプリケーション係数の変更、スーパーユーザーの作成、system_auth キースペースの修復も行います。
    3. すべての Cassandra ノードで手順 1 と 2 を 1 つずつ繰り返します。

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

    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 のパスワードのリセットを参照して、これらのコンポーネントで新しいパスワードを使用する手順をご確認ください。