SQL監査機能は、実行ユーザー、アクセスIP、操作タイプごとに現在のクラスタのSQL文を検索できるほか、検索結果のエクスポートもサポートしており、セキュリティ監査能力の向上に役立ちます。本記事では、具体的な操作手順について説明します。
注意事項
SQL監査は有料機能です。クラウドプロバイダー、リージョン、課金項目によって料金が異なります。料金の詳細については、SQL監査の課金説明を参照してください。
同一インスタンス内のすべてのテナントのSQL監査ストレージ設定は同じです。ストレージ設定を変更する必要がある場合は、インスタンスページにアクセスしてください。テナントページでは変更できません。
説明
SQL監査機能は現在、MySQLモードとOracleモードのテナントをサポートしています。監査ルールの設定機能(SQLタイプとターゲットデータベースアカウント)は、クラスタバージョンが >= 4.2.5 のインスタンスでのみサポートされます。
ストレージ設定の設定
説明
SQL監査を有効にしたテナントでは、監査データをOB Cloud、カスタムログサービス、またはオブジェクトストレージに保存することができます。
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションバーで、**インスタンス**をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに移動します。
左側のナビゲーションバーで**診断をクリックし、リアルタイム診断タブを選択します(診断**ページにあります)。
ページの中央で**SQL監査**タブをクリックします。
**ストレージ設定**をクリックしてストレージ設定を変更し、ポップアップウィンドウで設定を変更します。
OB Cloud
総ストレージ期間:7日から720日の総ストレージ期間を設定できます。この期間を超えるSQL実行レコードは自動的に削除されます。
カスタムログサービス
説明
-
\n
- SQL監査データをカスタムログサービスにプッシュする機能は、Alibaba Cloudインスタンスでのみサポートされています。 \n
- AccessKey IDとAccessKey Secretには、以下のAPI権限を付与する必要があります:\n
-
\n
- PostLogStoreLogs:Logstoreにログを書き込む \n
- GetLogStore:Logstoreのメタ情報を取得する \n
\n
パラメータ説明プロジェクト(Project) ログサービスのプロジェクト名。 ログストア(Logstore) ログサービスのLogstore名。 AccessKey ID ログサービスへのアクセスIDで、ユーザーを識別するために使用されます。 AccessKey Secret 署名文字列を暗号化するための鍵であり、ログサービスが署名文字列を検証するために使用する秘密鍵です。必ず機密にしてください。 オブジェクトストレージ
説明
- SQL監査データをオブジェクトストレージにプッシュする機能は、Alibaba CloudインスタンスとAWSインスタンスでのみサポートされています。
- SQL監査データは、指定したオブジェクトストレージのBucketに保存されます。
パラメータ説明Bucket オブジェクトストレージのBucket名。 ディレクトリ オブジェクトストレージのBucket内のディレクトリです。複数階層のディレクトリをサポートします。 Access Key ID オブジェクトストレージへのアクセス用AccessKey ID。 Access Key Secret オブジェクトストレージへのアクセス用AccessKey Secret。
転送設定を変更 をクリックすると、保存先および関連パラメータを変更できます。
説明
保存先設定を変更すると、新しい監査データは新しい保存先にプッシュされますが、既存の保存先にあるデータには影響しません。
テナントSQL監査の有効化
OB Cloudデータベースコンソールにログインします。
左側のナビゲーションバーで、**インスタンス**をクリックします。
インスタンスリストで対象のインスタンスを見つけ、インスタンス名をクリックしてインスタンスのダッシュボードに移動します。
左側のナビゲーションバーで**診断をクリックし、リアルタイム診断タブを選択します(診断**ページ内)。
ページ中央の**SQL監査**タブをクリックします。
**SQL監査**タブの左上でテナントを選択します。
**SQL監査タブでSQL監査を有効にする**をクリックします。
ポップアップウィンドウで監査ルールを設定します。
説明
- SQLタイプはデフォルトで全選択されており、すべてのタイプのSQLが記録されます。
- 監査ルールの設定は、ストレージがオブジェクトストレージに設定されている場合にのみサポートされます。
- この機能は、クラスタバージョンがV4.2.5以上のMySQLモードおよびOracleモードのテナントでのみサポートされます。
MySQL
ストレージターゲットがオブジェクトストレージに設定されている場合、監査ルールを設定する必要があります:
パラメータ説明ターゲットデータベースアカウント 監査対象のデータベースアカウントを選択します。すべてのアカウント(現在および将来新規作成されるものを含む)または特定のアカウントを選択できます。 - デフォルトではすべてのアカウントが選択されています
- 特定のアカウントに切り替えると、アカウント選択ダイアログが表示されます。複数選択や検索機能をサポートしています。
SQLタイプ 記録するSQLタイプを選択します。 - データベースバージョンがV4.2.5~4.4.2.1の場合:SQLの大分類でのフィルタリングをサポートしますが、SQLのサブタイプまで展開することはできません。SQLの大分類は、接続、テーブルアクセス、DDL、権限変更です。
- データベースバージョンがV4.4.2.1~4.5.0.0およびV4.6.1.0以上の場合:上記の大分類に加え、各サブタイプまでさらに展開することができます。例えば、テーブルアクセスの下ではSELECT/INSERT/UPDATE/DELETE、DDLの下ではCREATE/ALTER/DROP、権限変更の下ではGRANT/REVOKEなどです。
Oracle
ストレージターゲットがオブジェクトストレージに設定されている場合、監査ルールを設定する必要があります:
パラメータ説明ターゲットデータベースアカウント 監査対象のデータベースアカウントを選択します。すべてのアカウント(現在および将来新規作成されるものを含む)または特定のアカウントを選択できます。 - デフォルトではすべてのアカウントが選択されています
- 特定のアカウントに切り替えると、アカウント選択ダイアログが表示されます。複数選択や検索機能をサポートしています。
SQLタイプ 記録するSQLタイプを選択します。SQLの大分類は、接続、テーブルアクセス、DDL、権限変更です。Oracleテナントの監査ルール自体でSQLステートメントのタイプを指定する必要があり、デフォルトでは各サブタイプまで展開することがサポートされています。例えば、テーブルアクセスの下ではDELETE TABLE/INSERT TABLE/SELECT SEQUENCE/SELECT TABLE/UPDATE TABLE、DDLの下ではINDEX/OUTLINE/PROCEDURE/PROFILE/ROLE/SEQUENCE/SYNONYM/TABLE/TABLESPACE、権限変更の下ではALTER SYSTEM/CLUSTER/SYSTEM AUDIT/SYSTEM GRANT/EXECUTE PROCEDURE/GRANT PROCEDURE/GRANT SEQUENCE/GRANT TABLEなどです。 - サポートされているデータベースバージョン:V4.4.2.1~4.5.0.0およびV4.6.1.0以上。
テナント操作列のアイコンをクリックすると、ルールを変更したりSQL監査を無効にしたりできます。
儲存期間の変更
説明
SQL監査データの保存先がOB Cloudの場合にのみ、保存期間の変更がサポートされます。ストレージターゲットがログサービスまたはオブジェクトストレージに設定されている場合は、該当するプラットフォームに移動して保存設定を変更してください。
**SQL監査タブのテナントリストで、対象テナントの操作列にあるストレージの保存期間を変更する**をクリックします。
ポップアップウィンドウで関連パラメータを設定します:
- オブジェクトの設定:現在のテナント名が表示されます。
- インスタンス内の他のテナントも同時に変更する:オプションです。チェックすると、設定はインスタンス内でSQL監査が有効な他のテナントに同期されます。
- 合計保存期間:7日から720日まで設定可能です。設定された期間を超えるSQL実行レコードは削除されます。
**OK**をクリックします。
SQL監査の停止
**SQL監査タブのテナントリストで、対象テナントの操作列にあるSQL監査を無効にする**をクリックします。
ポップアップウィンドウのテキストボックスにcloseと入力し、**閉じる**をクリックします。
SQL監査レコードの表示とダウンロード
説明
SQL監査データがOB Cloudに保存されている場合にのみ、ページ上で直接監査レコードを表示およびダウンロードできます。保存先がログサービスまたはオブジェクトストレージに設定されている場合は、該当するプラットフォームにアクセスしてデータを表示またはダウンロードしてください。
**SQL監査タブで、展開する**をクリックします。
条件に基づいてフィルタリングします。以下の項目はすべてオプションです。
フィルタオプション説明データベース 対象テナント内で表示したいデータベースを1つ以上選択します。 ノード 表示したいノードを1つ以上選択します。 キーワード 対象SQL文に含まれる可能性のあるキーワードを選択します。複数のキーワードを入力でき、「and」または「or」の関係を指定できます。 ユーザー名 表示したいテナント名を1つ以上入力します。 操作タイプ ドロップダウンリストから、表示したい操作タイプを1つ以上選択します。 クライアントIP 表示したいクライアントIPを入力します。 スキャンされたレコード 表示したいスキャンレコード数の範囲を入力します。 実行時間 (ms) 表示したいSQL文の実行時間の範囲を入力します。 時間範囲 SQLの実行時間範囲を選択します。時間範囲の幅は6時間を超えてはなりません。 クエリ結果で以下の情報を確認します: SQL文、データベース、ユーザー、クライアントIP、操作タイプ、実行結果、リクエスト時間、実行時間 (ms)、スキャンされた行、更新された行数。
右上のアイコンをクリックして、クエリ結果リストをダウンロードします。
説明
現在、最大100件の監査レコードのダウンロードをサポートしています。クエリレコード数が100件を超える場合、ダウンロード時にページのソート順序に従って最初の100件のレコードのみがダウンロードされます。