この項では、LinuxでのOracle ACFSファイルシステムのセキュリティを管理するための基本操作について説明します。
この項のシナリオでは、Oracle ACFSセキュリティを使用して、メンテナンス期間中にメンテナンス・ユーザーだけが診療履歴ファイルにアクセスできるようにする方法を示します。Oracle ACFS暗号化も同じファイルシステムで有効になっています。
このシナリオでは、ファイルシステム用に作成したボリューム上のディスク・グループのASM
およびADVM
の互換性属性は11.2.0.3
以上に設定されています。ディスク・グループの互換性の詳細は、「ディスク・グループの互換性」を参照してください。
この項の例では、様々なオペレーティング・システム・ユーザー、オペレーティング・システム・グループおよびディレクトリが存在する必要があります。
セキュリティを管理するための基本手順は次のとおりです。
Oracle ACFSのセキュリティを初期化します。
acfsutil
sec
init
コマンドを実行して、セキュリティ資格証明用のストレージを構成し、オペレーティング・システム・ユーザーを最初のセキュリティ管理者およびオペレーティング・システム・セキュリティ・グループとして識別します。セキュリティ管理者はオペレーティング・システム・グループに属する必要があります。このコマンドは、他のセキュリティ・コマンドの前に実行する必要があり、実行するにはrootまたはWindowsのAdministrator
権限が必要です。
acfsutil
sec
init
コマンドは、1度実行して各クラスタのOracle ACFSセキュリティを設定すれば、クラスタ内の任意のノードから実行できます。他のセキュリティ・コマンドもクラスタ内の任意のノードから実行できます。セキュリティ管理者はクラスタ内のすべてのOracle ACFSファイルシステムで共通です。
たとえば、次のコマンドで1つのクラスタに対するセキュリティを初期化し、最初のセキュリティ管理者(medHistAdmin1
)を作成します。
# /sbin/acfsutil sec init -u medHistAdmin1 -g medHistAdminGrp
medHistAdmin1
セキュリティ管理者はオペレーティング・システム・グループmedHistAdminGrp
に属する必要があります。このグループはセキュリティ管理者用のセキュリティ・グループとして識別されます。
rootユーザーまたはWindows Administrator
ユーザーはこのコマンドを実行するときに、セキュリティ管理者にセキュリティ・パスワードを割り当てます。最初のセキュリティ管理者はacfsutil
sec
admin
password
コマンドを使用してパスワードを変更できます。有効なパスワードの形式は、「acfsutil sec init」を参照してください。acfsutil
sec
admin
password
の詳細は、「acfsutil sec admin password」を参照してください。
すべてのacfsutil
sec
コマンド(acfsutil
sec
init
以外)はOracle ACFSセキュリティ管理者により実行する必要があり、管理者は各コマンドの実行時にセキュリティ管理者のパスワードを求められます。
注意:
セキュリティ管理者のパスワードを求められる場合、次のテキストが表示されます。Realm
management
password
要求されるパスワードはOracle ACFSセキュリティ管理者のパスワードであり、ユーザーのオペレーティング・システム・パスワードではありません。
セキュリティ管理者は、基礎となるオペレーティング・システムの権限があるかどうか、またはレルムの確認で許可されるかどうかにかかわらず、Oracle ACFSファイルシステムのすべてのディレクトリを参照できます。これにより、セキュリティ管理者はファイルがOracle ACFSセキュリティ・レルムでセキュリティ保護されている場合にその場所を確認することができます。ただし、セキュリティ管理者は、適切なオペレーティング・システムおよびセキュリティ・レルム権限がなければ、個別のファイルの内容を表示することはできません。
詳細は、「acfsutil sec init」および「acfsutil sec admin password」を参照してください。
必要に応じて、セキュリティ管理者を追加します。
最初のセキュリティ管理者は、acfsutil
sec
admin
add
コマンドを使用して、Oracle ACFSセキュリティを管理するセキュリティ管理者を追加できます。
たとえば、新しいセキュリティ管理者medHistAdmin2
を追加します。
$ /sbin/acfsutil sec admin add medHistAdmin2
medHistAdmin2
ユーザーはacfsutil
sec
init
コマンドでセキュリティ管理者グループとして識別されるオペレーティング・システム・グループ(medHistAdminGrp
)に属している必要があります。
medHistAdmin2
セキュリティ管理者はacfsutil
sec
admin
password
コマンドを使用して、割り当てられた一時的なセキュリティ・パスワードを変更する必要があります。medHistAdmin2
管理者は新しいセキュリティ管理者を追加できます。
詳細は、「acfsutil sec admin add」および「acfsutil sec admin password」を参照してください。
セキュリティ用にOracle ACFSファイルシステムを準備します。
セキュリティ・レルムを追加する前に、acfsutil
sec
prepare
をOracle ACFSファイルシステムで実行します。
たとえば、Oracle ACFSセキュリティ用に、/acfsmounts/acfs1
にマウントされたOracle ACFSファイルシステムを準備します。
$ /sbin/acfsutil sec prepare -m /acfsmounts/acfs1
デフォルトで、このコマンドの実行後に、セキュリティがファイルシステムで有効になります。acfsutil
sec
disable
またはacfsutil
sec
enable
コマンドを使用して、セキュリティを明示的に無効または有効にできます。詳細は、「acfsutil sec disable」および「acfsutil sec enable」を参照してください。
このコマンドは自動的にSYSTEM_BackupOperators
などのセキュリティ・レルムを作成します。管理者はSYSTEM_BackupOperators
レルムにユーザーを追加できます。このレルムはOracle ACFSファイルシステムにレルム保護されたファイルのバックアップを作成できる権限をユーザーに与えます。
詳細は、「acfsutil sec prepare」を参照してください。
このファイルシステムの暗号化を有効にします。
ファイルシステムの暗号化はオプションですが、このシナリオでは有効にします。
まず、acfsutil
encr
init
コマンドを実行して、暗号化を初期化し、暗号化キーに必要なストレージを作成します。このコマンドは暗号化を設定するクラスタごとに1度実行する必要があります。
たとえば、次のコマンドはクラスタの暗号化を初期化します。
# /sbin/acfsutil encr init
このコマンドは、他の暗号化コマンドの前に実行する必要があり、実行するにはroot権限または管理者権限が必要です。詳細は、「acfsutil encr init」を参照してください。
次に、acfsutil
encr
set
コマンドを実行してOracle ACFSファイルシステムの暗号化を設定します。
たとえば、次のコマンドでは、/acfsmounts/acfs1
ディレクトリにマウントされているファイルシステムの暗号化を設定します。
# /sbin/acfsutil encr set -m /acfsmounts/acfs1/
acfsutil
encr
set
コマンドは、acfsutil
encr
init
コマンドで構成済のキー・ストアに格納されるボリューム暗号化キーを透過的に生成します。このコマンドを実行するにはroot権限または管理者権限が必要です。
詳細は、「acfsutil encr init」および「acfsutil encr set」を参照してください。
ファイルシステムにセキュリティ・レルムを作成します。
acfsutil
sec
realm
create
コマンドを実行してファイルシステムのセキュリティ・レルムを作成します。
たとえば、medHistRealm
という名前のセキュリティ・レルムを作成します。これには診療記録ファイルが含まれ、レルム内のすべてのファイルは暗号化されています。
$ /sbin/acfsutil sec realm create medHistRealm -m /acfsmounts/acfs1/ -e on -a AES -k 128
-e
オプションは、レルム内のすべてのファイルがAES
アルゴリズムで暗号化され、キーの長さが128ビットに設定されることを指定します。ファイルシステムは最初にacfsutil
encr
init
およびacfsutil
encr
set
コマンドを使用して暗号化用に準備される必要があります。acfsutil
sec
realm
create
の-k
オプションには、acfsutil
encr
set
コマンドで入力したのと同じ値を入力する必要はありません。
詳細は、「acfsutil sec realm create」を参照してください。
セキュリティ・ルールを作成します。
acfsutil
sec
rule
create
コマンドを実行して、セキュリティ・レルムのファイルおよびディレクトリへのアクセスを決定するルールを作成します。
たとえば、medMaintenance
ユーザーがファイルのメンテナンスのために、午後10時から午前2時の間に診療記録にアクセスできるルールを作成します。また、午前8時から午前9時の間に操作を拒否し、medBrowse
ユーザーに対して操作を拒否できるルールも作成します。
$ /sbin/acfsutil sec rule create medHistRule1a -m /acfsmounts/acfs1/ -t time 22:00:00,02:00:00 -o ALLOW $ /sbin/acfsutil sec rule create medHistRule1b -m /acfsmounts/acfs1/ -t username medMaintenance -o ALLOW $ /sbin/acfsutil sec rule create medHistRule1c -m /acfsmounts/acfs1/ -t time 08:00:00,09:00:00 -o DENY $ /sbin/acfsutil sec rule create medHistRule1d -m /acfsmounts/acfs1/ -t username medBrowse -o DENY
acfsutil
sec
rule
edit
コマンドを使用してルールを編集できます。
詳細は、「acfsutil sec rule create」および「acfsutil sec rule edit」を参照してください。
セキュリティ・ルール・セットを作成し、ルール・セットにルールを追加します。
acfsutil
sec
ruleset
create
コマンドを実行して、ルールを追加可能なルール・セットを作成します。
たとえば、medHistRealm
セキュリティ・レルムのファイルおよびディレクトリでの操作のルールが含まれるmedRuleSet1
およびmedRuleSet2
という名前のルール・セットを作成します。
$ /sbin/acfsutil sec ruleset create medRuleSet1 -m /acfsmounts/acfs1/ $ /sbin/acfsutil sec ruleset create medRuleSet2 -m /acfsmounts/acfs1/
既存のルールをルール・セットに追加します。
$ /sbin/acfsutil sec ruleset edit medRuleSet1 -m /acfsmounts/acfs1/ -a medHistRule1a,medHistRule1b -o ALL_TRUE $ /sbin/acfsutil sec ruleset edit medRuleSet2 –m /acfsmounts/acfs1/ -a medHistRule1c,medHistRule1d -o ALL_TRUE
ALL_TRUE
オプションはデフォルトのアクションですが、各ルール・セットの両方のルールがtrueでなければならないことを強調するためにここに追加しています。
詳細は、「acfsutil sec ruleset create」および「acfsutil sec ruleset edit」を参照してください。
セキュリティ・レルムにオブジェクトを追加します。
acfsutil
sec
realm
add
コマンドを実行して、コマンド・ルール、ルール・セットおよびファイルなどのオブジェクトをセキュリティ・レルムに追加します。たとえば、medRuleSet1
ルール・セットとmedRuleSet2
ルール・セット、および/acfsmounts/acfs1/medicalrecords
ディレクトリ内のすべてのファイルを、medHistRealm
に追加します。
ルール・セットをレルムに追加するときには、DELETEFILE:medRuleSet1
などのコマンド・ルールが使用されます。各コマンド・ルールには1つのルール・セットしか含めることはできません。コマンド・ルールのリストを表示するには、acfsutil
sec
info
と-c
オプションを使用します。「acfsutil sec info」を参照してください。
次のacfsutil
sec
realm
add
コマンドによって、medMaintenance
ユーザーは、午後10時から午前2時の間は診療記録を削除できますが、午前8時から午前9時の間はファイルへの書込みがブロックされます。
$ /sbin/acfsutil sec realm add medHistRealm -m /acfsmounts/acfs1/ -l DELETEFILE:medRuleSet1 -f -r /acfsmounts/acfs1/medicalrecords
このacfsutil
sec
realm
add
コマンドによって、medBrowse
ユーザーは、診療記録をいつでも書込みまたは削除できなくなります。
$ /sbin/acfsutil sec realm add medHistRealm -m /acfsmounts/acfs1/ -l WRITE:medRuleSet2 -f -r /acfsmounts/acfs1/medicalrecords
このacfsutil
sec
realm
add
コマンドによって、バックアップ・オペレータを、acfsutil
sec
prepare
コマンドで自動的に作成されたSYSTEM_BackupOperators
セキュリティ・レルムに追加します。
$ /sbin/acfsutil sec realm add SYSTEM_BackupOperators -m /acfsmounts/acfs1/ -G sysBackupGrp
sysBackupGrp
オペレーティング・システム・グループに属するユーザーは、Oracle ACFSファイルシステムのレルム保護されたファイルのバックアップを作成できるようになります。
詳細は、「acfsutil sec realm add」および「acfsutil sec realm delete」を参照してください。
セキュリティ情報を表示します。
acfsutil
sec
info
コマンドを実行してセキュリティ・レルムの情報を作成します。たとえば、medHistRealm
レルムのセキュリティ情報を表示します。
$ /sbin/acfsutil sec info -m /acfsmounts/acfs1/ –n medHistRealm
ファイルまたはディレクトリが属するセキュリティ・レルムを表示するには、acfsutil
sec
info
file
コマンドを実行します。次に例を示します。
$ /sbin/acfsutil sec info file -m /acfsmounts/acfs1/ /acfsmounts/acfs1/medicalrecords
詳細は、「acfsutil sec info」および「acfsutil sec info file」を参照してください。
セキュリティ・メタデータをバックアップとして保存します。
acfsutil
sec
save
コマンドを実行して、ファイルシステムのセキュリティ・メタデータを保存します。
たとえば、/acfsmounts/acfs1
ファイルシステムのセキュリティ・メタデータをacfs1_backup.xml
ファイルに保存します。
$ /sbin/acfsutil sec save –m /acfsmounts/acfs1 –p acfs1_backup.xml
acfs1_backup.xml
セキュリティ・メタデータのバックアップ・ファイルが/acfsmounts/acfs1/.Security/backup/
ディレクトリに保存されます。保存されたXMLファイルは、acfsutil
sec
load
コマンドを使用してロードできます。
詳細は、「acfsutil sec save」および「acfsutil sec load」を参照してください。
acfsutil
sec
batch
コマンドを使用して、バッチ・ファイルでいくつかのacfsutil
sec
コマンドを実行できます。たとえば、acfsutil
sec
rule
およびacfsutil
sec
ruleset
コマンドのグループを含むバッチ・ファイルを作成できます。詳細は、「acfsutil sec batch」を参照してください。
Oracle ACFSセキュリティの監査および診断データがログ・ファイルに保存されます。ログ・ファイルを含む、Oracle ACFSセキュリティの詳細は、「Oracle ACFSセキュリティ」を参照してください。