すべてのプロダクト
Search
ドキュメントセンター

PolarDB:ホワイトリストルールの設定

最終更新日:May 24, 2024

PolarDBコンソールで、クラスターのホワイトリストルールを作成、削除、有効化、無効化、または変更できます。 このトピックでは、ホワイトリストルールとホワイトリストルールの設定方法について説明します。

ホワイトリストルール

ホワイトリストルールを設定すると、ホワイトリストルールに追加されていないSQL文はブロックまたは警告されます。 これにより、ビジネスのアカウントを保護できます。 このアカウントはビジネス関連のSQL文のみを実行し、ビジネスに関係のないSQL文は実行しません。 実際の業務では複数のSQL文が使用される場合があり、1つのSQL文を入力するには一定の時間が必要です。 効率とユーザーエクスペリエンスを向上させるために、PolarProxyには次のホワイトリストモードがあります。

  • トレーニングモード: PolarProxyはSQL文のみを収集し、SQL文をブロックしたりアラートを生成したりしません。

  • 検出モード: PolarProxyは、ステートメントを検出したときにホワイトリストルールに追加されないSQLステートメントを記録します。 ただし、PolarProxyはこのようなSQL文をブロックしません。

  • 保護モード: PolarProxyがステートメントを検出したときにホワイトリストルールに追加されないSQLステートメントを記録およびブロックします。

PolarDBコンソールで複数のホワイトリストルールを設定することもできます。 個別のアカウントを使用して、各ホワイトリストルールをトレーニングできます。 検出モードまたは保護モードを有効にした後、各ホワイトリストルールが適用されるアカウントを指定することもできます。

ホワイトリストルールの作成

  1. にログインします。PolarDBコンソール.

  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側のナビゲーションウィンドウで、設定と管理 > セキュリティ管理.

  5. の左上隅にSQLファイアウォールタブをクリックします。追加.

  6. では、ルールの作成選択したモードに基づいて、次の表に示すパラメーターを設定します。

    表 1 ホワイトリストルールのパラメーター

    パラメーター

    必須

    説明

    基本情報

    ルール名

    ルールの名前を設定します。 名前の条件は次のとおりです。

    • 数字と文字を含めることができます。

    • 長さは最大30文字です。

    説明

    任意

    ルールの説明。

    説明

    説明の長さは最大64文字です。

    Endpoint

    現在のルールが適用されるエンドポイント。

    設定

    ルールタイプ

    ルールのタイプ。 [ホワイトリストルール] を選択します。

    現在のモード

    任意

    ルールのモード。 有効な値:

    • トレーニングモード: SQL文を収集しますが、SQL文をブロックしたり、アラートを生成したりしません。

    • 検出モード: 検出されたときにホワイトリストルールに追加されないSQL文を記録しますが、そのようなSQL文はブロックしません。

    • 保護モード: ステートメントが検出されたときにホワイトリストルールに追加されないSQLステートメントを記録およびブロックします。

    データベースアカウント名

    任意

    ルールが適用されるデータベースアカウントの名前。 有効な値:

    • すべてのアカウント: このルールは、クラスター内のすべてのデータベースアカウントに適用されます。 [すべてのアカウント] オプションの右側のフィールドは空のままにすることができます。

    • 含む: このルールは、指定されたデータベースアカウントにのみ適用されます。 [含める] オプションの右側のフィールドに、少なくとも1つのデータベースアカウント名を入力する必要があります。 複数のデータベースアカウント名はコンマ (,) で区切ります。

    • 含まない: このルールは、指定されたデータベースアカウントを除くクラスター内のすべてのデータベースアカウントに適用されます。 除外オプションの右側のフィールドに、少なくとも1つのデータベースアカウント名を入力する必要があります。 複数のデータベースアカウント名はコンマ (,) で区切ります。

    説明

    データベースアカウント名は、次のいずれかの形式である必要があります。

    • ユーザー名。 例: user

    • ユーザー名 @ IPアドレス。 例: user@10.0.0.0

  7. クリックOK.

  8. 選択したルールのモードに基づいて手順を実行します。

    • [現在のモード] パラメーターを [トレーニングモード] に設定した場合、次の手順を実行します。

      1. 事前に定義したデータベースアカウント名を使用して、指定したデータベースエンドポイントに接続します。

      2. このアカウントを使用して、ホワイトリストルールに追加されたビジネス関連のSQL文を実行します。 PolarProxyはSQL文をパラメータ化し、データベースのホワイトリストルールに文を保存します。 例:

        update t set k = 2ここでid = 2;

        パラメータ化されたSQL文:

        更新t set k = ? どこid = ? 

        ステートメント内の疑問符 (?) は任意の値を示します。 パラメータ化されたSQL文は、t set k = ? を更新ます。 どこid = ? はホワイトリストルールに保存されます。

      説明

      ビジネス関連のSQLステートメントの前に、次のhintコマンドを追加して、ステートメントをパラメーター化し、パラメーター化されたステートメントをホワイトリストルールに追加することもできます。hint(/* store_to_whitelist */)

    • [現在のモード] パラメーターを [検出モード] に設定した場合、次の手順を実行します。

      1. 事前に定義したデータベースアカウント名を使用して、指定したデータベースエンドポイントに接続します。

      2. このアカウントを使用して、ビジネス関連のSQL文を実行します。 PolarProxyは、ホワイトリストルールに追加されていないSQL文をチェックします。 例:

        update t set k = 2ここでk = 2

        SQL文がホワイトリストルールに追加されていない場合、PolarProxyはSQL文を許可して記録します。 次の結果が表示されます。

        クエリOK、影響を受ける0行 (0.03秒)
        一致した行: 1変更: 0警告: 0 
    • [現在のモード] パラメーターを [保護モード] に設定した場合、次の手順を実行します。

      1. 事前に定義したデータベースアカウント名を使用して、指定したデータベースエンドポイントに接続します。

      2. このアカウントを使用して、ビジネス関連のSQL文を実行します。 例:

        select id from t where id = 1;

        SQL文がホワイトリストルールに追加されていない場合、PolarProxyはSQL文を記録およびブロックします。 次の結果が表示されます。

        ERROR 1141 (HY000): このSQLはSQLファイアウォールによって拒否されます。 ユーザー 'xzh' @ 'x.x.x' からデータベース 'xzh' へのアクセスが拒否されました: このSQLはホワイトリストwl_testにありません。
