データベースは通常、安全な環境で機能します。これは、データベーストラフィック専用のVLANを備えたデータセンターである可能性があります。 EC2のVPCである可能性があります。ネットワークがさまざまな地域の複数のデータセンターに分散している場合は、通常、何らかの仮想プライベートネットワークまたはSSHトンネリングを使用して、これらの場所を安全な方法で接続します。最近、データのプライバシーとセキュリティが話題になっているため、セキュリティをさらに強化することで気分が良くなる可能性があります。
MySQLは、MySQLサーバー(レプリケーション)間およびMySQLサーバーとクライアント間の両方のトラフィックを暗号化する手段としてSSLをサポートしています。 Galeraクラスターを使用する場合は、同様の機能を利用できます。クラスター内通信とクライアントとの接続の両方をSSLを使用して暗号化できます。
SSL暗号化を実装する一般的な方法は、自己署名証明書を使用することです。ほとんどの場合、認証局によって発行されたSSL証明書を購入する必要はありません。自己署名証明書を生成するプロセスを経験したことのある人なら誰でも、それが最も簡単なプロセスではないことに同意するでしょう。ほとんどの場合、インターネットを検索して、これを行う方法と手順を見つけることになります。これは、DBAであり、このプロセスを数か月または数年ごとに実行する場合に特に当てはまります。これが、データベースクラスター全体でSSLキーを管理するのに役立つClusterControl機能を追加した理由です。このブログ投稿では、ClusterControl1.5.1を利用します。
ClusterControlのキー管理
サイドメニュー->キー管理に移動すると、キー管理に入ることができます。 セクション。

次の画面が表示されます:

生成された2つの証明書を確認できます。1つはCAで、もう1つは通常の証明書です。さらに証明書を生成するには、「キーの生成」に切り替えます ’タブ:

証明書は2つの方法で生成できます。最初に自己署名CAを作成し、それを使用して証明書に署名することができます。または、「クライアント/サーバー証明書とキー」に直接移動することもできます ’タブをクリックして、証明書を作成します。必要なCAがバックグラウンドで作成されます。最後になりましたが、既存の証明書(たとえば、SSL証明書を販売している多くの企業の1つから購入した証明書)をインポートできます。

これを行うには、証明書、キー、およびCAをClusterControlノードにアップロードし、それらを/ var / lib / cmon/caディレクトリに保存する必要があります。次に、それらのファイルへのパスを入力すると、証明書がインポートされます。
CAを生成するか、新しい証明書を生成することにした場合は、別のフォームに記入する必要があります。組織、一般名、メールアドレスの詳細を渡し、キーの長さと有効期限を選択する必要があります。
すべてが整ったら、新しい証明書の使用を開始できます。 ClusterControlは現在、クライアントとMySQLデータベース間のSSL暗号化の展開、およびGaleraClusterでのクラスター内トラフィックのSSL暗号化をサポートしています。 ClusterControlの将来のリリースでは、サポートされるさまざまな展開を拡張する予定です。
GaleraClusterの完全なSSL暗号化
ここで、SSLキーの準備ができており、SSL暗号化を必要とするGaleraClusterがClusterControlインスタンスを介してデプロイされていると仮定します。 2つのステップで簡単に保護できます。
まず、SSLを使用してGaleraトラフィックを暗号化します。クラスタビューからのクラスタアクションの1つは、「SSLガレラ暗号化を有効にする」です。 '。次のオプションが表示されます:

証明書をお持ちでない場合は、ここで生成できます。ただし、SSL証明書をすでに生成またはインポートしている場合は、リストにその証明書を表示し、それを使用してGaleraレプリケーショントラフィックを暗号化できるはずです。この操作にはクラスターの再起動が必要であることに注意してください。すべてのノードを同時に停止し、構成の変更を適用してから再起動する必要があります。ここに進む前に、クラスターの再起動中にダウンタイムが発生する可能性があることを確認してください。
クラスタ内トラフィックが保護されたら、クライアント/サーバー接続をカバーします。これを行うには、[SSL暗号化を有効にする]を選択します の仕事をすると、次のダイアログが表示されます:

これは非常によく似ています。既存の証明書を選択するか、新しい証明書を生成することができます。主な違いは、クライアントサーバー暗号化を適用するためにダウンタイムが必要ないことです。ローリングリスタートで十分です。再起動すると、概要の暗号化されたホストのすぐ下に鍵のアイコンが表示されます。 ページ:

ラベル'ガレラ 'はGalera暗号化が有効になっていることを意味し、' SSL 'は、その特定のホストに対してクライアントサーバー暗号化が有効になっていることを意味します。
もちろん、データベースでSSLを有効にするだけでは不十分です。SSLを使用してデータベースに接続することになっているクライアントに証明書をコピーする必要があります。すべての証明書は、ClusterControlノードの/ var / lib / cmon/caディレクトリにあります。また、安全な接続のみを適用する場合は、ユーザーの付与を変更し、ユーザーにREQUIRESSLを追加したことを確認する必要があります。
これらのオプションが使いやすく、MySQL環境の保護に役立つことを願っています。この機能に関してご質問やご提案がございましたら、お気軽にお問い合わせください。