デフォルトでは、Cassandra は認証を有効にせずにインストールされます。つまり、誰でもアクセスでき CassandraEdge のインストール後に、またはインストールの一環として認証を有効にできます。 プロセスです
Cassandra の CREATE
/ALTER
/DROP ROLES
ステートメントを使用して、ロールを追加、削除、変更できます。詳しくは以下をご覧ください。
一般的な考慮事項
- Cassandra 認証を有効にすると、デフォルトのスーパー ユーザー cassandra(パスワードは cassandra)が Cassandra によって自動的に作成されます。これは広く知られているスーパー ユーザーであるため、本番環境のニーズに合わせて使用しないでください。さらに、このスーパー ユーザーによる認証にはクォーラムの整合性が必要です。したがって、このユーザーを介した Cassandra 認証へのすべての接続には、より厳密な整合性が必要になり、その結果、パフォーマンスが遅くなり、フォールト トレラントが低下します。
- 一般的なワークフローでは、Cassandra で認証を有効にし、構成ファイルを介してカスタムのユーザー名とパスワードを渡します。これにより、ニーズに応じて安全に使用できるカスタムのユーザーとパスワードが作成されます。このようなユーザーを介して認証を行う場合は、クォーラム整合性の制限は適用されません。
- カスタム ユーザーが作成されても、Cassandra は引き続きデフォルトの cassandra スーパー ユーザーを作成し、Cassandra クラスタにはこのスーパー ユーザーを介してアクセスできることに注意してください。通常は、Apigee 全体で Cassandra 認証が正常に有効になったら、ALTER ROLE コマンドを使用して、この cassandra ユーザーのパスワードをデフォルトの cassandra 以外のものに変更する必要があります。このパスワードは後で参照できるように記録しておいてください。
- edge-* コンポーネントが認証に使用しているロールのパスワードは変更しないでください。すぐにサービスが中断されます。代わりに、まったく新しいユーザーを作成し、新しいユーザーを使用するように edge-* コンポーネントを変更し、完了したら DROP ROLE コマンドを使用して古いユーザーを削除する必要があります。
- edge-* コンポーネントが Cassandra 認証に使用するロールを変更するには、次の手順に沿って操作します。
<ph type="x-smartling-placeholder">
- </ph>
- 認証を有効にするの手順に沿って、新しいユーザーを作成します。クラスタで認証がすでに有効になっており、cassandra ユーザーのパスワードを変更した場合は、
CASS_EXISTING_USERNAME
とCASS_EXISTING_PASSWORD
で既存のユーザーのユーザー名とパスワードの組み合わせを渡す必要があります。 - 完了したら、cqlsh を使用して、新旧ユーザーの両方を介して Cassandra に接続できることを確認します。
- Cassandra に接続する Edge コンポーネントを更新するの手順に沿って、新しく作成されたユーザーを使用して Cassandra に接続するように、すべての edge-* コンポーネントを指定します。
- 最後に、すべてのコンポーネントが新しいユーザーを使用して Cassandra と通信したら、
DROP ROLE
コマンドを使用して古いユーザーを削除できます。デフォルトの cassandra ロールは削除しないでください。edge-* コンポーネントが Cassandra との通信に使用していない、カスタム作成のロールがあれば削除できます。
- 認証を有効にするの手順に沿って、新しいユーザーを作成します。クラスタで認証がすでに有効になっており、cassandra ユーザーのパスワードを変更した場合は、
- Edge コンポーネントのインストールまたはアップグレードに使用する構成ファイル内で、Cassandra が機能するユーザー名とパスワードを必ず更新してください。これにより、エッジ オペレーション中の中断が排除または最小化されます。
Cassandra 認証を有効にする 設置
インストール時に Cassandra 認証を有効にできます。
インストール時に Cassandra 認証を有効にするには、CASS_AUTH
を含めます。
プロパティをすべての Cassandra ノードの構成ファイルで設定し、
CASS_AUTH=y # The default value is n.
Cassandra にアクセスする Edge コンポーネントは次のとおりです。
- 管理サーバー
- 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 ノードにログインします。 認証情報を取得できます。パスワードの変更は 1 つのノードだけで行い、その変更をリング内のすべての Cassandra ノードにブロードキャストします。/opt/apigee/apigee-cassandra/bin/cqlsh cassIP 9042 -u cassandra_username -p cassandra_password
ここで
- cassIP は Cassandra ノードの IP アドレスです。
- 9042 は、デフォルトの Cassandra ポートです。
- cqlsh> で次のコマンドを実行します。パスワードを更新するよう求めるメッセージが表示されます。
ALTER ROLE <username> WITH PASSWORD='
'; - 次の例のように、
cqlsh
ツールを終了します。exit
- Management Server、Message Processor、
ルーター、Qpid サーバー、Postgres サーバーを使用する場合は、
それらのコンポーネントをインストールします。
CASS_USERNAME=cassandra_username CASS_PASSWORD=new_cassandra_password
- Management Server をすでにインストールしている場合、メッセージ プロセッサ、Router、Qpid サーバー、Postgres サーバー。これらを更新する手順については、Edge のパスワードを再設定するをご覧ください。 新しいパスワードを使用するように設定してください。
Cassandra 認証の有効化 設置
インストール後に認証を有効にするには:
- Cassandra に接続するすべての Edge コンポーネントを Cassandra のユーザー名と あります。
- すべての 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 サービスに対してステップ 1 を行うときは、次のコマンドを使用します。/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 を繰り返します。