4 Oracle Exadata System Softwareのセキュリティ構成
この章は、Oracle Exadata System Softwareのセキュリティを構成する方法について説明します。
この章のトピックは、次のとおりです:
4.1 Oracle Exadata Storage Serverのオペレーティング・システムのセキュリティの理解
Oracle Exadata Storage Server上のオペレーティング・システムのセキュリティは次のとおりです。
-
セキュリティ・ポリシーの強制
-
セルへのネットワーク・アクセス・パスの保護
-
オペレーティング・システム・レベルのアクティビティの監視
Oracle Exadata System Softwareには、オペレーティング・システムやOracle Exadata Storage Serverへのネットワーク・アクセスを安全にするための機能が含まれています。
4.1.1 Oracle Exadata Storage Serverのセキュリティ・ポリシー
オペレーティング・システムへのユーザー・アクセスは、安全で固定化されたパスワードの使用により安全を保証できます。
Oracle Exadata System Softwareを管理するオペレーティング・システム・ユーザーのパスワードは、Oracle Exadata Deployment Assistant (OEDA)によって実施されるセキュリティ・ガイドラインに準拠しています。詳細は、OEDAで実施されるデフォルト・セキュリティ設定に関する項を参照してください。
4.1.1.1 パスワードの変更
パスワードの期限が切れる7日前に、ユーザーにはパスワードを変更する必要があることが通知されます。パスワードを変更するには、次のコマンドを使用します。
passwd username
このコマンドのusernameはユーザー名です。このコマンドの例を次に示します。
passwd celladmin
4.1.1.2 セキュリティ・ポリシーの有効化
/opt/oracle.cellos/RESECURED_NODE
ファイルによって、セキュリティ・ポリシーが有効化されます。
ファイルが存在しない場合は、次の手順を実行してすべてのオペレーティング・システム・ユーザーのセキュリティ・ポリシーをリセットできます。
4.1.1.3 失敗したパスワード試行の表示
pam_tally2
オペレーティング・システム・ユーティリティを使用して、不正なパスワードによるログイン試行を表示します。
/sbin/pam_tally2
ユーティリティを使用して失敗したパスワード試行を表示します。
# /sbin/pam_tally2
Login Failures Latest failure From
celladmin 1 09/18/18 11:17:18 dhcp-10-154-xxx-xxx.example.com
4.1.1.4 ロックされたユーザー・アカウントのリセット
ログイン試行に5回失敗したユーザー・アカウントはロックされます。
アカウントをリセットするには、次のコマンドを使用します。
/sbin/pam_tally2 --user username --reset
このコマンドでは、usernameはアカウントをロックしたユーザー名です。
4.1.2 Oracle Exadata Storage Serverへのネットワーク・アクセス
Oracle Exadata System Softwareには、各セルにファイアウォールを実装するセルウォール・サービスが含まれています。このサービスは/etc/init.d/cellwall
ディレクトリにあり、セル上にiptablesファイアウォールを実装します。さらに、SSHサーバーは管理ネットワーク(NET0)およびInfiniBandネットワーク(BONDIB0)上のみでの接続リクエストに応答するよう構成されています。
ファイアウォール・ルールを確認するには、次のコマンドをroot
ユーザーとして実行します。
iptables --list
注意:
データベース・サーバーに自動的に構成されるファイアウォールはありません。Oracle Exadata Database Machineの現在のネットワーク要件を満たすように、データベース・サーバー上にiptablesのセットを実装します。
4.1.3 Oracle Exadata Storage Server上でのオペレーティング・システム・アクティビティの監視
各Oracle Exadata Storage Serverは、システム・レベルのアクティビティを監査するようにauditd
で構成されています。
監査を管理してレポートを生成するには、auditctl
コマンドを使用します。監査ルールは/etc/audit/audit.rules
ファイルにあります。パッチ・セットを適用すると、変更は保持されません。
Oracle Exadata System Softwareリリース19.1.0およびOracle Linux 7以降、Oracle Exadata Database Machineに固有の監査ルールは/etc/audit/rules.d/01-exadata_audit.rules
ファイルに格納されます。
auditd
サービスが起動すると、augenrules
ユーティリティが実行されます。このユーティリティは、監査ルール・ディレクトリ/etc/audit/rules.d
にあるすべてのコンポーネント監査ルール・ファイルをマージし、マージされた結果を/etc/audit/audit.rules
ファイルに配置します。コンポーネント監査ルール・ファイルは、augenrules
によって処理されるには、.rules
で終わる必要があります。/etc/audit/rules.d
ディレクトリ内の他のすべてのファイルは無視されます。ファイルは、自然ソート順に基づいて連結され、空の行およびコメント(#)行は削除されます。Oracle Exadata Database Machineに固有の監査ルールは、/etc/audit/rules.d
ディレクトリ(/etc/audit/rules.d/20-customer_audit.rules
など)内の個別の監査ルール・ファイルに配置する必要があります。
以前のリリースのOracle Exadata System Softwareと同様に、監査ルールは不変です。監査ルールに対する変更を有効にするには、再起動が必要です。
4.2 Exadataソフトウェア・ユーザーおよびロールの作成
ロールに権限を付与し、ユーザーにロールを付与することで、ユーザーが実行できるOracle Exadata System Softwareコマンドを制御できます。
たとえば、ユーザーにLIST GRIDDISK
コマンドを実行可能にしALTER GRIDDISK
を実行不可にするよう指定できます。このレベルの制御は、システムへの完全なアクセスをごく少数のユーザーにのみ許可するクラウド環境で役立ちます。
Oracle Exadata System Softwareユーザーは、オンプレミスまたはOracle Cloud環境でExaCLIを実行する場合に必要です。ExaCLIでは、計算ノードからリモートでセルを管理できます。計算ノード上でExaCLIを実行するときに、セル・ノードへの接続に使用するユーザー名を指定する必要があります。管理サーバー(MS)により、ユーザーの資格証明が認証され、そのユーザーによって発行されるコマンドの許可チェックが実行されます。そのユーザーがコマンドを実行する適切な権限を持っていない場合、MSによりエラーが返されます。
パスワードのセキュリティ・キーは、HMAC-SHA1とパスワード・ベース鍵導出関数2 (PBKDF2)を使用して暗号化されています。
ユーザーおよびロールを設定するには、次の手順を実行します。
- CREATE ROLEコマンドを使用してロールを作成します。
- GRANT PRIVILEGEコマンドを使用してロールに権限を付与します。
- CREATE USERコマンドを使用してユーザーを作成します。
- GRANT ROLEコマンドを使用してユーザーにロールを付与します。
REVOKE PRIVILEGEコマンドを使用して、ロールから権限を取り消すこともできます。ユーザーからロールを取り消すには、REVOKE ROLEコマンドを使用します。
関連項目
4.2.1 ロールの作成およびロールに関する情報の取得
CREATE ROLE
コマンドを使用して、Oracle Exadata System Softwareユーザーのロールを作成します。
たとえば、管理者のロールを作成するには、次のコマンドを使用します。
CellCLI> CREATE ROLE admin
ロールを作成した後、GRANT PRIVILEGE
コマンドを使用してロールに権限を付与できます。次の例のように、ロールをユーザーに付与することもできます。
CellCLI> GRANT PRIVILEGE ALL ACTIONS ON ALL OBJECTS TO ROLE admin
CellCLI> GRANT ROLE admin TO USER username
ロールに関する詳細情報を取得するには、LIST ROLE
コマンドを使用します。次のコマンドはadmin
ロールのすべての属性を返します。
CellCLI> LIST ROLE admin DETAIL
name: admin
privileges: object=all objects, verb=all actions,
attributes=all attributes, options=all options
関連項目
4.2.3 ユーザーの作成
CREATE USER
コマンドを使用して、Oracle Exadata System Softwareユーザーを作成します。
新しく作成したユーザーは、何も権限を持っていません。Oracle Exadata System Softwareユーザーには、ユーザーに付与されたロールを介して権限が付与されます。
関連項目
4.2.4 サーバーにリモートにアクセスするユーザーのパスワードの有効期限の構成
CELL
属性を構成して、ユーザー・パスワードを期限切れにできます。
Oracle Exadata System Softwareリリース19.1.0では、REST APIまたはExaCLIなど、リモートでOracle Exadata System Softwareサーバーにアクセスするユーザーにパスワード・セキュリティを構成するための新しいCELL
属性があります。これらの属性によって、ユーザーがリモートでパスワードを変更できるかどうか、ユーザー・パスワードが期限切れになるまでの時間、およびパスワード有効期限の前にユーザーが警告メッセージを受け取る日数が決まります。デフォルトの構成では、ユーザー・パスワードは期限切れになりません。
注意:
パスワードの有効期限用のCELL属性は、Oracle Exadata System Softwareで作成されたユーザーにのみ適用されます。パスワードの有効期限は、LIST USER
コマンドで表示されるユーザーにのみ適用され、celladmin
やoracle
などのオペレーティング・システム・ユーザーには適用されません。
4.3 ストレージ・サーバーでのSSHの無効化
デフォルトでは、ストレージ・サーバーでSSHが有効化されています。必要に応じて、SSHアクセスをブロックするためにストレージ・サーバーを「lock」できます。その場合でも、計算ノード上で実行され、httpsおよびREST APIを使用してセル上で実行されているWebサービスと通信するexacliを使用して、セルの操作は実行できます。
セルへのログインを必要とする操作を実行するときは、一時的にセルのロックを解除できます。操作が完了したら、再びセルをロックできます。
次の2つの新しいセル属性によりセルのロックを制御します。
-
accessLevelPerm
: この属性は、セルがデフォルトで実行されるアクセス・レベルを指定します。それは、remoteLoginEnabled
またはremoteLoginDisabled
のいずれかです。-
remoteLoginEnabled
: SSHサービスは有効です。sshまたはexacliを使用してセルにアクセスできます。これが、accessLevelPerm
のデフォルト値です。 -
remoteLoginDisabled
: SSHサービスは無効です。exacliを介してのみ、セルにアクセスできます。
-
-
accessLevelTemp
: 指定された期間、一時的にアクセス・レベルを変更できます。期限が切れると、アクセス・レベルはaccessLevelPermの値に戻ります。通常、セルでソフトウェアの更新を必要とするときに、セルのアクセス・レベルを変更します。
このアクセス・レベルは、セルの再起動後も維持されます。
4.3.1 セルのロック
セルをロックするには、そのaccessLevelPerm
属性をremoteLoginDisabled
に設定します。
accessLevelPerm
属性を変更する権限を持つユーザーを使用する必要があります。
4.3.2 セルの一時的なロック解除
セルへのSSHログインを必要とするメンテナンスやアップグレードなどの操作を実行するため、短時間、ロックされたセルのロックを解除できます。この「一時的なアクセス・ウィンドウ」の開始時間および持続時間は、セルのaccessLevelTemp
属性を設定することで指定できます。この属性には、次のプロパティがあります。
表4-1 accessLevelTempのプロパティ
プロパティ | 説明 |
---|---|
|
SSHの有効( この値は、指定する必要があります。デフォルト値はありません。 |
|
指定されたアクセス・レベルの開始時間を指定します。この時間は、ISO 8601形式の「yyyy-MM-ddTHH:mm:ssZ」で指定します。 また、指定のアクセス・レベルをすぐに開始することを示すため、キーワード「 デフォルト値: |
|
アクセス・レベルの継続時間を指定します。継続時間は、次の形式で指定します。 [任意の桁数の数字、それに続く [任意の桁数の数字、それに続く [任意の桁数の数字、それに続く 例: 1時間を指定: 90分を指定: 1日を指定: 1日と12時間を指定: デフォルト値: |
|
アクセス・レベルを変更する理由を指定します(たとえば、アップグレードを実行する)。 デフォルト値: "none" |
例:
1. 次の例では、2015年6月20日午前1:01に開始される、2時間の一時的なアクセス・ウィンドウを作成します。
exacli> alter cell accessLevelTemp=((accessLevel="remoteLoginEnabled", - startTime="2015-06-20T01:01:00-07:00", - duration="2h", - reason="Quarterly maintenance"))
2. 次の例では、即時に開始される、2時間の一時的なアクセス・ウィンドウを作成します。このコマンドは、開始時間および継続時間のデフォルト値を使用します。
exacli> alter cell accessLevelTemp=((accessLevel="remoteLoginEnabled", - reason="Quarterly maintenance"))
3. 次の例では、即時に開始される、30分間の一時的なアクセス・ウィンドウを作成します
exacli> alter cell accessLevelTemp=((accessLevel="remoteLoginEnabled", - startTime="now", - duration="30m", - reason="Quarterly maintenance"))
4. 次の例では、2015年6月20日午前1:01に開始される、2時間の一時的なアクセス・ウィンドウを作成します。このコマンドは、継続時間のデフォルト値を使用します。
exacli> alter cell accessLevelTemp=((accessLevel="remoteLoginEnabled", - startTime="2015-06-20T01:01:00-07:00", - reason="Quarterly maintenance"))
5. 次の例では、前述の例4で作成した一時的なアクセス・ウィンドウを5時間に拡張します。調整するウィンドウと開始時間が一致しなければならないことに注意してください。
exacli> alter cell accessLevelTemp=((accessLevel="remoteLoginEnabled", - startTime="2015-06-20T01:01:00-07:00", - duration="5h", - reason="Quarterly maintenance window extended to 5 hrs - Joe"))
6. 次の例では、一時的なアクセス・ウィンドウを削除します。一時的なアクセス・ウィンドウが現在アクティブである場合は、ただちにそれが閉じられ、アクセス・レベルが永続的なアクセス・レベルに戻されます。一時的なアクセス・ウィンドウが予定されていて、まだアクティブでない場合は、キャンセルされます。
exacli> alter cell accessLevelTemp=''
次の点に注意してください。
-
いつの時点でも、一時的なアクセス・ウィンドウは、1つのみ許可されます。すでに1つが有効であるときに、新しい一時的なアクセス・ウィンドウを作成しようとすると、エラー・メッセージが表示されます。
一時的なアクセス・ウィンドウがまだアクティブではなく、予定されている場合は、予定されているものが新しく作成された一時的なアクセス・ウィンドウで置き換えられます。
-
予定されていて、まだアクティブではない一時的なアクセス・ウィンドウを変更するには、単に新しい値で再び「alter cell」コマンドを実行します。
-
すでに進行中の一時的なアクセス・ウィンドウを変更(たとえば、継続時間の延長や理由の変更)するには、更新した継続時間または理由(あるいはその両方)で、再び「alter cell」コマンドを実行します。このコマンドでは、変更する既存の一時的なアクセス・ウィンドウの正確な開始時間を指定する必要があります。(開始時間 + 継続時間)は、将来の時刻にする必要があります。
4.4 Oracle Exadata Storage Serverのデータ・セキュリティの構成
Oracle Exadata System Softwareデータのセキュリティは、ストレージ・セル上の特定のグリッド・ディスクにアクセスできるOracle Automatic Storage Management (Oracle ASM)クラスタおよびOracle Databaseクライアントを制御することにより実装されます。デフォルトでは、すべてのOracle DatabaseおよびOracle ASMインスタンスでストレージ・セルのすべてのグリッド・ディスクにアクセスできます。
-
Oracle ASMクラスタのすべてのデータベース・クライアントで特定のグリッド・ディスクにアクセスできるようにセキュリティを設定するには、ASMを有効範囲にしたセキュリティを構成します。
-
Oracle ASMクラスタの特定のデータベース・クライアントで特定のグリッド・ディスクにアクセスできるようにセキュリティを設定するには、DBを有効範囲にしたセキュリティを構成します。
セキュリティの一貫性を確保するには、次を確認します。
-
混乱やエラーを回避するために、同じOracle ASMディスク・グループに属するすべてのグリッド・ディスクに、同じセル側のグリッド・ディスク・セキュリティが定義されていること。
-
Oracle ASMクラスタ内のOracle Real Application Clusters (Oracle RAC)のすべてのサーバーに、Oracle ASMの
cellkey.ora
ファイルの同じ内容、所有権およびセキュリティがあること。 -
Oracle RACクラスタのすべてのデータベース・サーバーに、データベースの
cellkey.ora
ファイルの同じ内容、所有権およびセキュリティがあること。 -
DBを有効範囲にしたセキュリティが実装されている場合は、グリッド・ディスクにアクセスするすべてのデータベースに実装されていることを確認します。
-
ASMを有効範囲にしたセキュリティとDBを有効範囲にしたセキュリティを混在しないようにしてください。
セキュリティを設定する場合は、セル間で同じ構成にする必要があります。dcli
ユーティリティを使用することにより、構成を変更した場合でもユーザーによるエラーの可能性を排除できるため、一貫性が確保されます。
詳細は、『Oracle Exadata Database Machineセキュリティ・ガイド』のExadata Storage Serverのデータ・セキュリティの構成に関する項を参照してください。