説明
  • ビジネスを更新するたびに、ビジネス関連のSQL文をトレーニングする必要があります。 それ以外の場合、SQL文は実行できません。

  • PolarDBコンソールで複数のホワイトリストルールを作成することもできます。 個別のアカウントを使用して、各ホワイトリストルールをトレーニングできます。 検出モードまたは保護モードを有効にした後、各ホワイトリストルールが適用されるアカウントを指定することもできます。

ホワイトリストルールの有効化または無効化

  1. にログインします。PolarDBコンソール.

  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側のナビゲーションウィンドウで、設定と管理 > セキュリティ管理.

  5. On theSQLファイアウォールタブで、管理するルールを見つけてオンにする有効化 /無効化.

    説明

    ルールリストで複数のルールを選択し、[有効化] または [無効化] をクリックして、ルールを一括有効化または無効化できます。

  6. では、有効化または無効にするメッセージ, クリックOK.

ホワイトリストのルールの変更

  1. にログインします。PolarDBコンソール.

  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側のナビゲーションウィンドウで、設定と管理 > セキュリティ管理.

  5. [SQLファイアウォール] タブで、管理するルールを見つけ、[操作] 列の [変更] をクリックします。 [ルールの変更] ダイアログボックスで、ビジネス要件に基づいてパラメーターを変更します。 パラメーターの詳細については、「ホワイトリストルールの追加」をご参照ください。

    説明

    ルールを変更するとき、ルール名を変更することはできません。

  6. クリックOK.

説明

PolarDBコンソールのデータベースのルールでパラメータ化されたSQL文を変更することはできません。 proxy_auditing.sql_listテーブルからパラメーター化されたSQLステートメントを削除してから、ステートメントを再度追加する必要があります。

ホワイトリストルールの削除

  1. にログインします。PolarDBコンソール.

  2. 左上隅で、クラスターがデプロイされているリージョンを選択します。

  3. クラスターを見つけて、そのIDをクリックします。

  4. 左側のナビゲーションウィンドウで、設定と管理 > セキュリティ管理.

  5. On theSQLファイアウォールタブで、管理するルールを見つけて、をクリックします。削除で、アクション列を作成します。

    説明

    ルールリストで複数のルールを選択し、[削除] をクリックしてルールを一括削除できます。

  6. では、削除メッセージ, クリックOK.