Azure Database for MySQL の接続およびネットワークの概念 - フレキシブル サーバー
この記事では、Azure Database for MySQL フレキシブル サーバー インスタンスへの接続を制御する概念について説明します。 Azure Database for MySQL フレキシブル サーバーが Azure でサーバーを安全に作成してアクセスするためのネットワークの概念について詳しく説明します。
Azure Database for MySQL フレキシブル サーバーでは、サーバーへの接続を構成する 3 つの方法がサポートされています。
Azure Database for MySQL - フレキシブル サーバーのパブリック ネットワーク アクセス フレキシブル サーバーにはパブリック エンドポイントを介してアクセスします。 パブリック エンドポイントは、パブリックに解決できる DNS アドレスです。 "許可されている IP アドレス" という語句は、サーバーへのアクセス許可を付与することが選択された IP の範囲を意味します。 これらのアクセス許可は、ファイアウォール規則と呼ばれます。
プライベート エンドポイント プライベート エンドポイントを使用すると、仮想ネットワーク VNet 上のホストは Azure Private Link を介してデータに安全にアクセスできるようになります。
Azure Database for MySQL - フレキシブル サーバーの仮想ネットワーク統合を使用したプライベート ネットワーク アクセス フレキシブル サーバーを 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 フレキシブル サーバーでは、トランスポート層セキュリティ (TLS) 暗号化を備えた Secure Sockets Layer (SSL) を使用する、クライアント アプリケーションの 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 | レガシ アプリケーションで暗号化接続がサポートされているが、TLS バージョン < 1.2 が必要な場合は、暗号化接続を有効にすることができますが、アプリケーションでサポートされている 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 のバージョンを特定する方法を確認します。
関連するコンテンツ
- Azure portal を使用した Azure Database for MySQL - フレキシブル サーバーの仮想ネットワークの作成と管理
- Azure CLI を使用して Azure Database for MySQL - フレキシブル サーバー用の仮想ネットワークを作成して管理する
- Azure portal を使用して Azure Database for MySQL - フレキシブル サーバーのファイアウォール規則を管理する
- Azure CLI を使用して、Azure Database for MySQL - フレキシブル サーバーのファイアウォール規則を管理します。
- Azure portal から Azure Database for MySQL フレキシブル サーバーのプライベート リンクを構成する