このトピックでは、ApsaraDB for OceanBase コンソールでインスタンスの SQL ファイアウォールを設定する方法について説明します。
背景情報
SQL ファイアウォールは、データベース セキュリティを保護するために特別に設計されたソフトウェアシステムです。 データベースに出入りする SQL 文を監視およびフィルタリングすることにより、SQL インジェクション攻撃やデータベースを標的とするその他の悪意のあるアクティビティから防御します。 SQL インジェクションは一般的なネットワーク攻撃手法です。攻撃者は悪意のある SQL コードをクエリ文に挿入して、データベースをだましてデータの盗難、データの変更、データベース構造の破壊など、不正な操作を実行させます。
SQL ファイアウォールルールを策定することにより、ApsaraDB for OceanBase はデータベース SQL 文をリアルタイムで監視およびインターセプトできます。これにより、データベースのセキュリティ機能が大幅に向上し、データベースをそのような攻撃から保護します。
前提条件
インスタンスのデータベースプロキシのバージョンが V4.3.2 以降であること。 データベースプロキシの詳細については、「データベースプロキシサービスの概要」をご参照ください。
考慮事項
次のルールに注意してください。
SQL ファイアウォールは、データベースプロキシサービスを再起動する必要なく、ホットローディングで有効になり、すべてのセッションで新しく開始されたすべてのトランザクション数に対してリアルタイムで有効になります。 オンラインのビジネストラフィックに誤って影響を与えないように、慎重に進んでください。
SQL ファイアウォールが有効になっている場合、データベースのパフォーマンスに約 10% の影響があります。
SQL ファイアウォールの管理
ApsaraDB for OceanBase コンソール にログオンします。
左側のナビゲーションウィンドウで、[インスタンス] をクリックします。
インスタンスリストで、ターゲット クラスタインスタンスの名前をクリックして、[クラスタインスタンス ワークスペース] ページに移動します。
左側のナビゲーションウィンドウで、[セキュリティ設定] をクリックします。
[セキュリティ設定] ページの [SQL ファイアウォール] タブをクリックして、既存の SQL ファイアウォールルールのリストを表示します。
SQL ファイアウォールルールを管理できます。
SQL ファイアウォールルールを作成する
[SQL ファイアウォール] タブで、[ルールを作成] をクリックします。
表示されるダイアログボックスで、次のパラメーターを構成します。
パラメーター
説明
ルール名
SQL ファイアウォールルールの名前。 2 ~ 32 文字で、漢字、数字、英字、アンダースコア、ハイフンのみ使用できます。
ルールの説明
今後のリファレンスのためのルールの簡単な説明。
テナント
ルールが有効になるテナント。
データベースプロキシ
データベースプロキシ情報。
データベースアカウント
ルールが有効になるアカウント。 空白のままにした場合、ルールはすべてのデータベースアカウントに有効になります。
ルール タイプ
ブロックルール
モード
検査モード: SQL タイプをログに記録しますが、実際にはブロックしません
保護モード: SQL をブロックしてログに記録します
ファイアウォールルール
特定のタイプの SQL をブロックする: SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、または REPLACE を選択できます。
WHERE 条件のない SQL をブロックする: SELECT、UPDATE、または DELETE を選択できます。
カスタム SQL をブロックする: インターセプトする必要がある SQL 文をカスタマイズできます。
たとえば、ORDER BY または GROUP BY を使用している SQL 文をインターセプトする場合は、テキストボックスに次のように入力します:
ORDER\s+BY|GROUP\s+BY
ルールを有効にする
チェックボックスをオンにすると、ルールは正常に保存された直後に有効になります。 チェックボックスをオンにしない場合、ルールの構成は保持され、後で編集および有効にすることができます。
[OK] をクリックします。
SQL ファイアウォールルールを有効にする
[SQL ファイアウォール] タブで、ターゲットルールを見つけ、[アクション] 列の [編集] をクリックします。
表示されるダイアログボックスで、[ルールを有効にする] チェックボックスをオンにします。
SQL ファイアウォールルールを編集する
[SQL ファイアウォール] タブで、ターゲットルールを見つけ、[アクション] 列の [編集] をクリックします。
表示されるダイアログボックスで、次のパラメーターを再構成します。
パラメーター
説明
ルール名
SQL ファイアウォールルールの名前。2 ~ 32 文字で、漢字、数字、英字、アンダースコア、ハイフンのみ使用できます。
ルールの説明
今後のリファレンスのためのルールの簡単な説明。
テナント
ルールが有効になる テナント。
データベースプロキシ
データベースプロキシ情報。
データベースアカウント
ルールが有効になるアカウント。 空白のままにした場合、ルールはすべてのデータベースアカウントに有効になります。
ルール タイプ
ブロックルール
モード
検査モード: SQL タイプをログに記録しますが、実際にはブロックしません
保護モード: SQL をブロックしてログに記録します
ファイアウォールルール
特定のタイプの SQL をブロックする: SELECT、UPDATE、INSERT、DELETE、CREATE、DROP、ALTER、TRUNCATE、RENAME、または REPLACE を選択できます。
WHERE 条件のない SQL をブロックする: SELECT、UPDATE、または DELETE を選択できます。
カスタム SQL をブロックする: インターセプトする必要がある SQL 文をカスタマイズできます。
たとえば、ORDER BY または GROUP BY を使用している SQL 文をインターセプトする場合は、テキストボックスに次のように入力します:
ORDER\s+BY|GROUP\s+BY
ルールを有効にする
チェックボックスをオンにすると、ルールは正常に保存された直後に有効になります。 チェックボックスをオンにしない場合、ルールの構成は保持され、後で編集および有効にすることができます。
[OK] をクリックします。
SQL ファイアウォールルールを削除する
[SQL ファイアウォール] タブで、ターゲットルールを見つけ、[アクション] 列の [削除] をクリックします。
ポップアップダイアログボックスで削除を確認します。
[削除] をクリックします。