📣
TiDB Cloud Premium はパブリックプレビュー中です。エンタープライズワークロード向けの無制限のスケーリング、即時の弾力性、高度なセキュリティを提供します。このページは自動翻訳されたものです。原文はこちらからご覧ください。

TiDB Cloud Premiumデータベース監査ログ



TiDB Cloudは、実行されたSQL文など、データベースへのユーザーアクセスアクティビティを記録する監査ログ機能を提供します。

組織のユーザーアクセスポリシーやその他の情報セキュリティ対策の有効性を評価するには、データベース監査ログを定期的に分析することがセキュリティ上のベストプラクティスです。

監査ログ機能はデフォルトでは無効になっています。TiDB Cloud Premiumインスタンスを監査するには、まず監査ログを有効にしてから、監査フィルタールールを設定する必要があります。

前提条件

  • あなたはTiDB Cloud Premiumインスタンスを使用しています。

  • 組織内でOrganization Ownerロールが付与されている必要があります。付与されていない場合、 TiDB Cloudコンソールでデータベース監査関連のオプションは表示されません。

監査ログを有効にする

TiDB Cloudは、 TiDB Cloud Premiumインスタンスの監査ログをクラウドストレージサービスに記録することをサポートしています。データベース監査ログを有効にする前に、インスタンスが配置されているクラウドプロバイダーでクラウドストレージサービスを設定してください。

AWS 上の TiDB の監査ログを有効にする

AWSの監査ログを有効にするには、以下の手順を実行してください。

ステップ1. Amazon S3バケットを作成する

TiDB Cloudが監査ログを書き込む宛先として、組織が所有するAWSアカウント内のAmazon S3バケットを指定してください。

詳細については、AWS ユーザーガイドの汎用バケットの作成を参照してください。

