Oracle Label Securityでは、個々の表の行へのファイングレイン・アクセスを可能にします。
内容は次のとおりです。
Oracle Label Securityでは、個々の表の行およびアプリケーション・ユーザーに割り当てられたラベルを使用して個々の表の行の表示を制御します。
Oracle Label Securityは、政府および防衛組織に見られるマルチレベル・セキュリティ(MLS)要件に基づいています。機密情報を認可されたユーザーのみに簡単に制限できます。Oracle Label Securityは、Oracle Virtual Private Database (VPD)に基づいています。ただし、VPDとは異なり、Oracle Label Securityは即時利用可能なアクセス調整機能、データ・ディクショナリ表およびポリシー・ベースのアーキテクチャを提供し、コーディングのカスタマイズを排除して、複数のアプリケーションで使用できる一貫性のあるラベル・ベースのアクセス制御モデルを提供します。Oracle Label Securityポリシーは、1つ以上のアプリケーション表に適用できます。Oracle Label Securityは、行ラベルをユーザーのラベル認可と比較することで機能します。Oracle Label Securityソフトウェアはデフォルトでインストールされますが、自動的には有効になりません。Oracle Label Securityは、SQL*Plusで、またはOracle Database Configuration Assistant (DBCA)を使用して簡単に有効化できます。Oracle Label Securityを管理するには、Oracle Enterprise Manager Cloud Controlを使用するか、PL/SQLパッケージとスタンドアロン・ファンクションのセットをコマンド・ライン・レベルで使用できます。Oracle Label Securityのデフォルトの管理者は、ユーザーLBACSYS
です。Oracle Label Securityポリシーに関する情報を調べるには、ALL_SA_*
、DBA_SA_*
またはUSER_SA_*
データ・ディクショナリ・ビューを問い合せることができます。
Oracle Label Securityには、行レベル管理を制御する場合のいくつかの利点があります。
行レベルのデータ分類を有効にし、データ分類とユーザー・ラベル認可またはセキュリティ・クリアランスに基づいて即時利用可能なアクセス調整を提供します。
ラベル認可またはセキュリティ・クリアランスをデータベース・ユーザーとアプリケーション・ユーザーの両方に割り当てることができます。
データ分類ラベルとユーザー・ラベル認可を定義および格納するためのグラフィカル・ユーザー・インタフェースとAPIの両方を提供します。
Oracle Database VaultおよびOracle Advanced Security Data Redactionと統合され、セキュリティ・クリアランスをDatabase Vaultコマンド・ルールとData Redactionポリシー定義の両方で使用できるようにします。
データベースにOracle Label Securityを登録する場合、登録プロセスによってLBAC_DBA
ロールを持つLBACSYS
という名前の管理ユーザーが作成されます。
このロールを、Oracle Label Securityポリシーの管理を担当するデータベース・ユーザーに付与できます。また、Oracle Label Security管理者に、Oracle Label Securityパッケージに対するEXECUTE
権限と、個々のOracle Label Securityポリシーを管理する権限を付与できます。
Oracle Label Security管理者には、パッケージベースおよびロールベースの一連の権限があります。
これらの権限を次に示します。
パッケージ固有の権限: パブリックのSA_SESSION
およびSA_UTL
パッケージを除くほとんどのOracle Label Security PL/SQLパッケージには、EXECUTE
権限が必要です。
ロールベースの権限: 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ポリシーには、コンポーネントの標準セットがあります。
これらのコンポーネントは次のとおりです。
ラベル。 データおよびユーザー、ユーザーとプログラム・ユニットの認証のラベルは、保護されている特定のオブジェクトへのアクセスを制御します。ラベルは、次の要素で構成されています。
レベル。レベルにより、行に割り当てる機密性のタイプ(たとえば、SENSITIVE
やHIGHLY SENSITIVE
など)が指定されます。
区分。(オプション)データは、レベルが同じでも、企業内の別々のプロジェクト(たとえばACME MergerやIT Securityなど)に属すことができます。コンパートメントはこの例ではプロジェクトのことで、より厳密なアクセス制御を定義できます。コンパートメントは行政環境でよく使用されます。
グループ。(オプション)グループは、データを所有する組織またはデータにアクセスする組織を識別します。たとえば、UK、US、Asia、Europeなどです。グループは商業環境と行政環境の両方で使用され、柔軟性が高いことからコンパートメントのかわりに使用されることもあります。
ポリシー。 ポリシーは、これらのラベル、ルール、認可および保護された表に関連付けられた名前です。
たとえば、ユーザーがアプリケーション表のSELECT
権限を持っているとします。図1-1に示すように、ユーザーがSELECT
文を実行すると、Oracle Label Securityは選択された各行を評価して、このユーザーがユーザーに割り当てられた権限とラベルおよび行のラベルを使用してアクセスできるかどうかを決定します。Oracle Label Securityを設定して、UPDATE
、DELETE
、INSERT
文でもセキュリティ・チェックを行うことができます。
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の開発および管理タスクは、次のインタフェースのどちらでも実行できます。
内容は次のとおりです。
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プログラム内で使用するように設計されたユーティリティ・ファンクションのセット。 |
Oracle Enterprise Manager Cloud Control Webインタフェースを使用して、Oracle Label Securityを管理できます。
図1-3に、Oracle Enterprise Managerインタフェースを示します。
図1-3 Enterprise Managerを使用したOracle Label Securityポリシーの構成
関連項目:
Oracle Label Securityポリシーを管理するためのCloud ControlまたはSQL*Plusへのログインの詳細は、「Oracle Label SecurityのためのCloud ControlまたはSQL*Plusへのログイン」を参照してください
Enterprise Managerを使用したOracle Label Securityの管理の詳細は、「Oracle Label Securityスタート・ガイド」を参照してください
Oracle Label Securityは、Oracle Internet Directory (OID)との統合およびマルチテナント環境における統合が可能です。
内容は次のとおりです。
Oracle Label Securityの使用をOracle Internet Directoryと統合しているサイトでは、ラベル・セキュリティの操作と管理の効率を大幅に改善できます。
「Oracle Internet Directoryを使用したLabel Security用コマンドライン・ツール」で説明するコマンドを使用して、ポリシーとユーザー認証プロファイルをディレクトリ内で直接作成および管理できます。変更は関連ディレクトリに自動的に伝播します。
この統合の詳細は、「Oracle Label SecurityとOracle Internet Directoryとの併用」を参照してください。
マルチテナント環境でOracle Label Securityを使用できます。
マルチテナント環境では、プラガブル・データベース(PDB)をコンテナ・データベース(CDB)で接続および切断できます。各PDBには、ポリシー、ラベル、ユーザー認証などの独自のOracle Label Securityメタデータがあります。LBACSYS
スキーマは共通ユーザー・スキーマです。LBACSYS
アカウントの詳細は、「LBACSYS Oracle Label Securityの有効化」を参照してください。
PDBをCDBに接続する前に、データベースにOracle Label Securityがインストールされていない場合は、データベースに対して$ORACLE_HOME/rdbms/admin/catols.sql
スクリプトを実行します。CDBの作成の詳細は、『Oracle Database管理者ガイド』を参照してください。
Oracle Label Securityのポリシーは個々のPDBに格納されるので、PDBごとに個別のポリシーを作成できます。PDBに対して定義されたポリシーは、PDBに含まれるローカル表およびスキーマ・オブジェクトに対して強制できます。
Oracle Label Securityポリシーをルートに作成することはできません。単一のCDBに、それぞれOracle Label Securityで構成されている複数のPDBがある場合があります。
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
を返します。
関連項目:
マルチテナント・アーキテクチャが権限に与える影響は、『Oracle Databaseセキュリティ・ガイド』を参照してください。
インターネット・ディレクトリ対応Oracle Label Securityの詳細は、「Oracle Label SecurityとOracle Internet Directoryとの統合」を参照してください