デフォルトでは、Cassandra のインストール時に認証は有効にされません。つまり、Cassandra サーバーにアクセスできるすべてのユーザーが、認証なしで Cassandra データベースへのクエリを実行できます。Edge のインストール後、またはインストール プロセスの一環として認証を有効にできます。
独自の認証情報を提供せずに Cassandra で認証を有効にする場合、次のデフォルトの認証情報が使用されます。
- ユーザー名 = 'cassandra'
- パスワード = '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 を使用する Edge コンポーネントをインストールします。
Cassandra に接続する Edge コンポーネント
Cassandra にアクセスする Edge コンポーネントは次のとおりです。
- Management Server
- Message Processor
- Router
- 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 の認証情報を実際に更新する前に行う必要があります。
- 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 を再起動します。
- 次の各サービスに対してステップ 1 を繰り返します。
- すべての Message Processor
- すべての Router
- すべての Qpid サーバー(edge-qpid-server)
- Postgres サーバー(edge-postgres-server)
各サービスに対してステップ 1 を繰り返すとき、上記のコマンドの
edge-management-server
の部分を適切なサービス名に置き換えます。たとえば、Router サービスに対してステップ 1 を行うときは、次のコマンドを使用します。/opt/apigee/apigee-service/bin/apigee-service edge-router store_cassandra_credentials -u cassandra -p cassandra
インストール後に Cassandra 認証を有効にする
次のセクションでは、インストール後に Cassandra 認証を有効にする方法について説明します。
単一データセンター環境で Cassandra 認証を有効にする
単一データセンター ベースの Apigee 環境で Cassandra がすでにインストールされている場合は、以下のことができます。
- デフォルトの Cassandra ユーザー(
cassandra:cassandra
)を使用するか、まったく新しいスーパー ユーザーを作成して、Cassandra 認証を初めて有効にする。手順は次のとおりです。- Cassandra 認証を初めて有効にするの手順を行います。
- Cassandra に接続する Edge コンポーネントを更新して Cassandra のユーザー名とパスワードを設定します。
- 既存の Cassandra ユーザーのパスワードを変更する。デフォルトの Cassandra 認証情報(
cassandra:cassandra
)を使用して Cassandra 認証がすでに有効になっている場合は、次の手順でパスワードを変更できます。- Cassandra ユーザーのパスワードを変更します。
- Cassandra に接続するすべての Edge コンポーネントを更新して Cassandra のユーザー名とパスワードを設定します。
注: 「cassandra」ユーザーは Cassandra の特別なユーザーです。このユーザーを使用した認証には QUORUM の整合性が必要です。Cassandra の整合性レベルについてをご覧ください。
データセンターが複数ある場合に Cassandra 認証を有効にする
データセンターを拡張するときは、構成に応じて以下のいずれかのシナリオの手順を実施します。
シナリオ 1: 既存のデータセンターで Cassandra 認証が有効になっている
既存のデータセンターでデフォルトの
cassandra:cassandra
認証情報を使用して Cassandra 認証がすでに有効になっている場合は、次の手順を行います。- デフォルトの Cassandra:Cassandra 認証情報と CASS_AUTH=y を使用して新しいデータセンターをセットアップします。Cassandra 認証を初めて有効にするをご覧ください。
- デフォルトの Cassandra 認証情報を使用して、新しいデータセンターに Edge コンポーネントをインストールします。
既存のデータセンターでデフォルト以外の認証情報を使用して Cassandra 認証がすでに有効になっている場合は、次の手順を行います。
- デフォルトの Cassandra:Cassandra 認証情報と CASS_AUTH=y を使用して新しいデータセンターをセットアップします。Cassandra 認証を初めて有効にするをご覧ください。
- Cassandra 認証を初めて有効にするの手順に沿って、既存のデータセンターの認証情報を再利用します(既存のデータセンターがデフォルト以外の認証情報を使用している場合)。
- デフォルト以外の Cassandra 認証情報を使用して、新しいデータセンターに Edge コンポーネントをインストールします。
シナリオ 2: 既存のデータセンターで Cassandra 認証が有効になっていない
Cassandra 認証が有効になっていない場合は、次の手順を行います。
- Cassandra 認証を有効にせずに新しいデータセンターをセットアップします。
- Cassandra 認証を初めて有効にするの手順に沿って、(拡張後に)クラスタ全体で Cassandra 認証を有効にします。
- こちらの手順に沿って、Cassandra に接続する Edge コンポーネントを更新します。
Cassandra 認証を初めて有効にする
次の手順に沿って、Cassandra 認証を初めて有効にするか、新しい Cassandra のユーザー名とパスワードを作成します。
- 以下の設定を含むサイレント構成ファイルを作成します。
# 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 exists, 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.
- 最初の 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 キースペースの修復も行います。
- すべての Cassandra ノードで、ステップ 1 と 2 を 1 ノードずつ繰り返します。
Cassandra のインストール後に Cassandra の認証情報を変更する
Cassandra のインストール後に Cassandra の認証情報を変更するには:
cqlsh
ツールとデフォルトの認証情報を使用していずれかの Cassandra にログインします。パスワードの変更は 1 つのノードだけで行い、その変更をリング内のすべての Cassandra ノードにブロードキャストします。/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra -p cassandra
ここで
- cassIP は Cassandra ノードの IP アドレスです。
- 9042 はデフォルトの Cassandra ポートです。
- デフォルトのユーザー名は
cassandra
です。 - デフォルトのパスワードは
cassandra
です。以前にパスワードを変更した場合は、現在のパスワードを使用してください。パスワードに特殊文字が含まれている場合は、一重引用符で囲みます。
cqlsh>
プロンプトに対して次のコマンドを実行して、パスワードを更新します。ALTER USER cassandra WITH PASSWORD 'NEW_PASSWORD';
- 次の例のように、
cqlsh
ツールを終了します。exit
- Management Server、Message Processor、Router、Qpid サーバー、Postgre サーバーをまだインストールしていない場合は、構成ファイルで次のプロパティを設定してそれらのコンポーネントをインストールします。
CASS_USERNAME=cassandra CASS_PASSWORD=NEW_PASSWORD
- Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをすでにインストールしている場合は、Edge パスワードをリセットするの手順に従って、これらのコンポーネントで新しいパスワードが使用されるようにします。