デフォルトでは、Cassandra は認証を有効にせずにインストールされます。つまり、誰でも Cassandra にアクセスできます。認証は、Edge のインストール後、またはインストール プロセスの一環として有効にできます。
ユーザーの追加、削除、変更は、Cassandra の CREATE/ALTER/DROP USER ステートメントを使用して行います。詳細については、 Cassandra SQL シェルコマンドをご覧ください。
インストール時に Cassandra 認証を有効にする
Cassandra 認証はインストール時に有効にできます。
インストール時に Cassandra 認証を有効にするには、すべての Cassandra ノードの構成ファイルに CASS_AUTH プロパティを含めます。
CASS_AUTH=y # The default value is n.
次の Edge コンポーネントが Cassandra にアクセスします。
- 管理サーバー
- Message Processor
- ルーター
- Qpid サーバー
- Postgres サーバー
これらのコンポーネントをインストールするときに、構成ファイルでユーザー名とパスワードを設定する必要があります。
CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password
Cassandra の認証情報は、Cassandra のインストール後に変更できます。ただし、Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをすでにインストールしている場合は、それらのコンポーネントも更新して新しい認証情報を使用する必要があります。
Cassandra のインストール後に Cassandra の認証情報を変更するには:
cqlshツールとデフォルトの認証情報を使用して、任意の Cassandra ノードにログインします。1 つのノードでパスワードを変更するだけで、リング内のすべての Cassandra ノードにブロードキャストされます。/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password
ここで
- cassIP は Cassandra ノードの IP アドレスです。
- 9042 はデフォルトの Cassandra ポートです。
cqlsh>プロンプトで次のコマンドを実行して、パスワードを更新します。ALTER USER cassandra_username/var> WITH PASSWORD 'new_cassandra_password';
- 次の例のように、
cqlshツールを終了します。exit
- Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをまだインストールしていない場合は、構成ファイルで次のプロパティを設定してから、これらのコンポーネントをインストールします。
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- Management Server、Message Processor、Router、Qpid サーバー、Postgres サーバーをすでにインストールしている場合は、Edge パスワードのリセットで、新しいパスワードを使用するようにこれらのコンポーネントを更新する手順をご覧ください。
インストール後に Cassandra 認証を有効にする
インストール後に認証を有効にするには:
- Cassandra のユーザー名とパスワードを使用して、 Cassandra に接続するすべての Edge コンポーネントを更新します。
- すべての Cassandra ノードで 認証を有効にし、いずれかのノードで Cassandra のユーザー名とパスワードを設定します。1 つの Cassandra ノードで認証情報を変更するだけで、リング内のすべての Cassandra ノードにブロードキャストされます。
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 chars
このコマンドにより、Management Server が自動的に再起動されます。
- 次の各サービスについて、ステップ 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 認証を有効にしてユーザー名とパスワードを設定するには、次の手順を行います。
- 次の内容のサイレント構成ファイルを作成します。
# 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_username # Default value is cassandra - don't use for production # Cassandra Password. If CASS_USERNAME does not exist, create SUPERUSER with this as password CASS_PASSWORD=cassandra_password # Default value is cassandra - don't use for production # 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 changed details of the default cassandra user(‘cassandra’) CASS_EXISTING_USERNAME=existing_cassandra_username # Password of an existing C* user. Only needed if you have disabled or change password of the default cassandra user(‘cassandra’) CASS_EXISTING_PASSWORD=existing_cassandra_password # 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=existing_cassandra_username CASS_EXISTING_PASSWORD=existing_cassandra_password CASS_USERNAME=cassandra_username CASS_PASSWORD=cassandra_password 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 keyspaceで修復を実行します。
- すべての Cassandra ノードで手順 1 と 2 を繰り返します。