2017-06-06 21 views
1

テスト用に4.6 Community Editionから5.0.0-2873 Enterprise EditionにCouchbaseを更新しました.Javaクライアントを使用しているソフトウェアではバケットを開こうとするとInvalidPasswordExceptionがスローされました。認証なしでバケットを作成できません

新しく作成されたバケットには、authType = 'sasl'とランダムに生成されたsaslPasswordがあります。 私はGUIの代わりにCLIを使用してバケットを作成しようとしました:

ERROR: unrecognized arguments: --bucket-password=password 

は私も同じ結果とバケット編集機能を試してみました:

couchbase-cli bucket-create -c localhost:8091 -u Administrator -p password --bucket=general --bucket-ramsize=1300 --bucket-type=couchbase --bucket-password= 

は、私は次のエラーを得ました。

documentationによると、引数は有効である必要があります。

REST APIを使用してバケット認証(および同様のパスワード)を変更しようとしましたが、これは何のエラーも発生しませんでしたが、authTypeとパスワードは同じままです。

curl -X POST -u Administrator:password -d 'authType=none' http://<host>:8091/pools/default/buckets/general 

また、documentationによれば、これは機能するはずです。

私がsaslパスワードのバケット情報を照会してopenBucket機能に渡すと、接続は機能しますが、実際にはこの機能をシステムで使用したくありません。

5.0EE Couchbaseの設定でバケット認証を削除する方法は他にもありますか?

答えて

3

Couchbase 5.0では、バケットパスワードをサポートしなくなり、バケットに接続するときにロールベースのアクセス制御を使用するようになりました。つまり、5.0では、バケットに接続する標準的な(プロダクション前の)方法は、クラスタを設定するときに作成した管理者のユーザーとパスワードを使用することです。管理者ユーザーが何であるか分からない場合は、最初にCouchbaseセットアップウィザードを実行したときに作成するユーザー、またはcouchbase-cli cluster-initを実行するときにコマンドラインで指定したユーザー名とパスワードですコマンド。

注意すべき点の1つは、管理者のユーザー/パスワードを使用することは、標準のプロダクション前のワークフローです。本番環境に入るときは、クラスタ内でアクセスする必要があるクラスタリソースにのみアクセスできる、アプリケーション用の個別のユーザーを作成することをお勧めします。これを行うには、Administration Consoleの[ユーザ]タブに移動して新しいユーザを作成し、アプリケーションに必要な標準的な役割であるフルバケツアクセスロールを付与します。

これはすべて素晴らしいと思いますが、管理者のユーザー/パスワードを使用しても問題は解決しています。このような場合は、Couchbase 5.0がインストールされているためにSDKが5.0の新しいRBAC認証メカニズムを処理するための十分な新機能ではないためです。この問題を回避するには、[ユーザー]タブでバケットと同じ名前のユーザーを作成し、そのユーザーにフルバケツアクセスの役割を与えます。このユーザーを使用して認証することができます。

最後に言及しておきたいことは、5.0より前のクラスタから5.0のクラスタへのアップグレード中に、Couchbaseが自動的に各バケットのユーザーを作成することです。各ユーザーはバケットの1つと同じ名前を持ち、そのユーザーのパスワードはバケットパスワードに対応します。これは主に、アップグレード中にアプリケーションのダウンタイムが発生しないようにするために行われます。クラスタをアップグレードしたら、CouchbaseクライアントライブラリをアップグレードしてRBAC認証の使用を開始するのが理想的です。

+0

これは、明らかに、ありがとう! –

+0

複数のバケットが設定されている場合、適切な回避策はないと思いますか?私は、バケツにちなんで命名された、バケットごとのユーザーを作成する面倒な回避策を考えることができます。 : - | – prettyvoid

+0

回避策は、前述のように各バケットと同じ名前のユーザーを作成することです。ただし、使用しているSDKの最新バージョンに更新し、できるだけ早くRBACを利用することをお勧めします。また、5.0より前のバージョンから5.0にアップグレードすると、ユーザーは自動的に作成されます。この回避策は、実際にCouchbase 5.0で古いSDKを使用する場合にのみ必要です。 – mikewied

関連する問題