この項の内容は次のとおりです。
職務分離とは、各ユーザーの権限をそのユーザーが担当するタスクのみに制限し、それ以外のタスクの権限は付与しないことを意味します。多くの権限を1人のユーザーに付与するのではなく、特定の権限カテゴリを特定のユーザーに割り当てます。簡単に言えば、組織で求められる各タスクのアカウンタビリティが職務分離によって構築されます。
職務分離は、過去10年で非常に重要視されるようになりました。多くの組織にとって、職務分離は今後も展開し続ける新しい概念です。データベースの統合、法令順守およびアウトソーシングは、職務分離を推し進める要因の一部にすぎません。Oracle Database Vaultの職務分離では、セキュリティ関連の管理を日常的なDBA操作と分離することによって、セキュリティが強化されます。Database Vaultの職務分離は、現在および将来のビジネス要件に容易に対処できるようにカスタマイズが可能です。特に小規模組織では、限られたリソースでセキュリティ・プロファイルを向上させるために、柔軟性が必要となります。
Oracle Database Vaultでは、次の主な職責が定義されます。
アカウント管理。アカウント管理では、ユーザー・アカウントの作成、変更、および削除を行います。DV_ACCTMGR
ロールがこれらの権限を提供します。
セキュリティ管理。セキュリティ管理では、基本的なセキュリティ・タスクを行います。たとえば、レルムやコマンド・ルールの作成、データベース・ユーザーのアクセスに対するセキュリティ・ポリシーの設定、実行が許可されたジョブに対するデータベース・ユーザーの認可などがあります。セキュリティ管理者は、セキュリティ監査レポートの実行も行います。DV_OWNER
およびDV_ADMIN
ロールにこれらの権限が含まれています。(Oracle Database Vaultのロールによる職務分離の詳細は、「Oracle Database Vaultロール」を参照してください。)
オプションで、アカウント管理とセキュリティ管理の職責を統合することもできます。
リソース管理。リソース管理とは、データベース・システムの管理のことで、ビジネス・データへのアクセスのことではありません。次のような操作があります。
バックアップ操作では、事前定義されたツールを使用してバックアップを実行するための事前定義時刻が必要です。
チューニングおよび監視操作では、継続したパフォーマンス監視および分析が必要です。
パッチ適用操作では、パッチが適用されている間のみの一時アクセスが必要です。
リソース管理では、これらの各タスクについて、名前付きアカウントとバックアップ・アカウントを作成する必要があります。これらのアカウントを、データベース・ディクショナリ・レルムの所有者として追加します。これらのアカウントをデータベースのプライマリ・リソース・マネージャとして使用します。
データベース・アカウント管理とデータベース・セキュリティ管理のための個別アカウントと、バックアップ操作のためのその他の名前付きアカウントが必要です。監査者は、各職責のための個別のデータベース・アカウントをチェックし、各アカウントのアクションを追跡できます。特定タスクに割り当てられているユーザーの数は、あまり重要ではありません。Oracle Database Vault監査イベントは保護されており、Database Vaultレポートにはすべての違反未遂が表示されます。
職務分離を適切に行うためには、環境で基本的な管理タスクを実行するユーザーおよびその管理タスクの内容を理解する必要があります。1人のデータベース管理者が新規データベース・アカウントのプロビジョニングとアプリケーション・パッチ適用の両方の管理を担当する場合であっても、これらの各タスクを文書化し、計画することが大切です。これらの各タスク・タイプに別の管理アカウントを使用することで、アカウンタビリティが向上し、関連するリスクが低減します。中規模から大規模の組織では、データベース管理者は通常、一般的な管理タスクを実行する必要はありますが、アプリケーションで管理されるビジネス・データにアクセスする必要はありません。職務分離マトリクスを作成すると、Database Vaultデプロイメントを計画する際に役立ちます。必要に応じて、追加タスクおよび関連するユーザーをリストに含めることができます。この情報は、組織の全体的なエンタープライズ・セキュリティ・ドキュメントの一部となります。
表D-1は、職務分離マトリクスの例を示しています。
表D-1 職務分離マトリクスの例
ユーザー、プロセスまたはアプリケーション | アカウントの作成 | データベース管理 | セキュリティ管理 | ||||
---|---|---|---|---|---|---|---|
SYSDBA | バックアップ | チューニング | パッチ適用 | 監視 | |||
... |
|||||||
|
X |
||||||
|
X |
||||||
|
X |
||||||
|
X |
||||||
|
X |
X |
|||||
|
EBSパッチ適用 |
||||||
|
X |
X |
システム管理タスクで、特定のツールおよびプログラムからデータへの一時的なアクセスが必要なこともあります。この場合、Oracle Database Vaultルールおよびルール・セットに、この一時アクセスまたは緊急アクセスに対するプロビジョニングを構築します。
各管理ユーザーの職責。
ユーザーが必要とするアクセス権の種類。たとえば、アプリケーション所有者はデータ・アクセス、開発者は開発インスタンスに対するアクセスのみを必要とします。
ビジネス・データにアクセスせずにシステムを管理する必要のあるユーザー(バックアップ、パッチ適用、チューニングおよび監視操作を実行するユーザーなど)。
各タスク・カテゴリの職務(バックアップの必要なファイル、パッチ適用の必要なアプリケーション、監視の正確な対象など)。これらの各タスクの代替ユーザー・アカウントも含まれます。
保護が必要なデータベースとアプリケーション。これには、Oracle Applications、パートナ・アプリケーションおよびカスタム・アプリケーションが含まれます。
ビジネス・データベースへのアクセスを認可する必要のあるユーザー。次のユーザーが含まれます。
中間層プロセスを利用するアプリケーション所有者
アプリケーション・インタフェースを利用するビジネス・ユーザー
セキュリティ侵害の対処方法など、緊急時のWhat-Ifシナリオ。
本番環境でのレポート作成。次の内容が含まれます。
レポートの実行者
実行が必要なレポート
各レポートの実行頻度
各レポートのコピーの受取りを必要とするユーザー
職務分離マトリクス以外に、次のマトリクスの作成があります。
Oracle Database Vault固有マトリクス。Database Vaultロールを付与されているユーザーの名前およびタスクを含めることができます。
アプリケーション保護マトリクス。保護対象アプリケーションおよび設定した保護タイプを含めることができます。
表D-2は、OracleがPeopleSoftアプリケーション向けに作成した保護の例を示しています。これらのセキュリティ・ポリシーを作成するためのスクリプトは、次のURLからダウンロードできます。
http://www.oracle.com/technetwork/database/options/database-vault/index-085211.html
この項の内容は次のとおりです。
一般的なデータベース管理の目的でSYSTEM
アカウントを使用する場合は、データベース管理者のための名前付きデータベース管理アカウントを作成します。これにより、データベース内の管理アクションに対するアカウンタビリティが向上します。
サイトでSYSTEM
スキーマ内にアプリケーション表がある場合は、これらのアプリケーションを引き続き正常に動作させるため、SYSTEM
アカウントをこれらの表に対するレルム認可に追加します。これらのアプリケーションのセキュリティを向上または微調整するため、SYSTEM
アカウントに制限を加えることもできます。たとえば、SYSTEM
ユーザーのアクセスを特定のIPアドレスに制限するDatabase Vaultルール・セットを作成できます。
接続時にSYSDBA
権限の使用がどうしても必要なユーザーや、引き続きSYSDBA
アクセスを必要とするアプリケーション(Oracle Recovery Manager (RMAN)や必須パッチ適用プロセスなど)のみに、この権限を制限します。他のすべてのケースでは、日常的なデータベース管理を実行するための名前付きデータベース・アカウントを作成します。また、OSDBA
ユーザー・グループのメンバーにはSYSDBA
管理権限が付与されます。
Oracle Database Vault は、多くの権限を持つデータベース・ユーザーが機密データにアクセスすることを防ぎます。また、Oracle Database自体を使用している場合は、透過的なデータ暗号化を使用することで、最大の権限を持つオペレーティング・システム・ユーザーが機密データにアクセスできないようにできます。透過的データ暗号化を使用すると、個々の表の列を非可視化できます。(データの透過的な暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。)オペレーティング・システムへの直接アクセスを常に注意深く確認し、制限することをお薦めします。
オペレーティング・システムにアクセスするには、アカウントをパーソナライズしておく必要があります。これらのパーソナライズされたアカウントは、LinuxまたはUNIX環境で、必要に応じてsudo
を使用してoracle
ソフトウェア所有者にログインします。sudo
では、パーソナライズされた各ユーザーが実行できる特定のコマンドを制御できます。これらのユーザーについては、make
、relink
、gdb
、またはデータベースで問題が発生する可能性があるその他のコマンドの使用を禁止してください。ただし、管理ユーザーがパッチをインストール、またはその他の緊急操作を実行する必要がある場合は、一定の時間のみmake
およびrelink
コマンドを有効にし、この時間中のアクションを監査できます。
Oracle Database Vaultは、データベース内の権限を与えられた多くのユーザーおよびロールからのアプリケーション・データへのアクセスを制限します。ただし、場合によっては、Oracle Database Vaultsは特定のロールおよび権限を信頼します。
表D-3に、信頼できるロールおよび権限を示します。これらのロールおよび権限は、Oracle Database Vaultのインストール時に作成されます。
表D-3 信頼できるOracle Database Vaultロールおよび権限
ロールまたは権限 | ステータス | 説明 |
---|---|---|
|
オープン |
インストール時に作成され、新規データベース・アカウントの作成に使用されるロール。 |
|
オープン |
インストール時に作成され、レルム、ファクタおよびコマンド・ルールの管理に使用されるロール。このユーザーは、自分自身をレルム認可に追加できます。 |
|
有効 |
Oracle Databaseのインストール時に作成される権限。一部のOracle機能に必要です。SYSDBAの管理のガイドラインは、 |
|
有効 |
Oracle Databaseのインストール時に作成される権限。データベースの起動および停止。デフォルトでは |
いくつかのアカウントおよびロールは、デフォルトのOracle Databaseインストール環境で非常に強力な権限を持ちます。これらのアカウントおよびロールは、信頼できる人物に制限する必要があります。
ルート・ユーザー・アクセス権を持つユーザーは、次のアクティビティを含め、システムを完全に制御できます。
暗号化されていないファイルの読取り
ファイルの移動および削除
システムでのプログラムの起動または停止
Oracle Databaseインストール環境を所有するユーザーを含む任意のユーザーとしてのログイン
Oracle Database Vaultでは、オペレーティング・システム・ルート・アクセスに対して保護されません。ルート・ユーザー権限は、必ず適切な職責を持つ適切な人物にのみ付与してください。
システムにOracleソフトウェア所有者としてのアクセス権を持つユーザーは、次のアクティビティを含め、Oracleソフトウェアを制御できます。
暗号化されていないデータベース・ファイルの読取り
データベース・ファイルの移動および削除
システムでのOracleプログラムの起動または停止
Oracle Database Vaultでは、Oracleソフトウェア所有者のオペレーティング・システム・アクセスから保護されません。Oracleソフトウェア所有者アクセス権は、必ず適切な職責を持つ適切な人物にのみ付与してください。
デフォルトでは、Oracle Databaseは、SYSDBA
アクセスをOSDBA
グループの管理ユーザーおよびユーザーSYS
に限定します。SYSDBA
権限はOracle Database Vaultの信頼できる権限です。この権限は信頼できるユーザーにのみ付与してください。
Oracle Database Vaultを本番環境で使用する際は、次のガイドラインに従ってください。
アプリケーションの全テストを実行して、作成したDatabase Vaultポリシーが予測どおりに機能していることを確認します。
アプリケーションのパフォーマンスを監視し、必要に応じてルール式を調整します。
適切な製品サポートおよびセキュリティ・グループに職責を次のように割り当てます。
データベース・セキュリティ管理者にセキュリティ職責を割り当てます。
データベース・アカウント・マネージャにアカウント管理を割り当てます。
データベース管理者にリソース管理タスクを割り当てます。
Database Vault APIスクリプトをセキュア・サーバーにバックアップします。
次の構成およびセキュリティのガイドラインに従ってください。
UTL_FILE
パッケージはSYS
によって所有され、PUBLIC
に付与されます。ただし、ユーザーがオペレーティング・システム・ディレクトリ内のファイルを操作するためには、そのディレクトリ・オブジェクトへのアクセス権が必要です。UTL_FILE
パッケージをセキュアに構成できます。詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。
DBMS_FILE_TRANSFER
パッケージは、SYS
によって所有され、EXECUTE_CATALOG_ROLE
に付与されます。このパッケージに対するEXECUTE
アクセス権を持つユーザーは、同じファイルシステムの1つの場所から別の場所にファイルを移動できます。リモート・システム上のデータベースを含め、データベース・インスタンス間でファイルを移動することもできます。
DBMS_FILE_TRANSFER
パッケージを保護するには、次の処理を行います。
DBMS_FILE_TRANSFER
パッケージのEXECUTE
権限を取り消し、この権限を必要とする信頼できるユーザーに対してのみEXECUTE
権限を付与します。
コマンド・ルールを作成して、CREATE DATABASE LINK
およびCREATE DIRECTORY
SQL文を制御します。Oracle Database Vault Administratorを使用したコマンド・ルールの作成の詳細は、「コマンド・ルールの作成および編集」を参照してください。
または、例D-1および例D-2に示すように、Oracle Database VaultのDBMS_MACADM
パッケージを使用して、リモート・データベースへの接続の確立に使用されるCREATE DATABASE LINK
文へのアクセスを制限および有効化することもできます。このメソッドを使用するには、Oracle Database Vault所有者アカウントを使用してSQL*Plusにログインします。
例D-1 CREATE DATABASE LINKへのアクセスを拒否するコマンド・ルールの作成
BEGIN DBMS_MACADM.CREATE_COMMAND_RULE ( command => 'CREATE DATABASE LINK', rule_set_name => 'Disabled', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES); END; / COMMIT;
有効なユーザーがCREATE DATABASE LINK
文を使用する必要がある場合、Oracle Database Vault所有者は、Oracle Database Vault Administratorから再び有効にするか、SQL*Plusで次のコマンドを発行できます。
例D-2 CREATE DATABASE LINKへのアクセスを有効にするコマンド・ルールの作成
BEGIN DBMS_MACADM.UPDATE_COMMAND_RULE ( command => 'CREATE DATABASE LINK', rule_set_name => 'Enabled', object_owner => '%', object_name => '%', enabled => DBMS_MACUTL.G_YES); END; / COMMIT;
同様に、例D-3に、CREATE DIRECTORY
へのアクセスを無効および有効にするコマンド・ルールを示します。
例D-3 CREATE DIRECTORYへのアクセスを無効および有効にするコマンド・ルール
-- Disable access to CREATE DIRECTORY BEGIN DBMS_MACADM.CREATE_COMMAND_RULE ( command => 'CREATE DIRECTORY', rule_set_name => 'Disabled', object_owner => '%', object_name => '%', enabled => dbms_macutl.g_yes); END; / COMMIT; -- Enable access to CREATE DIRECTORY BEGIN dbms_macadm.update_command_rule ( command => 'CREATE DIRECTORY', rule_set_name => 'Enabled', object_owner => '%', object_name => '%', enabled => dbms_macutl.g_yes); END; / COMMIT;
Oracle Database Vaultでは、ALTER SYSTEM
コマンド・ルールによってリサイクル・ビン機能が有効になるのを防ぎますが、リサイクル・ビンがすでに有効な場合、無効化を防ぐことはできません。リサイクルビン機能が有効な場合、レルムで保護されたオブジェクトが削除されると、リサイクル・ビンに移動されます。そこでは、オブジェクトはレルムによって保護されなくなります。DVSYS
スキーマ内のオブジェクトは例外です。DVSYS
を保護スキーマとして保持し続けるために、リサイクル・ビンが無効な場合でも、このスキーマのオブジェクトを削除できません他のレルムのセキュリティを強化するために、リサイクルビンを無効にする必要があります。
SQL*Plusでは、リサイクルビンの内容は次のようにチェックできます。
SELECT * FROM RECYCLEBIN; SELECT * FROM USER_RECYCLEBIN;
リサイクルビンの内容をパージするには、PURGE
SQL文を使用します。
PURGE RECYCLEBIN; PURGE USER_RECYCLEBIN;
リサイクルビンを無効にするには、次のようにします。
SYSDBA
権限を使用してSYS
としてSQL*Plusにログインします。
sqlplus sys as sysdba
Enter password: password
リサイクルビンが無効になっていることを確認します。
SHOW PARAMETER RECYCLEBIN
リサイクルビンがオンの場合は、無効にします。
ALTER SYSTEM SET RECYCLEBIN=OFF SCOPE=SPFILE;
Oracle Databaseを再起動します。
SHUTDOWN IMMEDIATE STARTUP
CREATE ANY JOB
権限はDBA
ロールおよびSCHEDULER_ADMIN
ロールから取り消されています。使用しているアプリケーションにこの変更による影響がないことを確認してください。
詳細は、「Oracle Database Vault環境でのデータベース・ジョブのスケジュール」を参照してください。
CREATE EXTERNAL JOB
権限は、Oracle Database 10gリリース 2 (10.2)で導入されました。データベースの外部のオペレーティング・システムで稼働するジョブを実行するデータベース・ユーザーに必要です。デフォルトでは、この権限は、CREATE JOB
権限が付与されたすべてのユーザーに付与されます。セキュリティを高めるために、この権限を必要としないユーザーからこの権限を取り消し、必要とするユーザーにのみ付与してください。
このリリースのOracle Database Vaultでは、ロールEXECUTE_CATALOG_ROLE
には、次のLogMinerパッケージに対するEXECUTE
権限がデフォルトでは付与されません。
DBMS_LOGMNR
DBMS_LOGMNR_D
DBMS_LOGMNR_LOGREP_DICT
DBMS_LOGMNR_SESSION
使用しているアプリケーションにこの変更による影響がないことを確認してください。
トレースおよびデバッグ・コマンドは、Oracleデータベース・メモリー情報を表示する可能性があることに注意してください。Oracle Database Vaultは、これらのコマンドに対する保護を行いません。Oracleデータベース・メモリー情報を保護するために、ALTER SYSTEM
権限およびALTER SESSION
権限へのアクセスを厳密に制御することをお薦めします。これらの権限は、SYSDBA
として接続しているときにユーザーSYS
によって、またDBA
ロールを付与されている任意のユーザーによって付与できます。
また、ALTER SYSTEM
文の既存のコマンド・ルールにツールを追加することをお薦めします。Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。ALTER SESSION
権限は、信頼できるユーザーにのみ付与してください。(たとえば、ALTER SESSION
文はトレースを有効にできます。)
例D-4は、このようなルールの作成方法を示しています。このルールにより、ALTER SYSTEM
権限を持つユーザーは、コマンドALTER SYSTEM DUMP
を発行できなくなります。このコマンド・ルールを作成する場合は、Oracle Database Vault所有者としてSQL*Plusにログインします。
例D-4 既存のALTER SYSTEMコマンド・ルールへのルールの追加
CONNECT amalcolm_dvacctmgr
Enter password: password
BEGIN
DBMS_MACADM.CREATE_RULE('NO_SYSTEM_DUMP',
'(INSTR(UPPER(DVSYS.DV_SQL_TEXT),''DUMP'') = 0)');
END;
/
EXEC DBMS_MACADM.ADD_RULE_TO_RULE_SET
('Allow Fine Grained Control of System Parameters','NO_SYSTEM_DUMP');
COMMIT;
または、Oracle Database Vault Administratorを使用してルールを作成し、そのルールをルール・セットに追加できます。詳細は、「ルール・セットに追加するルールの作成」を参照してください。