CockroachDB クラスターをセキュアモードでデプロイする方法 - TechRepublic

CockroachDB クラスターをセキュアモードでデプロイする方法 - TechRepublic
画像: iStock/kentoh

先日、NoSQLのニーズを満たすCockroachDBクラスターの導入手順についてご説明しました。しかし、その設定ではパスワード付きのユーザーを作成できないことにすぐに気づいたかもしれません。テスト目的であれば問題ないかもしれませんが、パスワードレスのデータベースサーバーを本番環境に導入するのはおそらく避けるべきでしょう。

CockroachDB をセキュアモードでデプロイする方法をご紹介します。この方法でデプロイすると、ユーザーにパスワードを割り当てることができるようになります(これは本番環境では絶対に必要な機能です)。

それでは、これ以上何も言わずに、安全な CockroachDB クラスターのパワーを解き放ちましょう。

参照: 採用キット: データベースエンジニア (TechRepublic Premium)

必要なもの

元の手順と同様に、Ubuntu Serverのインスタンスを少なくとも2つと、sudo権限を持つユーザーが必要です。それでは、早速始めましょう。

CockroachDB のインストール方法

元の記事をまだ読んでいない方のために、CockroachDBのインストール手順を改めておさらいしましょう。この手順はすべてのクラスタサーバーで実行する必要があります。準備はいいですか?

バイナリ ファイルをダウンロードし、次のコマンドで移動します。

curl https://binaries.cockroachdb.com/cockroach-v21.2.8.linux-amd64.tgz | tar -xz && sudo cp -i cockroach-v21.2.8.linux-amd64/cockroach /usr/local/bin/

新しいディレクトリを作成します:

sudo mkdir -p /usr/local/lib/cockroach

次の 2 つのファイルをコピーします。

sudo cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos.so /usr/local/lib/cockroach/
sudo cp -i cockroach-v21.2.8.linux-amd64/lib/libgeos_c.so /usr/local/lib/cockroach/

ファイアウォールを設定します。

sudo ufw allow 8080/tcp
sudo ufw allow 26257/tcp
sudo ufw reload

ブーーン!インストール完了。クラスターを安全にデプロイする時間です。

証明書を生成する方法

まず最初に、セキュリティ証明書を生成する必要があります。その前に、証明書を格納するディレクトリを作成しましょう。

mkdir certs cockroachdb_certs

次に、次の方法で証明機関のキー ペアを作成します。

cockroach cert create-ca --certs-dir=certs --ca-key=cockroachdb_certs/ca.key

ここで、次のようにしてノードのキー ペアを作成します。

cockroach cert create-node SERVER1 $(hostname) --certs-dir=certs --ca-key=cockroachdb_certs/ca.key

ここで、SERVER1 は制御サーバーの IP アドレスです。

次のコマンドを使用して、クラスターを (制御ノード上で) 起動できます。

cockroach start --certs-dir=certs --store=server1 --listen-addr=SERVER1:26257 --http-addr=localhost:8080 --join=SERVER2:26257,SERVER3:26258,localhost:26259 --background

ここで、SERVER1 はメイン サーバーの IP アドレス、SERVER2 は最初のノードの IP アドレス、SERVER3 は 3 番目のノードの IP アドレスです。

次に、次のようなコマンドを使用して、2 番目と 3 番目のノードでサーバーを起動します。

cockroach start --certs-dir=certs --store=server2 --listen-addr=SERVER2:26258 --http-addr=localhost:8081 --join=SERVER1:26257,SERVER2:26258,SERVER3:26259 \
--background

ここで、SERVER1 はメイン サーバーの IP アドレス、SERVER2 は最初のノードの IP アドレス、SERVER3 は 3 番目のノードの IP アドレスです。

制御ノードに戻り、次のコマンドでクラスターを初期化します。

cockroach init --certs-dir=certs --host=SERVER1:26257

ここで、SERVER1 はメイン サーバーの IP アドレスです。

パスワード付きユーザーを作成する方法

制御ノードに戻り、次のコマンドで CockroachDB コンソールにアクセスします。

cockroach sql --certs-dir=certs --host=SERVER1:26257

ここで、SERVER1 は制御ノードの IP アドレスです。

次の方法で新しいユーザー/パスワードを作成します:

CREATE USER username WITH PASSWORD 'password';

ここで、username は一意のユーザー名、password は強力で一意のパスワードです。

安全なユーザーで管理コンソールにアクセスする場合は、次のようにして作成した新しいユーザーに管理者権限を付与する必要があります。

GRANT admin To username;

ここで、username は先ほど作成したユーザーの名前です。

次のコマンドでコンソールを終了します。

\q

これで、http://SERVER1:8080 (SERVER1 は制御ノードの IP アドレス) で CockroachDB Web コンソールにログインできます。

おめでとうございます。CockroachDB クラスターをセキュアモードでデプロイしました。これで、データベースを思う存分管理できます。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: