Azure Database for MySQL の接続およびネットワークの概念 - フレキシブル サーバー

適用対象: Azure Database for MySQL - フレキシブル サーバー

この記事では、Azure Database for MySQL フレキシブル サーバーのインスタンスへの接続を制御するための概念について説明します。 Azure Database for MySQL フレキシブル サーバーが Azure でサーバーを安全に作成してアクセスするためのネットワークの概念について詳しく説明します。

Azure Database for MySQL フレキシブル サーバーでは、サーバーへの接続を構成する 3 つの方法がサポートされています。

  • パブリック アクセス フレキシブル サーバーにはパブリック エンドポイントを介してアクセスします。 パブリック エンドポイントは、パブリックに解決できる DNS アドレスです。 "許可されている IP アドレス" という語句は、サーバーへのアクセス許可を付与することが選択された IP の範囲を意味します。 これらのアクセス許可は、ファイアウォール規則と呼ばれます。

  • プライベート エンドポイント プライベート エンドポイントを使用すると、仮想ネットワーク VNet 上のホストは Azure Private Link を介してデータに安全にアクセスできるようになります。

  • プライベート アクセス (VNet 統合)Azure Virtual Network にフレキシブル サーバーをデプロイできます。 Azure の仮想ネットワークでは、非公開の、セキュリティで保護されたネットワーク通信が提供されます。 仮想ネットワーク内のリソースでは、プライベート IP アドレスを通した通信が可能です。

注意

(VNet 統合を介して) パブリックまたはプライベート アクセスを使用してサーバーをデプロイした後は、接続モードを変更することはできません。 ただし、パブリック アクセス モードでは、必要に応じてプライベート エンドポイントを有効または無効にしたり、必要な場合にパブリック アクセスを無効にしたりすることができます。

ネットワーク オプションを選択する

以下の機能が必要な場合は、パブリック アクセス (許可された IP アドレス) とプライベート エンドポイントの方法を選択します。

  • 仮想ネットワークをサポートせずに Azure リソースから接続する
  • VPN または ExpressRoute によって接続されていない Azure 外部のリソースから接続する
  • フレキシブル サーバーにはパブリック エンドポイントを介してアクセスでき、許可されたインターネット リソースを介してアクセスできます。 必要に応じて、パブリック アクセスを無効にすることができます。
  • 仮想ネットワーク (VNet) 上のホストからサーバーにアクセスするようにプライベート エンドポイントを構成する機能

以下の機能が必要な場合は、プライベート アクセス (VNet 統合) を選択します。

  • プライベート エンドポイントを構成することなく、同じ仮想ネットワークまたはピアリングされた仮想ネットワーク内の Azure リソースからフレキシブル サーバーに接続する
  • VPN または ExpressRoute を使用して Azure 以外のリソースからフレキシブル サーバーに接続する
  • パブリック エンドポイントがない

プライベート アクセスまたはパブリック アクセスのどちらのオプションを使用するかに関係なく、次の特性が適用されます。

  • 許可された IP アドレスからの接続は、有効な資格情報を使って、Azure Database for MySQL フレキシブル サーバーのインスタンスに対して認証を行う必要があります。
  • ネットワーク トラフィックに対して接続の暗号化を使用できる
  • サーバーには完全修飾ドメイン名 (fqdn) があります。 接続文字列の hostname プロパティには、IP アドレスではなく FQDN を使用することをお勧めします。
  • どちらのオプションでも、データベース レベルやテーブル レベルではなく、サーバー レベルでアクセスが制御されます。 MySQL のロールのプロパティを使用して、データベース、テーブル、およびその他のオブジェクトのアクセスを制御します。

サポートされない仮想ネットワークのシナリオ

  • パブリック エンドポイント (またはパブリック IP あるいは DNS) - 仮想ネットワークにデプロイされたフレキシブル サーバーに、パブリック エンドポイントを設けることはできません
  • フレキシブル サーバーを仮想ネットワークおよびサブネットにデプロイした後、それを別の仮想ネットワークまたはサブネットに移動することはできません。
  • フレキシブル サーバーをデプロイした後は、フレキシブル サーバーによって使用されている仮想ネットワークを別のリソース グループまたはサブスクリプションに移動できません。
  • サブネットにリソースを配置した後で、そのサブネットのサイズ (アドレス空間) を増やすことはできません。
  • サーバーを作成した後で、パブリックからプライベート アクセスに変更することはできません。 ポイントインタイム リストアを使用することをお勧めします。

Note

カスタム DNS サーバーを使っている場合は、DNS フォワーダーを使って、Azure Database for MySQL フレキシブル サーバーのインスタンスの FQDN を解決する必要があります。 詳細については、独自の DNS サーバーを使用する名前解決に関する記事を参照してください。

hostname

ネットワーク オプションに関係なく、Azure Database for MySQL フレキシブル サーバーのインスタンスに接続する際には、接続文字列で完全修飾ドメイン名 (FQDN) <servername>.mysql.database.azure.com を使うことをお勧めします。 サーバーの IP アドレスが静的のままであることは保証されていません。 FQDN を使用すると、接続文字列を変更せずに済みます。

ホスト名として FQDN を使用する例は "hostname = servername.mysql.database.azure.com" です。 可能な場合は、"hostname = 10.0.0.4" (プライベート アドレス) や "hostname = 40.2.45.67" (パブリック アドレス) を使用しないでください。

TLS と SSL

Azure Database for MySQL フレキシブル サーバーでは、Secure Sockets Layer (SSL) とトランスポート層セキュリティ (TLS) 暗号化を使って、クライアント アプリケーションを Azure Database for MySQL フレキシブル サーバー インスタンスに接続できます。 TLS は、データベース サーバーとクライアント アプリケーションの間の暗号化されたネットワーク接続を保証する業界標準のプロトコルです。これを使用することで、ユーザーはコンプライアンス要件に準拠できます。

Azure Database for MySQL フレキシブル サーバーでは、トランスポート層セキュリティ (TLS 1.2) を使った暗号化された接続が既定でサポートされ、TLS 1.0 と TLS 1.1 を使った着信接続はすべて既定で拒否されます。 フレキシブル サーバーでの、暗号化された接続の強制または TLS のバージョンの構成は、構成および変更できます。

次に、フレキシブル サーバーで使用できる SSL と TLS の設定のさまざまな構成を示します。

重要

TLS 1.0 および TLS 1.1 プロトコルのサポートの変更により、2024 年 9 月上旬以降、新しいサーバーでは TLS 1.0 または 1.1 の使用が許可されなくなり、既存のサーバーはこれらのバージョンにダウングレードできなくなります。 2024 年 9 月中旬から、現在 TLS 1.0 または 1.1 を使っているすべてのサーバーの TLS 1.2 への必須のアップグレードが開始されます。 このアップグレード プロセスは、2024 年 9 月末までに完了する予定です。 お客様には、9 月末までにアプリケーションが TLS 1.2 と完全に互換性があることを確認することを強くお勧めします。

シナリオ サーバー パラメーターの設定 説明
SSL を無効にする (暗号化された接続) require_secure_transport = OFF レガシ アプリケーションで Azure Database for MySQL フレキシブル サーバーのインスタンスへの暗号化された接続がサポートされていない場合、require_secure_transport=OFF を設定することで、フレキシブル サーバーへの暗号化された接続の強制を無効化できます。
TLS バージョン < 1.2 で SSL を強制する (2024 年 9 月に非推奨になる予定) require_secure_transport = ON および tls_version = TLS 1.0 または TLS 1.1 レガシ アプリケーションで暗号化された接続がサポートされているが、バージョン 1.2 より前の TLS が必要な場合は、暗号化された接続を有効にできますが、アプリケーションでサポートされている TLS のバージョン (v1.0 または v1.1) での接続を許可するようにフレキシブル サーバーを構成します
TLS バージョン 1.2 で SSL を強制する (既定の構成) require_secure_transport = ON および tls_version = TLS 1.2 これは、フレキシブル サーバーに推奨される既定の構成です。
TLS バージョン 1.3 で SSL を強制する (MySQL v8.0 以降でサポート) require_secure_transport = ON および tls_version = TLS 1.3 これは、新しいアプリケーションの開発に便利であり、推奨されます

Note

フレキシブル サーバーでの SSL 暗号の変更はサポートされていません。 tls_version が TLS バージョン 1.2 に設定されている場合、FIPS 暗号スイートが既定で強制されます。 バージョン 1.2 以外の TLS の場合、SSL 暗号は、MySQL Community のインストールに付属している既定値に設定されます。

SSL/TLS を使用した接続をレビューし、使用している TLS のバージョンを特定する方法を確認します。

次のステップ