ステップ2. Amazon S3へのアクセスを設定する

  1. 監査ログを有効にするTiDB Cloud PremiumインスタンスのTiDB CloudアカウントIDと外部IDを取得してください。

    1. TiDB Cloudコンソールで、My TiDBページに移動します。

    2. 対象インスタンスの名前をクリックして概要ページに移動し、左側のナビゲーションペインでSettings > DB Audit Loggingをクリックします。

    3. DB Audit Loggingページで、右上隅にあるEnableをクリックします。

    4. Database Audit Log Storage Configurationダイアログで、 AWS IAM Policy Settingsセクションを探し、後で使用するためにTiDB Cloud Account IDTiDB Cloud External IDを記録してください。

  2. AWS マネジメントコンソールで、 IAM > Access Management > Policiesに移動し、 s3:PutObject書き込み専用権限を持つストレージバケット ポリシーが存在するかどうかを確認します。

    • はいの場合、後で使用するために、一致したストレージバケットポリシーを記録してください。

    • そうでない場合は、 IAM > Access Management > Policies > Create Policyに移動し、次のポリシー テンプレートに従ってバケット ポリシーを定義します。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:PutObject", "Resource": "<Your S3 bucket ARN>/*" } ] }

      テンプレートでは、 <Your S3 bucket ARN>は監査ログファイルが書き込まれる S3 バケットの Amazon リソース ネーム (ARN) です。S3 バケットのPropertiesタブに移動し、 Bucket Overview領域で ARN の値を取得できます。 "Resource"フィールドでは、ARN の後に/*を追加する必要があります。たとえば、ARN がarn:aws:s3:::tidb-cloud-testの場合、 "Resource"フィールドの値を"arn:aws:s3:::tidb-cloud-test/*"に設定する必要があります。

  3. IAM > Access Management > Rolesに移動し、以前に記録したTiDB Cloudアカウント ID と外部 ID に対応する信頼エンティティを持つロールが既に存在するかどうかを確認します。

    • はいの場合、後で使用するために一致した役割を記録してください。
    • そうでない場合は、 Create roleをクリックし、信頼エンティティタイプとしてAnother AWS accountを選択してから、 Account IDフィールドにTiDB CloudアカウントIDの値を入力します。次に、 Require External IDオプションを選択し、External IDフィールドにTiDB Cloud外部IDの値を入力します。
  4. IAM > Access Management > Rolesで、前の手順で確認したロール名をクリックしてSummaryページに移動し、以下の手順を実行します。

    1. Permissionsタブで、 s3:PutObject書き込み専用アクセス許可を持つ記録済みポリシーがロールに添付されているかどうかを確認します。添付されていない場合は、 Attach Policiesを選択し、必要なポリシーを検索して、 Attach Policyをクリックします。
    2. Summaryページに戻り、Role ARN値をクリップボードにコピーしてください。

ステップ3.監査ログを有効にする

TiDB Cloudコンソールで、 TiDB CloudアカウントIDと外部IDの値を取得したDatabase Audit Log Storage Configurationダイアログに戻り、以下の手順を実行します。

  1. Bucket URIフィールドに、監査ログファイルが書き込まれるS3バケットのURIを入力してください。

  2. Bucket Regionドロップダウンリストから、バケットが配置されているAWSリージョンを選択します。

  3. [Role ARN]フィールドに、ステップ2. Amazon S3へのアクセスを設定する

  4. Test Connection and Nextをクリックして、 TiDB Cloudがバケットにアクセスして書き込みできるかどうかを確認します。

    The connection is successfulと表示されます。そうでない場合は、アクセス設定を確認してください。

  5. インスタンスの監査ログを有効にするには、 Enableをクリックしてください。

    TiDB Cloudは、指定されたインスタンスの監査ログをAmazon S3バケットに書き込む準備ができています。

データベース監査ログ設定を構成する

クラウドプロバイダーのストレージを設定した後、データベース監査ログ設定の手順を完了します。

  1. ログファイルのローテーションポリシーを設定します。

    ファイルサイズまたは時間間隔に基づいて監査ログファイルをローテーションできます。いずれかの条件が満たされると、TiDB Cloud は新しい監査ログファイルを生成します。

  2. ログのリダクションを設定します。

    ログのリダクションはデフォルトで有効になっています。有効にすると、SQL テキスト内の機密情報は監査ログで ? に置き換えられます。

  3. Save and Enable をクリックして、設定を適用し、監査ログを有効にします。

監査フィルタルールを指定します

監査ログを有効にした後、どのユーザーアクセスイベントをキャプチャして監査ログに書き込むかを制御するために、監査フィルタルールを指定する必要があります。フィルタルールが指定されていない場合、 TiDB Cloudは何もログに記録しません。

インスタンスの監査フィルタルールを指定するには、次の手順を実行します。

  1. DB Audit Loggingページで、 Log Filter RulesセクションのAdd Filter Ruleをクリックして、監査フィルタルールを追加します。

  2. Add Filter Rule ダイアログで、次の項目を設定します:

    • Filter Name: フィルタルールの名前を入力します。
    • SQL User: SQL ユーザーを <user>@<host> 形式で入力します。ユーザー名とホスト名では、% を使用して 0 文字以上の任意の文字に一致させることができ、_ を使用してちょうど 1 文字に一致させることができます。@ 記号と <host> は省略可能です。
    • Filter Events: ログに記録するイベントを選択します。サポートされているフィルタイベントについては、監査フィルタイベント を参照してください。
  3. Confirm をクリックしてフィルタルールを追加します。

監査ログを確認する

TiDB Cloudはデフォルトではデータベース監査ログファイルをストレージサービスに保存するため、ストレージサービスから監査ログ情報を読み取る必要があります。

TiDB Cloudの監査ログは、インスタンスID、内部ID、およびログ作成日が完全修飾ファイル名に組み込まれた読み取り可能なテキストファイルです。

例えば、 13796619446086334065/tidb-5m5z34/tidb-audit-2022-04-21T18-16-29.529.logのようになります。この例では、 13796619446086334065はインスタンス ID を示し、 tidb-5m5z34は内部 ID を示します。

監査ログを無効にする

インスタンスの監査を停止したい場合は、インスタンスのページに移動し、 Settings > Audit Settingsをクリックして、右上隅の監査設定をDisableに切り替えます。

監査フィルタイベント

次の表は、データベース監査ログのすべてのイベントクラスを示しています。

イベントクラス説明親クラス
CONNECTION接続ハンドシェイク、接続、切断、接続リセット、ユーザー変更など、接続に関連するすべての操作を記録します-
CONNECTすべての接続ハンドシェイク操作を記録しますCONNECTION
DISCONNECTすべての切断操作を記録しますCONNECTION
CHANGE_USERすべてのユーザー変更操作を記録しますCONNECTION
QUERYデータのクエリまたは変更時に発生するエラーを含む、すべての SQL文操作を記録します-
TRANSACTIONBEGINCOMMITROLLBACK など、トランザクションに関連するすべての操作を記録しますQUERY
EXECUTEEXECUTE文のすべての操作を記録しますQUERY
QUERY_DMLINSERTREPLACEUPDATEDELETELOAD DATA を含む、DML文のすべての操作を記録しますQUERY
INSERTINSERT文のすべての操作を記録しますQUERY_DML
REPLACEREPLACE文のすべての操作を記録しますQUERY_DML
UPDATEUPDATE文のすべての操作を記録しますQUERY_DML
DELETEDELETE文のすべての操作を記録しますQUERY_DML
LOAD DATALOAD DATA文のすべての操作を記録しますQUERY_DML
SELECTSELECT文のすべての操作を記録しますQUERY
QUERY_DDLDDL文のすべての操作を記録しますQUERY
AUDITシステム変数の設定やシステム関数の呼び出しを含む、TiDB Cloud データベース監査の設定に関連するすべての操作を記録します-
AUDIT_FUNC_CALLTiDB Cloud データベース監査に関連するシステム関数の呼び出しに関するすべての操作を記録しますAUDIT
AUDIT_SET_SYS_VARシステム変数の設定に関するすべての操作を記録しますAUDIT

監査ログフィールド

TiDB Cloudは、監査ログ内の各データベースイベントレコードに対して、以下のフィールドを提供します。

一般情報

すべての監査ログレコードには、以下のフィールドが含まれています。

フィールド説明
ID監査記録の一意の識別子。
EVENT監査記録のイベントクラス。複数のイベントクラスはカンマで区切られます( , )。
USER操作を実行したユーザーの名前。
ROLES操作実行時にユーザーに割り当てられた役割。
CONNECTION_IDユーザーの接続を識別する識別子。
TABLES操作中にアクセスされたテーブル。
STATUS_CODE操作のステータスコード。 1は成功、 0は失敗を示します。
REASON操作のエラーメッセージ。エラーが発生した場合にのみ記録されます。

SQL文情報

イベントクラスがQUERYまたはQUERYのサブクラスである場合、監査ログには次のフィールドが含まれます。

フィールド説明
CURRENT_DB現在使用しているデータベースの名前。
SQL_TEXT実行されたSQL文。監査ログのマスキングが有効になっている場合は、マスキングされた文が記録されます。
EXECUTE_PARAMSEXECUTE文に渡されるパラメータ。イベントクラスにEXECUTEが含まれ、かつ編集が無効になっている場合にのみ記録されます。
AFFECTED_ROWSSQL文によって影響を受けた行数。イベントクラスにQUERY_DMLが含まれている場合にのみ記録されます。

接続情報

イベントクラスがCONNECTIONまたはCONNECTIONのサブクラスである場合、監査ログには次のフィールドが含まれます。

フィールド説明
CURRENT_DB現在のデータベースの名前。イベントクラスにDISCONNECTが含まれている場合は記録されません。
CONNECTION_TYPE接続タイプ(ソケット、Unixソケット、SSL/TLSなど)。
PID現在の接続のプロセスID。
SERVER_VERSION接続されているTiDBサーバーのバージョン。
SSL_VERSION使用されているSSLのバージョン。
HOST_IP接続されたTiDBサーバーのIPアドレス。
HOST_PORT接続されているTiDBサーバーのポート番号。
CLIENT_IPクライアントのIPアドレス。
CLIENT_PORTクライアントのポート。

監査操作情報

イベントクラスがAUDITまたはAUDITのサブクラスである場合、監査ログには次のフィールドが含まれます。

フィールド説明
AUDIT_OP_TARGETTiDB Cloudデータベース監査設定変更の対象オブジェクト。
AUDIT_OP_ARGSTiDB Cloudデータベース監査設定で使用される引数が変更されます。

監査ログの制限

TiDB Cloud Premium では、監査ログが時系列順に書き込まれることを保証していません。最新のイベントを確認するには、すべてのログファイルを確認する必要がある場合があります。ログを時系列順に並べ替えるには、各監査レコードのTIMEフィールドを使用してください。

このページは役に立ちましたか?