セキュリティルールの[アクセス申請]タブを使用して、データベースインスタンス、データベース、テーブル、カラム、行、プログラマブルオブジェクト、およびデータ所有者に対する権限申請の承認ワークフローを定義します。ルールは DMS のドメイン特化言語 (DSL) で記述され、ユーザーが権限チケットを提出する際にチェックポイントとして評価されます。
仕組み
ユーザーが権限チケットを提出すると、DMS はそのチケットを各チェックポイントで定義されたルールに対して評価します。すべての該当ルールに合格した場合にのみ、チケットは次のステップに進みます。各チェックポイントは特定のチケットタイプに対応しており、カスタムルールが一致しない場合に適用されるデフォルトの承認テンプレートが設定されています。
以下の表は、権限タイプ、チェックポイント、およびデフォルトテンプレートの関係を示しています:
| 権限タイプ | チェックポイント | デフォルト承認テンプレート |
|---|---|---|
| インスタンス(パフォーマンス、ログイン) | インスタンス権限申請の検証 | [インスタンス権限申請] デフォルト承認テンプレート |
| データベース | データベース権限申請の検証 | [DB権限申請] デフォルト承認テンプレート |
| テーブル | テーブル権限申請の検証 | テーブル権限申請デフォルト承認テンプレート |
| プログラマブルオブジェクト | プログラマブルオブジェクトの検証 | [プログラマブルオブジェクト権限申請] デフォルト承認テンプレート |
| 機密カラム | 機密フィールドのアプリケーション検証 | [フィールド権限申請] デフォルト承認テンプレート |
| 行 | ライン権限申請の確認 | 行権限申請デフォルト承認テンプレート |
| データ所有者(現在の所有者がいない) | 所有者申請の検証 | [所有者申請] デフォルト承認テンプレート(リソースに所有者がいない場合) |
| データ所有者(所有者がいる) | 所有者申請の検証 | [所有者申請] デフォルト承認テンプレート(リソースに所有者がいる場合) |
各チェックポイントのデフォルトテンプレートは、特定のリスクレベルでそのチェックポイントにカスタムルールが設定されていない場合に適用されます。デフォルトをオーバーライドするには、該当するチェックポイント下にセキュリティルールを作成してください。
前提条件
開始する前に、以下のいずれかのロールを持っていることを確認してください:
DMS 管理者
データベース管理者(DBA)
セキュリティ管理者
基本概念
ファクターは、DMSがセキュリティルールを評価する際にコンテキストを提供する事前定義された変数です。ファクター名には、プレフィックス@fac.が使用されます。以下のファクターは、[アクセス適用] タブで利用可能です。
| ファクター | 説明 |
|---|---|
@fac.env_type | DEV や PRODUCT などの環境タイプの表示名。詳細については、「インスタンスの環境タイプを変更する」をご参照ください。 |
@fac.schema_name | データベースの名称。 |
@fac.perm_apply_duration | 申請される権限の持続時間(単位:時間)。 |
@fac.column_security_level | カラムのセキュリティレベル。有効な値: sensitive、confidential、inner。 |
@fac.perm_type | 申請される権限タイプのリスト(例:['CORRECT','EXPORT'])。有効な値: QUERY、EXPORT、CORRECT、LOGIN、PERF。正確な権限セットを評価するには、@fun.listEqualIgnoreOrder 関数を使用します。たとえば、@fun.listEqualIgnoreOrder(@fac.perm_type, ['QUERY']) は、クエリ権限のみが申請されているかどうかをチェックします。 |
操作 は、ルールの条件が満たされた場合に DMS が実行する処理を定義します。操作名はプレフィックス @act. を使用します。以下の操作が [アクセス申請] タブで利用可能です:
| アクション | 説明 |
|---|---|
@act.forbid_submit_order | チケットの提出をブロックします。 |
@act.do_not_approve | 承認テンプレートの ID を指定します。詳細については、「承認プロセスを設定する」をご参照ください。 |
@act.choose_approve_template | |
@act.choose_approve_template_with_reason |
DSL 構文の詳細については、「セキュリティルールの DSL 構文」をご参照ください。
セキュリティルールのテンプレート
DMS では、一般的な承認シナリオ向けに事前定義されたテンプレートが提供されています。テンプレートを選択して起点とし、要件に合わせて DSL を編集してください。
| チェックポイント | 利用可能なテンプレート |
|---|---|
| 所有者申請の検証 | すべての所有者申請をブロック<br>本番環境での所有者申請をブロック<br>テスト環境での所有者申請を自動承認 |
| データベース権限申請の検証 | すべてのデータベース権限申請をブロック<br>本番環境でのデータベース権限申請をブロック<br>テスト環境でのデータベース権限申請を自動承認 |
| テーブル権限申請の検証 | すべてのテーブル権限申請をブロック<br>本番環境でのテーブル権限申請をブロック<br>テスト環境でのテーブル権限申請を自動承認 |
| プログラマブルオブジェクトの検証 | すべてのプログラマブルオブジェクト申請をブロック<br>本番環境でのプログラマブルオブジェクト申請をブロック<br>テスト環境でのプログラマブルオブジェクト申請を自動承認 |
| 機密フィールド申請の検証 | すべての機密カラム権限申請をブロック<br>機密カラム申請を特定の承認プロセスにルーティング |
| ライン権限申請の検証 | すべての行権限申請をブロック<br>本番環境での行権限申請をブロック<br>行権限申請を特定の承認プロセスにルーティング |
セキュリティルールの作成
DMS コンソール V5.0 にログインします。
-
左上隅の
アイコンにポインターを合わせ、 を選択します。説明通常モードで DMS コンソールを使用している場合は、上部ナビゲーションバーから を選択します。
左上隅の
アイコンにポインターを合わせ、すべての機能 > セキュリティおよび仕様 > セキュリティルール を選択します。通常モードでは、上部ナビゲーションバーから セキュリティおよび仕様 > セキュリティルール を選択します。
セキュリティルール タブで、管理対象のセキュリティルールセットを見つけ、操作 列の [編集] をクリックします。
詳細 ページで、左側ペインの [アクセス申請] タブをクリックします。
操作 の横にある [ルールの作成] をクリックします。
[ルールの作成 - アクセス申請] ダイアログボックスで、以下のパラメーターを設定します:
パラメーター 必須 説明 チェックポイント はい このルールをアタッチするチェックポイント。『仕組み』で一覧表示されている 7 つのチェックポイントから選択します。 テンプレートデータベース いいえ 起点として使用する事前定義テンプレート。チェックポイントを選択した後、[テンプレートデータベースから読み込み] をクリックして利用可能なテンプレートを参照します。ルール名および DSL は自動的に入力されます。 ルール名 はい ルールを説明する名称。テンプレートから読み込むと、自動的に入力されます。 ルール DSL はい 条件および操作を定義する DSL 式。テンプレートから読み込むと、自動的に入力されます。構文の詳細については、「セキュリティルールの DSL 構文」をご参照ください。 [送信] をクリックします。
ルールはデフォルトで [無効] 状態で作成されます。操作 列の [有効化] をクリックし、次に [OK] をクリックして有効化します。
次のステップ
セキュリティルールの DSL 構文 — カスタム条件および操作を記述するための完全な DSL 構文について学習します。
承認プロセスの設定 —
@act.choose_approve_templateで参照される承認テンプレートを設定します。データ変更 — インスタンス権限申請のデフォルト承認テンプレートを変更します。