例示する MySql Community Edition は、5.7.11 以降、テーブルベースのデータ暗号化ソリューションをサポートしています。モジュールは keyring_file と呼ばれ、テーブル全体の暗号化をサポートします。この暗号化方法は、実際にはファイル暗号化に基づいています。mysqld がキーを読み取って起動すると、テーブル全体のデータを復号化します。mysql サービスでは、読み取られたデータが復号化されるため、クライアントはそれを認識しません。このキーはローカルに保存され、MySQL サービスにはこのキーの読み取りと書き込みの権限があります。 一般的に、このソリューションはデータベース ファイルが暗号化されているためあまり安全ではありませんが、MySQL サービスのアカウントがある限り、アクセス データは復号化され、暗号化は自動的に解除されます。さらに、復号化キーもローカルに保存されるため、侵入者はそれを持ち去ることができます。このソリューションでは、侵入者がデータベース ファイルをドラッグした後にその内容を読み取れないようにすることしかできません。 MySQL Enterprise Edition の 3 つの追加モジュール MySQL のエンタープライズ バージョンの場合は、他に 3 つの暗号化方式があります。 1.キーリング暗号化ファイル 前に述べたコミュニティ バージョンと似ていますが、追加のキーがある点が異なります。このキーは、データベース キーの暗号化と復号化に使用されます。セキュリティ面では、どちらもほぼ同じです。 2.キーリング_okv キーのローカルストレージと比較して、このモジュールは KMIP を使用してキーにアクセスするため、比較的安全です。 3.キーリング_aws AWS キー管理サービスを統合して、暗号化キーと復号化キーを管理します。キー管理のセキュリティをさらに向上します。 4つの暗号化モジュールでサポートされる暗号化タイプ
まとめると、これら 4 つのソリューションはすべてファイル暗号化およびメモリ復号化ソリューションであり、違いは暗号化および復号化キーの保存方式にあります。 keyring_okv と keyring_aws を使用して、MySQL アカウントのセキュリティを確保し、アカウント権限を厳密に区別することをお勧めします。 他の 2 つは安全性が低くなります。 実装手順 さて、ここで最も単純な keyring_file 展開ソリューションについて簡単に説明します。何らかの理由で暗号化キーが常に生成できるとは限らないため、Windows ではこのソリューションを使用できない可能性があることを事前に指摘しておきます。 1. MySQL 5.7.21の最新バージョンを使用する yum aptなどのツールを使用して最新バージョンのmysqlをインストールするか、ソースコードをダウンロードして自分でコンパイルしてインストールします。 sudo apt で mysql-5.7 をインストールします 2. 暗号化モジュールを有効にする プラグイン keyring_file soname 'keyring_file.so' をインストールします。 mysql> INSTALL PLUGIN keyring_file soname 'keyring_file.so'; クエリは正常、影響を受けた行は 0 行 (0.10 秒) 3. 暗号化キーの保存パスを設定する グローバル keyring_file_data を '/root/mysql-keyring/keyring' に設定します。 mysql> グローバル keyring_file_data を '/var/lib/mysql-keyring/keyring' に設定します。 クエリは正常、影響を受けた行は 0 行 (0.00 秒) 4. 設定を永続的に有効にする 上記の 2 つの手順は一時的なものであり、サービスを再起動すると失敗します。サービスの再起動後に設定が有効になるように、設定を構成ファイルに書き込みます。 [mysqld] 早期プラグインロード=keyring_file.so keyring_file_data=/root/mysql-keyring/keyring 5. キーの保存パスを確認する '%keyring_file_data%' のようなグローバル変数を表示します。 mysql> '%keyring_file_data%' のようなグローバル変数を表示します。 +-------------------+--------------------------------+ | 変数名 | 値 | +-------------------+--------------------------------+ | キーリングファイルデータ | /var/lib/mysql-keyring/keyring | +-------------------+--------------------------------+ セット内の 1 行 (0.00 秒) 6. 有効なモジュールを表示する keyring_file モジュールがロードされているかどうかを確認します。 mysql> プラグインを表示します。 +----------------------------+----------+--------------------+-----------------+---------+ | 名前 | ステータス | タイプ | ライブラリ | ライセンス | +----------------------------+----------+--------------------+-----------------+---------+ | binlog | アクティブ | ストレージ エンジン | NULL | GPL | | mysql_native_password | アクティブ | 認証 | NULL | GPL | | sha256_password | アクティブ | 認証 | NULL | GPL | | パフォーマンス スキーマ | アクティブ | ストレージ エンジン | NULL | GPL | | CSV | アクティブ | ストレージ エンジン | NULL | GPL | | MRG_MYISAM | アクティブ | ストレージ エンジン | NULL | GPL | | MyISAM | アクティブ | ストレージ エンジン | NULL | GPL | | InnoDB | アクティブ | ストレージ エンジン | NULL | GPL | | INNODB_TRX | アクティブ | 情報スキーマ | NULL | GPL | | INNODB_LOCKS | アクティブ | 情報スキーマ | NULL | GPL | | INNODB_LOCK_WAITS | アクティブ | 情報スキーマ | NULL | GPL | | INNODB_CMP | アクティブ | 情報スキーマ | NULL | GPL | | INNODB_CMP_RESET | アクティブ | 情報スキーマ | NULL | GPL | 。 。 。 。 。 。 (N項目を省略) | keyring_file | アクティブ | キーリング | keyring_file.so | GPL | +----------------------------+----------+--------------------+-----------------+---------+ セット内の行数は 45 です (0.00 秒) 7. 既存のテーブルを暗号化する テーブル暗号化を 'Y' に変更します。 mysql> テーブル cc (id int) を作成します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) mysql> テーブル cc 暗号化を 'Y' に変更します。 クエリは正常、影響を受けた行は 0 行 (0.06 秒) レコード: 0 重複: 0 警告: 0 8. 暗号化を解除する テーブル暗号化を 'N' に変更します。 mysql> テーブル cc 暗号化を 'N' に変更します。 クエリは正常、影響を受けた行は 0 行 (0.01 秒) レコード: 0 重複: 0 警告: 0 公式ドキュメント: https://dev.mysql.com/doc/refman/5.7/en/keyring-installation.html 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
シナリオ: 検査文書には n 個の検査詳細があり、検査詳細には n 個の検査項目があります。実装効果...
この記事の例では、参考のためにVueカスタムポップアップ効果の具体的なコードを共有しています。具体的...
MySQL を使用する場合、多くの開発者は一部の列に対して関数計算を実行することが多く、その結果、イ...
1. 関連する技術的なポイントバイト版ヴュー3 ts統合ルーティングvuexを統合するAxiosを統...
シェル スクリプトで電子メールを作成する必要がある場合は、コマンド ラインから電子メールを送信する知...
目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...
目次1. オープンソースの倉庫管理ツール Harbor 2 インストール2.1 DockerとDoc...
目次1. 基本原則2. 特定のコード要約する1. 基本原則まず、生放送エリアを10の部分に分割し(個...
HTML タグには、インライン要素とブロックレベル要素の 2 種類があります。まず、インライン要素と...
1: <a> タグを使用してページにリンクする場合、target 属性の役割は誰もが知っ...
適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...
この記事では、JSカルーセル効果の具体的なコードを実現するための3つの方法を紹介します。具体的な内容...
エンコーディングの理由により、Linux サーバーに中国語のファイルやディレクトリをアップロードまた...
アプリケーションシナリオデータ テーブルでは、アプリケーションは各データがいつ作成されたかを記録する...
ログイン認証にトークンを使用する考え方は次のとおりです。 1. 初めてログインする場合、フロントエン...