セキュリティ機能について説明する

完了

Azure Database for MySQL - フレキシブル サーバーには、データと操作を保護するように設計されたいくつかの機能が用意されています。 これらの各機能を見てみましょう。

ネットワーク

Azure Database for MySQL – フレキシブル サーバーにより、Azure Virtual Network (VNet) だけでなくパブリック アクセスのデータベース接続を保護するための堅牢なファイアウォール設定が提供されます。 MySQL フレキシブル サーバー接続には、パブリック アクセス、プライベート アクセス、プライベート リンクの 3 つの設定があります。 いずれの場合も、接続は引き続きサーバーで認証する必要があります。

パブリック アクセスは、IP アドレス範囲の許可リストによってインターネット経由でアクセスできるパブリックに解決可能な DNS アドレスを提供します。 既定では、許可されている IP アドレスはありません。 IP アドレスは、作成時または作成後に追加できます。 任意の Azure IP アドレス (他のリージョンの他の顧客サブスクリプションを含む) からのアクセスを許可することもできます。

プライベート アクセスでは、委任されたサブネットを使用して MySQL フレキシブル サーバーがホストされ、その VNet またはピアリングされた VNet 内から解決可能な DNS アドレスが提供されます。 これにより、仮想ネットワーク インフラストラクチャのみにデータベース アクセスがロックされます。 ネットワーク トラフィックをより正確にフィルター処理するように、ネットワーク セキュリティ グループ (NSG) ファイアウォール規則を設定できます。 プライベート アクセスを使用すると、同じ VNet 内から、またはピアリングを使って別の VNet から、さらには ExpressRoute または VPN 接続を使用してオンプレミスから MySQL フレキシブル サーバーに安全に接続できます。

プライベート リンクでは、MySQL フレキシブル サーバーに直接接続するための VNet サブネット内のプライベート IP アドレス エンドポイントが提供されます。 Azure Private Link では基本的に、他の VNet リソースと同様に IP アドレスを介してプライベート VNet 内に Azure サービスが提供されます。 複数のプライベート エンドポイントを作成できます (たとえば、接続しているアプリケーションまたは Azure PaaS リソースごとに 1 つ)。 NSG ファイアウォール規則と組み合わせることで、プライベート リンクでは、データベースにアクセスできるサービスをきめ細かく制御できます。

Microsoft Defender for Cloud

Microsoft Defender for Cloud では、データベースで通常とは異なる有害な可能性のあるアクティビティが監視されます。 Defender for Cloud は、セキュリティ監視を構築または管理する必要なく、潜在的な脅威に対処するためのアドオン プランとして提供されます。 Defender for Cloud では、AWS Aurora と RDS 上の MySQL に加えて、Azure Database for MySQL - フレキシブル サーバーでマルチクラウドを利用できます。 Defender for Cloud では、PostgreSQL と MariaDB もサポートされています。

Defender for Cloud によって、次のようなデータベースの脅威が検出されます。

  • ブルート フォース攻撃: 異常に多いサインインの失敗、および多くの失敗後のサインインの成功。
  • 通常とは異なるサインイン パターン: ユーザーのログインが 2 か月ぶり以上である場合。
  • 通常とは異なるサインインの場所: ユーザーが通常とは異なる Azure データベース、その他のクラウド プロバイダー、または疑わしいとフラグ付けされた IP からログインする場合。

Defender for Cloud によって、検出アラートが Azure portal に電子メールで送信されます。 アラートには次のものが含まれます。

  • 疑わしいアクティビティの詳細。
  • 関連する MITRE ATT&CK (敵対的戦術、テクニック、共通知識)。
  • 攻撃を調査して軽減するための提案。
  • Microsoft Sentinel を使用して調査するその他のオプション。

認証

Azure Database for MySQL には、次の 2 つの認証モードがあります。MySQL 認証 (ユーザー名/パスワード) と Microsoft Entra ID 認証。 両方を同時に有効にすることができます。

Microsoft Entra ID 認証では、Microsoft Entra ID によって提供される ID を使用して、MySQL フレキシブル サーバーに対する ID ベースの認証を有効にします。 これにより、データベースとその他の Microsoft サービスのユーザー管理が一元化されます。

既定では、MySQL フレキシブル サーバーは MySQL 認証のみ (ユーザー名/パスワード) を使用するように設定されています。 この設定を変更して、Microsoft Entra ID 認証のみを使用するか (データベース ユーザーなし)、またはマネージド ID と MySQL 認証を組み合わせることができます。

Microsoft Entra ID 認証を使用する場合、元の MySQL 管理者と Microsoft Entra ID 管理者の 2 つの管理者アカウントがあります。 Microsoft Entra ID 管理者はユーザーまたはユーザー グループにすることができます。 管理者がグループの場合、グループのメンバーは Microsoft Entra ID 認証を管理できます。 管理者グループは、MySQL ユーザーやアクセス許可を直接更新する必要なく、Microsoft Entra ID でのユーザー管理を一元化するため、管理が容易になります。 Microsoft Entra ID 管理者は、1 人のユーザーでも 1 つのユーザー グループでも、1 人の Microsoft Entra ID 管理者のみを構成できます。

次の図は、認証を管理する 2 つのモードを示しています。

MySQL Admins と Microsoft Entra Admins for MySQL がどのようにユーザーを作成し、Azure Database for MySQL - フレキシブル サーバーを管理できるかを示す図。

ユーザーまたはアプリケーションが Microsoft Entra ID を使用して MySQL フレキシブル サーバーに接続することを試みると、サインインを許可するトークンが発行されます。 ID は、名前やその他の属性ではなく、一意の Microsoft Entra ユーザー ID を介してデータベース ユーザーに関連付けられます。

データの暗号化

MySQL フレキシブル サーバーによって、転送中のデータが暗号化されます。 既定では、サーバーはトランスポート層セキュリティ (TLS) 1.2 で接続し、暗号化されていない接続や非推奨の TLS 1.0 および 1.1 プロトコルを使用する接続を拒否する必要があります。 暗号化された接続を無効にしたり (レガシ アプリケーションは暗号化をサポートしていない場合があります)、1.2 より前のバージョンを許可したり、新しいアプリケーション開発での推奨設定である TLS 1.3 を使用したりできます。

既定では、Azure Database for MySQL - フレキシブル サーバーによって、対称 AES 256 ビット データ暗号化キー (DEK) を使用して、保存データ (クエリの実行中に作成されたバックアップおよび一時ファイルを含む) が暗号化されます。 カスタマー マネージド キー (CMK) を使用すると、独自のキーを使って (BYOK)、サービスの DEK を暗号化することで別の暗号化レイヤーを追加できます。

BYOK を使用すると、データの暗号化とキーのライフサイクル (作成、アップロード、ローテーション、削除) を完全に制御できます。 キー ライフサイクルを管理することで、キー ローテーションを会社のポリシーに合わせ、セキュリティ チーム、DBA、システム管理者の責任を分離できます。

CMK を有効にするには、データベースをユーザー割り当てマネージド ID (UMI) にリンクし、Azure Key Vault に格納されているキーを指定して使用する必要があります。 サーバーのコピーを作成すると、そのコピーが暗号化され、マネージド ID とキーを既存のレプリカに追加することもできます。