MySQL での暗号化について

完了

転送中のデータ

Azure Database for MySQL では、TLS 1.2 を使用した暗号化された接続がサポートされます。 このプロトコルは既定で有効になっていて、tls_version サーバー パラメーターによって管理されます。 このパラメーターを使用すると、サーバーが許可する最小 TLS バージョンを適用できます。 たとえば、TLS 1.2 と 1.3 を許可する場合など、複数のバージョンを選択できます。 このパラメーターを変更する場合は、サーバーを再起動して変更を適用する必要があります。

サーバー パラメーター tls_version のページを示すスクリーンショット。

暗号化された接続がクライアント アプリケーションでサポートされていない場合、Azure Database for MySQL で暗号化された接続を無効にする必要があります。 Azure portal で MySQL サーバーに移動し、[設定][サーバー パラメーター] を選択します。 [検索] ボックスに「require_secure_transport」と入力します。 このパラメーターでは、クライアント接続で安全な接続を使用する必要があるかどうかを定義します (つまり、SSL over TCP/IP あるいは、Unix 上でソケット ファイルを、または Windows 上で共有メモリを使用する接続)。 クライアント アプリケーションで、暗号化された接続がサポートされていない場合は、require_secure_transportOFF に設定します。

メモ

require_secure_transportOFF に設定した場合でも、暗号化された接続がクライアントから行われれば、接続は受け入れられます。

クライアント アプリケーションで暗号化された接続を使用するには、Azure portal でパブリック SSL 証明書をダウンロードします。 MySQL サーバーに移動し、左側のメニューから [ネットワーク] を選択します。 上部のメニューから、[SSL 証明書のダウンロード] を選択します。 アプリケーションが SSL 経由でデータベースに安全に接続できるようにするには、ご利用のアプリケーションがホストされているローカル環境またはクライアント環境に証明書ファイルを保存します。

保存データ

保存データの暗号化は、InnoDB ストレージ エンジンでサポートされています。 暗号化はテーブルスペース レベルで設定され、InnoDB ではテーブルごとのファイル、全般、およびシステムのテーブルスペースの暗号化がサポートされます。 MySQL バージョン 8.0 では、サーバー パラメーター default_table_encryption を確実に ON に設定します (既定では OFF)。 暗号化されたテーブルの場合は、再実行ログを暗号化することもできます。 この機能は、既定では無効になっています。

テーブルをファイル単位のテーブルスペースで暗号化するには:

CREATE TABLE myEncryptedTable (myID INT) ENCRYPTION = 'Y';

その後、テーブルを変更する場合は、暗号化句を指定する必要があります。

ALTER TABLE myEncryptedTable ENCRYPTION = 'Y';

Azure Database for MySQL では、Microsoft のマネージド キーを使用して、保存データの暗号化が既定でサポートされています。 データとバックアップはディスク上で常に暗号化され、これを無効にすることはできません。