1 Oracle Label Securityの概要
Oracle Label Securityでは、表の各行へのファイングレイン・アクセスが提供されています。
- Oracle Label Securityについて
Oracle Label Securityは、表の特定の各行および特定のアプリケーション・ユーザーに割り当てられたラベルを使用して表の各行の表示を制御します。 - Oracle Label Securityの利点
Oracle Label Securityには、行レベルの管理の制御に関していくつかの利点があります。 - Oracle Label Securityを使用する権限を持つユーザー
Oracle Label Securityをデータベースに登録すると、登録プロセスによってLBAC_DBA
ロールを持つLBACSYS
という名前の管理ユーザーが作成されます。 - Oracle Label Security管理者の業務
Oracle Label Security管理者には、パッケージベースおよびロールベースの権限のセットがあります。 - Oracle Label Securityのコンポーネント
Oracle Label Securityポリシーには、標準のコンポーネント・セットがあります。 - Oracle Label Securityのアーキテクチャ
Oracle Label Securityは、Oracle Database認証を使用して行レベルのセキュリティを実行します。 - Oracle Label Securityの管理インタフェース
Oracle Label Securityの開発および管理タスクは、2つのインタフェースのどちらでも実行できます。 - Oracle Label Securityのデモンストレーション・ファイル
olsdemo.sql
ファイルでは、Oracle Label Securityの使用に関するデモンストレーションが提供されています。 - Oracle Label Securityと他のOracle製品との併用
Oracle Label Securityは、Oracle Internet Directory (OID)と統合したり、マルチテナント環境に統合することができます。
1.1 Oracle Label Securityについて
Oracle Label Securityは、表の特定の各行および特定のアプリケーション・ユーザーに割り当てられたラベルを使用して表の各行の表示を制御します。
Oracle Label Securityは、行ラベルをユーザーのラベル認可と行ラベルを比較して、認可されたユーザーのみに簡単に機密情報を制限できるようにします。このように、異なる認可レベル(たとえばマネージャや営業担当者など)を持つユーザーが、表内の特定のデータ行にアクセスできます。1つ以上のアプリケーション表にOracle Label Securityポリシーを適用できます。Oracle Label Securityの設計は、Oracle Virtual Private Database (VPD)に似ています。ただし、VPDとは異なり、Oracle Label Securityは即時利用可能なアクセス調整機能、データ・ディクショナリ表およびポリシーベースのアーキテクチャを提供し、コーディングのカスタマイズを排除して、複数のアプリケーションで使用できる一貫性のあるラベル・ベースのアクセス制御モデルを提供します。
Oracle Label Securityは、政府および防衛組織に見られるマルチレベル・セキュリティ(MLS)要件に基づいています。
Oracle Label Securityソフトウェアはデフォルトでインストールされますが、自動的には有効になりません。Oracle Label Securityは、SQL*Plusで、またはOracle Database Configuration Assistant (DBCA)を使用して有効化できます。Oracle Label Securityのデフォルトの管理者は、ユーザーLBACSYS
です。Oracle Label Securityを管理するには、コマンドライン・レベルまたはOracle Enterprise Manager Cloud Controlで一連のPL/SQLパッケージおよびスタンドアロン・ファンクションを使用できます。Oracle Label Securityポリシーに関する情報を調べるには、ALL_SA_*
、DBA_SA_*
またはUSER_SA_*
データ・ディクショナリ・ビューを問い合せることができます。
親トピック: Oracle Label Securityの概要
1.2 Oracle Label Securityの利点
Oracle Label Securityには、行レベルの管理の制御に関していくつかの利点があります。
-
行レベルのデータ分類を有効にし、データ分類とユーザー・ラベル認可またはセキュリティ・クリアランスに基づいて即時利用可能なアクセス調整を提供します。
-
ラベル認可またはセキュリティ・クリアランスをデータベース・ユーザーとアプリケーション・ユーザーの両方に割り当てることができます。
-
データ分類ラベルとユーザー・ラベル認可を定義および格納するためのAPIとグラフィカル・ユーザー・インタフェースの両方を提供します。
-
Oracle Database VaultおよびOracle Advanced Security Data Redactionと統合され、セキュリティ・クリアランスをDatabase Vaultコマンド・ルールとData Redactionポリシー定義の両方で使用できるようにします。
親トピック: Oracle Label Securityの概要
1.3 Oracle Label Securityを使用する権限を持つユーザー
Oracle Label Securityをデータベースに登録すると、登録プロセスによってLBAC_DBA
ロールを持つLBACSYS
という名前の管理ユーザーが作成されます。
このロールを、Oracle Label Securityポリシーの管理を担当するデータベース・ユーザーに付与できます。また、Oracle Label Security管理者に、Oracle Label Securityパッケージに対するEXECUTE
権限と、個々のOracle Label Securityポリシーを管理する権限を付与できます。
他のOracle管理ユーザー・アカウントと同様に、LBAC_DBA
には2つのアカウントを保持することをお薦めします。一方のアカウントはその名前付きユーザーのプライマリ・アカウントであり、日常的に使用されます。他方のアカウントは、プライマリ・アカウントのパスワードを忘れてしまいリセットする必要がある場合に備えたバックアップ・アカウントとして使用されます。
親トピック: Oracle Label Securityの概要
1.4 Oracle Label Security管理者の業務
Oracle Label Security管理者には、パッケージベースおよびロールベースの権限のセットがあります。
これらの権限を次に示します。
-
パッケージ固有の権限: パブリックの
SA_SESSION
およびSA_UTL
パッケージを除くほとんどのOracle Label Security PL/SQLパッケージには、EXECUTE
権限が必要です。その他のパッケージは、SA_AUDIT_ADMIN
、SA_COMPONENTS
、SA_LABEL_ADMIN
、SA_POLICY_ADMIN
、SA_SYSDBA
およびSA_USER_ADMIN
です。 -
ロールベースの権限: Oracle Label Security固有のロールは次のとおりです。
-
ポリシーの作成時に作成されてユーザーに付与される
policy
_DBA
ロール。たとえば、ols_hr_pol
というポリシーの場合、作成されるロールの名前はols_hr_pol_DBA
です。このロールは、サイトのOracle Label Securityポリシーのアクセス制御の粒度のレイヤーを追加します。 -
SA_SYSDBA
パッケージにEXECUTE
権限を提供するLBAC_DBA
ロール。このロールは、LBACSYS
ユーザー・アカウントによって所有されます。SA_SYSDBA
パッケージにより、ユーザーはOracle Label Securityポリシーを作成、変更、有効化、無効化および削除できます。
-
Oracle Label SecurityパッケージのEXECUTE
権限付与をpolicy
_DBA
ロールの付与と組み合せて使用して、さらに業務を分離できます。パッケージは様々なタスクに基づいて分類されます。たとえば、SA_COMPONENTS
およびSA_LABEL_ADMIN
パッケージに対するEXECUTE
権限を1人のユーザーまたは1つ以上のロールに付与してラベル定義を管理し、SA_USER_ADMIN
に対するEXECUTE
を別のユーザーまたはロールに付与してユーザー・ラベルと権限を管理できます。これらのユーザーまたはロールの両方に、それらが責任を持つポリシーに対するpolicy
_DBA
ロールを付与する必要もあります。このようにして、異なるユーザーが責任を持つポリシーの異なる側面の管理にそれらのユーザーが責任を持つことができます。たとえば、ユーザーpsmith
はols_hr_pol
ポリシーのラベル定義に責任を持ち、tjones
はols_oe_pol
ポリシーのラベル定義に責任を持つことができます。ただし、ユーザーpsmith
はols_oe_pol
ポリシーのラベル定義を変更できず、tjones
はols_hr_pol
ポリシーのラベル定義を変更できません。
親トピック: Oracle Label Securityの概要
1.5 Oracle Label Securityのコンポーネント
Oracle Label Securityポリシーには、標準のコンポーネント・セットがあります。
これらのコンポーネントは次のとおりです。
-
ラベル。 データおよびユーザー、ユーザーとプログラム・ユニットの認証のラベルは、保護されている特定のオブジェクトへのアクセスを制御します。ラベルは、次の要素で構成されています。
-
レベル。レベルにより、行に割り当てる機密性のタイプ(たとえば、
SENSITIVE
やHIGHLY SENSITIVE
など)が指定されます。レベルは必須です。 -
区分。(オプション)データは、同じレベル(たとえばPublic、ConfidentialおよびSecretなど)でも、会社内の別々のプロジェクト(たとえばACME MergerやIT Securityなど)に属すことができます。区分はこの例ではプロジェクトのことで、より厳密なアクセス制御を定義できます。コンパートメントは行政環境でよく使用されます。
-
グループ。(オプション)グループは、データを所有する組織またはデータにアクセスする組織を識別します(たとえば、UK、US、Asia、Europeなど)。グループは商業環境と行政環境の両方で使用され、柔軟性が高いことからコンパートメントのかわりに使用されることもあります。
-
-
ポリシー。 ポリシーは、これらのラベル、ルール、認可および保護された表に関連付けられた名前です。
たとえば、ユーザーがアプリケーション表のSELECT
権限を持っているとします。図1-1に示すように、ユーザーがSELECT
文を実行すると、Oracle Label Securityは選択された各行を評価して、このユーザーがユーザーに割り当てられた権限とラベルおよび行のラベルを使用してアクセスできるかどうかを決定します。Oracle Label Securityを設定して、UPDATE
、DELETE
、INSERT
文でもセキュリティ・チェックを行うことができます。
親トピック: Oracle Label Securityの概要
1.6 Oracle Label Securityのアーキテクチャ
Oracle Label Securityは、Oracle Database認証を使用して行レベルのセキュリティを実行します。
図1-2に、Oracle Label Securityでデータがアクセスされる方法とラベル・セキュリティ・チェックの順序を示します。
このシナリオでは、次のアクションが実行されます。
-
Oracle Databaseセッションのアプリケーション・ユーザーは、SQLリクエストを送信して表を問い合せます。
-
Oracle Databaseは、表に対して
SELECT
文を実行するためにユーザーのDAC (データ・アクセス制御) 権限をチェックします。 -
ユーザーが適切な権限を持っている場合、Oracle DatabaseはいずれかのOracle Virtual Private Database (VPD)ポリシーが表に添付されているかどうかをチェックします。
-
Oracle Databaseは、表に割り当てられているOracle Label Securityポリシーがあるかどうかをチェックします。
-
Oracle Label Securityは、個々の行に割り当てられたラベルをユーザーのラベル認可と比較して、アクセスを許可または拒否します。セッション・ラベルは、ユーザーに割り当てられたラベル認可に基づいています。
親トピック: Oracle Label Securityの概要
1.7 Oracle Label Securityの管理インタフェース
Oracle Label Securityの開発および管理タスクは、2つのインタフェースのどちらでも実行できます。
- Oracle Label Securityのパッケージ
Oracle Label Securityのパッケージには、管理を容易にするための直接的なコマンドライン・インタフェースが用意されています。 - Oracle Enterprise Manager Cloud Control
Oracle Label Securityの管理には、Oracle Enterprise Manager Cloud Control Webインタフェースを使用できます。
親トピック: Oracle Label Securityの概要
1.7.1 Oracle Label Securityのパッケージ
Oracle Label Securityのパッケージでは、簡単に管理できるように、直接のコマンドライン・インタフェースを提供します。
表1-1に、使用可能なOracle Label Security管理パッケージを示します。
表1-1 Oracle Label Securityの管理パッケージ
パッケージ | 用途 |
---|---|
|
Oracle Label Securityポリシーの作成、変更および削除。 |
|
ポリシーのレベル、区分およびグループの定義。 |
|
ラベルの作成など、標準的なラベルのポリシー管理タスクの実行。 |
|
スキーマおよび表へのポリシーの適用。 |
|
レベル、区分およびグループに関するユーザー認証とプログラム・ユニットの権限の管理。ユーザー権限も管理します。 「SA_USER_ADMIN.SET_USER_PRIVS」および「SA_USER_ADMIN.SET_PROG_PRIVS」を参照 |
|
管理タスクと権限使用の監査オプションの設定。 |
|
管理者によって設定された認可の範囲内のラベルをセッション中に変更。 |
|
セッション・セキュリティ属性の現在の値に関する情報を数値ラベル値として戻すためにPL/SQLプログラム内で使用するように設計されたユーティリティ・ファンクションのセット。 |
1.7.2 Oracle Enterprise Manager Cloud Control
Oracle Label Securityの管理には、Oracle Enterprise Manager Cloud Control Webインタフェースを使用できます。
図1-3に、Oracle Enterprise Managerインタフェースを示します。
図1-3 Enterprise Managerを使用したOracle Label Securityポリシーの構成
「図1-3 Enterprise Managerを使用したOracle Label Securityポリシーの構成」の説明
1.8 Oracle Label Securityのデモンストレーション・ファイル
olsdemo.sql
ファイルでは、Oracle Label Securityの使用に関するデモンストレーションが提供されています。
このファイルには、提供されたパッケージを使用してOracle Label Securityポリシーを作成および開発する方法が示されています。このスクリプトは、ORACLE_HOME/rdbms/demo
ディレクトリからインストールできます。
親トピック: Oracle Label Securityの概要
1.9 他のOracle製品でのOracle Label Securityの動作
Oracle Label Securityは、Oracle Internet Directory (OID)と統合したり、マルチテナント環境に統合することができます。
- Oracle Label SecurityとOracle Internet Directoryとの統合
Oracle Label SecurityをOracle Internet Directoryと統合して使用するサイトでは、ラベル・セキュリティの操作と管理を非常に効率的に行うことができます。 - マルチテナント環境におけるOracle Label Security統合
Oracle Label Securityは、マルチテナント環境で使用できます。
親トピック: Oracle Label Securityの概要
1.9.1 Oracle Label SecurityとOracle Internet Directoryとの統合
Oracle Label Securityの使用をOracle Internet Directoryと統合しているサイトでは、ラベル・セキュリティの操作と管理の効率を大幅に改善できます。
ポリシーとユーザー認可プロファイルは、Oracle Internet Directoryを使用したOracle Label Security用コマンドライン・ツールを使用してディレクトリ内で直接作成および管理できます。これらのツールにより、関連付けられたディレクトリに変更を自動的に伝播できます。
1.9.2 マルチテナント環境におけるOracle Label Security統合
Oracle Label Securityは、マルチテナント環境で使用できます。
マルチテナント環境では、プラガブル・データベース(PDB)をマルチテナント・コンテナ・データベース(CDB)やアプリケーション・コンテナにプラグインしたり、これらからプラグアウトできます。
次の点に注意してください。
-
各PDBには、ポリシー、ラベル、ユーザー認証などの独自のOracle Label Securityメタデータがあります。
LBACSYS
スキーマは共通ユーザー・スキーマです。 -
PDBをCDBに接続する前に、データベースにOracle Label Securityがインストールされていない場合は、データベースに対して
$ORACLE_HOME/rdbms/admin/catols.sql
スクリプトを実行して、ラベルベースのフレームワーク、データ・ディクショナリ、データ型およびパッケージをインストールします。このスクリプトは、LBACSYS
アカウントを作成します。 -
Oracle Label Securityのポリシーは個々のPDBに格納されるので、PDBごとに個別のポリシーを作成できます。PDBに対して定義されたポリシーは、PDBに含まれるローカル表およびスキーマ・オブジェクトに対して強制できます。
-
単一のCDBに、それぞれOracle Label Securityで構成されている複数のPDBがある場合があります。
-
Oracle Label SecurityポリシーをCDBルートやアプリケーション・ルートに作成することはできません。
-
ローカルのOracle Label Securityポリシーを共通のCDBオブジェクトまたは共通のアプリケーション・オブジェクトに対して強制することはできません。
-
Oracle Label Securityポリシー・ラベルおよび権限を、プラガブル・データベース内の共通のユーザーおよびアプリケーション共通ユーザーに割り当てることはできません。
-
Oracle Label Securityの権限を、プラガブル・データベース内の共通のプロシージャまたはファンクション、およびアプリケーション共通のプロシージャまたはファンクションに割り当てることはできません。
-
Oracle Label SecurityをOracle Internet Directoryを使用して構成する場合は、CDBに含まれるすべてのPDBで同じ構成を使用する必要があります。PDBから
DBA_OLS_STATUS
データ・ディクショナリ・ビューを次のように問い合せて、データベースがOracle Internet Directoryに対して構成されているかどうかを判断できます。SELECT STATUS FROM DBA_OLS_STATUS WHERE NAME = 'OLS_DIRECTORY_STATUS';
TRUE
が返される場合、Oracle Label Securityではインターネット・ディレクトリが有効になっています。それ以外の場合はFALSE
を返します。