MySQLを使用したことがある場合は、データベースのバックアップを作成した可能性があります。データベースのバックアップを作成した場合、それらを保護する方法について少なくとも一度は考えたことがあるでしょう。このブログ投稿では、まさにそれを行う方法を説明します。
MySQLバックアップを保護する必要があるのはなぜですか?
MySQLバックアップを保護する方法を説明する前に、そもそもなぜそれらを保護する必要があるのかを説明する必要があります。 MySQLバックアップを「保護」するとはどういう意味ですか? MySQLのバックアップはデフォルトで安全であるはずですよね?残念ながら、すべてが見た目ほど単純なわけではありません。安全なMySQLバックアップを作成して維持するには、次のことを考慮する必要があります。
-
MySQLバックアップを安全に作成
-
MySQLバックアップを安全に保存する
-
MySQLバックアップを安全に転送する
言うのは簡単ですが、正しい方向に導くための一般的なアドバイスを提供します。
-
mysqldumpなどを使用してMySQLバックアップを安全に取得するには、ユーザー名とパスワードを入力することを検討してください。 my.cnf内のMySQLユーザー。ホームディレクトリに.my.cnfファイルを作成し、そこにユーザー名とパスワードを保存してから、-defaults-extra-fileオプションを使用して、グローバルオプションファイルの後にこのファイルを読み取るようにMySQLに指示することもできます。
[mysqldump] user=demo_user password=demo_password
これにより、mysqldumpの実行時にMySQLパスワードを入力する必要がなくなります。my.cnf内にユーザー名とパスワードを入力することで、DBA以外のユーザーがパスワードを確認できないようにします。
-
mysqldump-secureを調べることを検討してください。これはmysqldumpのPOSIX準拠のラッパースクリプトです。暗号化機能を備えています。このツールは、データベースを個別のファイルとしてバックアップできます。データベースは、バックアップからブラックリストに登録することもできます。このツールはMySQLデータベースを暗号化することもでき、何か問題が発生した場合に自己検証することもできます。これにより、何が起こったのか、どのように修正するのかがわかります。したがって、mysqldumpの代替手段を探している場合は、必ずそれを提供することを検討してください。試してみてください。
-
MySQLまたはMariaDBデータベースインスタンスのバックアップを作成したら、暗号化を検討してください。データは組織にとって最も貴重な資産の1つである可能性があり、データを暗号化することで、データが適切に保護されていることを確認できます。ありがたいことに、MySQLバックアップの暗号化はそれほど複雑ではなく、ローカルファイルの暗号化やオンザフライでのバックアップの暗号化など、いくつかの方法で実行できます。バックアップのローカルコピーを暗号化するには、MySQLに保存されているデータのバックアップを取り、OpenSSL(パスワードを使用するパスワードに置き換えます)などを使用して暗号化します。
$ openssl enc -aes-256-cbc -salt -in backup.tar.gz -out backup.tar.gz.enc -k password
バックアップは、以下を実行することで復号化できます:
$ openssl aes-256-cbc -d -in backup.tar.gz.enc -out backup.tar.gz -k password
バックアップをオンザフライで暗号化することも検討できます。これを行うには、一般に、バックアップの生成時に暗号化を実装する必要があります(つまり、バックアップを生成し、圧縮して暗号化します)。 mysqldumpを使用してMySQLでこれを行う方法は次のとおりです(バックアップはencrypted_backup.xb.encと呼ばれます):mysqldump --all-databases --single-transaction --triggers --routines | gzip | openssl enc -aes-256-cbc -k password > encrypted_backup.xb.enc
ClusterControlを使用してバックアップを暗号化することもできます。バックアップの最終段階で[圧縮を使用する]および(または)[暗号化を有効にする]チェックボックスをオンにするだけで完了です。 。はい、それと同じくらい簡単です!
mysql_secure_installation(またはMariaDBを使用している場合はmariadb_secure_installation)と呼ばれるシェルスクリプトを調べることもできます。このスクリプトを使用すると、次のことが可能になります。
-
MySQLのルートアカウントのパスワードを設定します。
-
ローカルホストの外部からアクセスできるルートアカウントを削除します。
-
匿名ユーザーがアクセスできる匿名ユーザーアカウントとテストデータベースを削除します。
ClusterControlを使用してMySQLまたはMariaDBをデプロイする場合、これはCommunity Editionで自由に実行できますが、デプロイメントプロセスがこれらのセキュリティ対策を自動的に処理します。
MySQLバックアップの保護に関しては、実行できることのリストはかなり長いです。このブログ投稿で、MySQLまたはMariaDBのバックアップを保護するために何ができるかについてのアイデアが得られたことを願っています。一般に、バックアップは、mysqldumpが呼び出されたとき、またバックアップをローカルまたはオンで暗号化するときにパスワードを監視できないようにすることで保護できます。 the-fly。