インスタンスのセキュリティの強化
インスタンスのセキュリティの強化
InterSystems IRIS® データベースのセキュリティをさらに高めるには、ユーザからのアクセスをより厳密に制限するように構成できます。また、そうすることが必要です。これにより、承認されていないユーザは、ツールを使用したり、機密性の高いリソースにアクセスしたりできなくなります。ここでは、データベース・インスタンスの危険を回避し、セキュリティを向上させるためのさまざまな操作について説明します。ここでは、InterSystems IRIS インスタンスが最小の初期セキュリティでインストールされていることが前提となっています。通常またはロック・ダウンの初期セキュリティを選択した場合、これらの操作の一部は既に自動的に実行されています。
ここでは、インスタンスのセキュリティを強化するための操作の概要について、実行すべき順序で説明します。
-
サービスへのアクセス制限。これには以下が含まれます。
インターシステムズのセキュリティ・アドバイザは、インスタンスのセキュリティを強化するために、インスタンスの自動解析機能や推奨される操作を提供します。
InterSystems IRIS データベース・インスタンスには相互依存する要素が多数あります。このため、変更のために指定されていることのみを、過不足なく行うことをお勧めします。例えば、%All ロールから (その他の操作を一切行わずに) 単純に UnknownUser を削除すると、最小セキュリティ・インストールで問題が発生します。
監査の有効化
セキュリティの主要な要素は、認証 (Authentication)、承認 (Authorization)、および監査 (Auditing) の “3 つの A” で表されることがよくあります。監査には、以下の 2 つの機能があります。
-
セキュリティ・イベントが発生した場合に、何が起こったかに関するデータを提供する。
-
攻撃が追跡、記録され、悪意のある行動に関する証拠がある場合、この機能が存在するとわかっていると、攻撃者に対する抑止力となる。
キー・イベントの監査を有効化する手順は以下のとおりです。
-
管理ポータルのホーム・ページで、[システム管理]→[セキュリティ]→[監査]→[監査を有効に] を選択します。その選択肢が使用できない場合、監査はすでに有効化されています。
-
管理ポータルのホーム・ページで、[システムイベントを構成] ページ ([システム管理]→[セキュリティ]→[監査]→[システムイベントを構成]) に移動します。
-
以下のイベントがまだ有効化されていない場合、[システムイベントを構成] ページのそのイベントの行で [状態変更] をクリックして、これを有効化します。
-
%System/%DirectMode/DirectMode — コンソール/ターミナルの使用に関する情報を提供します。コマンド行ユーティリティを重点的に使用するサイトでは、大量のデータが作成される可能性があります。データの増加が問題にならない場合に推奨されます。
-
%System/%Login/Login — ログインに関する情報を提供します。大規模なサイトでは、大量のデータが作成される可能性があります。データの増加が問題にならない場合に推奨されます。
-
%System/%Login/LoginFailure — 未承認で試行されたログインに関するフィードバックを提供します。推奨されます。
-
%System/%Security/Protect — 保護されたデータの読み取り、書き込み、または使用の試行に関するデータを提供します。推奨されます。
-
アプリケーションの認証メカニズムの変更
データベースへのアクセス制限では、アプリケーションでより厳密な認証メカニズムが使用されるようにインスタンスを構成することが重要です。このセクションでは、この手順の実行方法について説明します。ここでは、サンプル・アプリケーションとして管理ポータルを使用し、より厳密な認証メカニズムへの移行の例として、最小セキュリティ・インストールのような認証なしのアクセスから、パスワードを要求するアクセスへ変更します。
以下の手順を実行すると、変更されるインスタンスが、ポータルへのアクセス以上のさまざまな影響を受ける可能性があります。この詳細は、(1) インスタンスの構成、および (2) この手順のみを実行しているのか、それともここに示しているすべての手順を実行するのかによって異なります。具体的には、以下を行います。
-
%Service_WebGateway:Use をパブリックにしないとは、Web アプリケーションのユーザすべてに、何か別の方法で %Service_WebGateway:Use を付与する必要があることを意味します。
-
UnknownUser を %All ロールから削除すると、さまざまな影響があります。
適切に機能する認証をアプリケーションに提供するには、アプリケーションと、このアプリケーションが使用するサービスの両方に同一の認証メカニズムが必要です。Web アプリケーションでは、Web ゲートウェイ・サービスと一致するように Web ゲートウェイを構成する必要もあります。したがって、管理ポータルに認証を提供するために、同時に機能させる必要のある以下の 3 つのレイヤがあります。
-
%Service_WebGateway サービス
-
Web ゲートウェイ
-
管理ポータル・アプリケーション
これらのレイヤに対応する認証メカニズムがない場合、通常、アクセスが拒否されます。例えば、ログイン・ページの表示や管理ポータルへのアクセスの代わりに、“ページを表示できません” エラーが表示されます。
(1) Web アプリケーションが Web ゲートウェイや %Service_WebGateway よりも強力な認証メカニズムを使用している場合に、(2) 認証に成功すると、システムのセキュリティはそれほど強力ではないメカニズムを提供するものになります。
最小セキュリティ・インストールを持つインスタンスでは、Web ゲートウェイ、%Service_WebGateway、および管理ポータル・アプリケーションはすべて非認証アクセス用に設定されます。ポータルにパスワード・レベルの認証を提供するには、さまざまな InterSystems IRIS 要素を以下のように構成する必要があります。
-
Web ゲートウェイ・サービスは、パスワード認証を要求する必要があります。
-
Web ゲートウェイは、この認証のためにユーザ名とパスワードを提供する必要があります。
-
このゲートウェイを表すユーザには、Web ゲートウェイ・サービスを使用するために十分な特権が必要です。
-
管理ポータルにはパスワード認証が必要です。
-
ポータルのユーザすべてには、このポータルを使用するために十分な特権が必要です。
ポータルでの 1 回のセッション中に、以下の手順をすべて実行します。そうしないと、ポータルからロックアウトされ、残りの手順を ^SECURITY ルーチンで実行しなければならなくなります。
このような変更を行う手順の概要は以下のとおりです。
-
必要に応じて、インスタンスへの変更を追跡、記録するために監査を有効化します。詳細は、"監査の有効化" を参照してください。
-
必要に応じて、クラス・リファレンスを使用可能にします。
-
新しいポリシーの施行を開始します。
この処理の完了後、ユーザがポータルに接続しようとすると、ログイン・プロンプトが表示されます。
InterSystems IRIS データベース・インスタンスには相互依存する要素が多数あります。このため、変更のために指定されていることのみを、過不足なく行うことをお勧めします。そうしないと、インスタンスからロックアウトされる場合があります。また、インスタンスが一時的に動作不能になることもあります。
CSPSystem ユーザに %Service_WebGateway:Use 特権を付与
CSPSystem ユーザは、InterSystems IRIS インストール・プロセスにより作成されます。このユーザは、%Service_WebGateway サービスとのやり取りにおける Web ゲートウェイを表します。サービスのアクセスは制限されるので、このユーザは、認証プロセスのために %Service_WebGateway:Use 特権を持つ必要があります。
%Service_WebGateway と呼ばれるサービスと、%Service_WebGateway と呼ばれるリソースがあります。このリソースは、サービスへのアクセスを規制します。したがって、このサービスにアクセスするには、このリソースに対する Use 許可、つまり %Service_WebGateway:Use 特権がユーザに必要です。
%Service_WebGateway:Use 特権を CSPSystem ユーザに関連付けるには、以下の手順を実行します。
-
管理ポータルのホーム・ページで、[ロール] ページ ([システム管理]→[セキュリティ]→[ロール]) に移動します。
-
[ロール] ページで、[新規ロール作成] をクリックします。[ロール編集] ページが表示されます。このページでは、[名前] フィールドが編集可能になっています。
-
%Service_WebGateway:Use 特権が含まれるように、ロールの名前を入力します (例 : “GatewayRole”)。
-
[保存] をクリックします。これにより、InterSystems IRIS にロールが作成されました。
-
[ロール編集] ページの [一般] タブにある [特権] セクションで、[追加] をクリックします。このロールについて使用可能なリソースのリストが表示されます。
-
このリストで [%Service_WebGateway] をクリックし、次に [保存] をクリックします。新たに作成されたロールには、%Service_WebGateway:Use 特権が含まれるようになります。
-
[ロール編集] ページの [メンバ] タブを選択します。
-
このタブで、新しく作成したロールに CSPSystem ユーザを割り当てることができます。[使用可能] リストのユーザから [CSPSystem] をクリックし、右向き矢印をクリックして、[選択済み] に移動します。
-
[割り当てる] をクリックして、CSPSystem をロールに割り当てます。(つまり、CSPSystem はこのロールのメンバになります)。これは、CSPSystem が %Service_WebGateway:Use 特権を持っていることを意味します。
システムは、Web ゲートウェイを表すために CSPSystem ユーザを作成します。必要であれば、別のユーザがこの機能を実行できます。この手順は CSPSystem ユーザのみを参照します。別のユーザを使用する場合、必要な箇所で CSPSystem をそのユーザ名で置き換えます。
CSPSystem ユーザのパスワードを変更
最小セキュリティ・インストールでは、CSPSystem ユーザに対してパスワード “SYS” が与えられるので、このパスワードを攻撃者の知らないもの、または推測できないものに変更することが重要です。以下はその方法です。
-
管理ポータルで、[ユーザ] ページ ([システム管理]→[セキュリティ] [ユーザ]) に移動します。
-
[ユーザ] ページで、[CSPSystem] をクリックします。[ユーザ編集] ページが表示されます。
-
[パスワード] フィールドに CSPSystem に対する新しいパスワードを入力します。他のユーザは誰もこのパスワードを覚える必要はないので、必要なだけ長く、複雑にすることができます。このパスワードは、次の操作 "ユーザ名とパスワードを提供するように Web ゲートウェイを構成" を完了するまでの間、覚えておく必要があります。
-
[パスワード (再入力)] フィールドに新しいパスワードを再度入力して、[保存] をクリックします。ポータルからエラー・メッセージやダイアログが表示されない場合、パスワードの変更は正常に行われています。
必要に応じて、前の手順で認証のために作成されたロールに CSPSystem が割り当てられていることを確認することもできます。このためには、[ロール] タブをクリックします。[CSPSystem が割り当てられているロール] という名前の列を持つテーブルには、新しく作成したロールが表示されるはずです。
ユーザ名とパスワードを提供するように Web ゲートウェイを構成
パスワード認証を要求するように %Service_WebGateway を構成するため、Web ゲートウェイはユーザ名とパスワードのペアを提供する必要があります。適切な特権レベルを持つユーザをセットアップすると、ゲートウェイが提供できるユーザ名とパスワードのペアが作成されます。次の手順では、InterSystems IRIS サーバから要求されたときに、このユーザ名とパスワードのペアを提供できるようにゲートウェイを構成します。以下はその方法です。
-
管理ポータルで、[ウェブゲートウェイ管理] ページ ([システム管理]→[構成]→[ウェブゲートウェイ管理]) に移動します。
-
[ウェブゲートウェイ管理] ページで、左側のリストから [サーバ接続] を選択します。[サーバ・アクセス] フレームが表示されます。
-
[サーバ・アクセス] フレームでは LOCAL サーバがハイライト表示されます。編集のために [実行] をクリックします。[サーバ・アクセス] パラメータや [エラー・ページ] パラメータの並んだページが表示されます。
-
このページには、[接続セキュリティ] セクションがあります。
-
[接続セキュリティ・レベル] ドロップダウンに [パスワード] が表示されていることを確認します。
-
[ユーザ名] フィールドに、「CSPSystem」と入力します。
-
[パスワード] および [パスワード (確認)] フィールドに、前のセクションで選択したパスワードを入力します。
-
ページの下部にある [設定を保存] をクリックします。
-
管理ポータルに戻るには、左ペインにあるリスト下部の [管理ポータルに戻る] をクリックします。
パスワード認証を要求するように %Service_WebGateway を構成
ユーザ名とパスワードを提供するようにゲートウェイを構成し、CSPSystem ユーザに必要なレベルの特権を付与したら、次に、パスワード認証を要求するように、Web アプリケーションを管理するサービス (%Service_WebGateway) を構成します。以下はその方法です。
-
管理ポータルのホーム・ページで、[サービス] ページ ([システム管理]→[セキュリティ]→[サービス]) に移動します。
-
[サービス] ページで、[%Service_WebGateway] をクリックします。%Service_WebGateway の [サービス編集] ページが表示されます。
-
[サービス編集] ページの [許可された認証方法] で [認証なし] アクセスが無効化されていること、および [パスワード] アクセスが有効化されていること (別名 : “ログイン認証”) を確認します。[保存] をクリックします。
%Service_WebGateway:Use 特権のパブリック状態を削除
%Service_WebGateway がパスワード認証を要求し、適切な権限を持つユーザを使用してゲートウェイで認証を行うことができるようになったら、次に、%Service_WebGateway:Use をパブリック許可から除外します。以下はその方法です。
-
管理ポータルのホーム・ページで、[リソース] ページ ([システム管理]→[セキュリティ]→[リソース]) に移動します。
-
[リソース] ページで、%Service_WebGateway に対応する行の [編集] をクリックします。%Service_WebGateway の [リソース編集] ページが表示されます。
-
[パブリック許可] セクションで [使用] ボックスをオフにします。[保存] をクリックします。
%Service_WebGateway:Use がパブリック特権ではなくなると、これが明示的に付与されたユーザのみが Web アプリケーションを使用できるようになります。これらのユーザのリストを作成し、その他の方法でこの特権を付与する必要が生じる場合もあります。
パスワード認証のみを受け入れるように管理ポータルを構成
ゲートウェイと InterSystems IRIS サーバの間の接続に新しい認証メカニズムが使用されるようになったら、次に、これに見合ったメカニズムが使用されるように管理ポータル・アプリケーションを構成します。この例ではインスタンス認証メカニズムを使用します。ポータルの認証メカニズムを変更するための手順は以下のとおりです。
-
管理ポータルのホーム・ページで、[ウェブ・アプリケーション] ページ ([システム管理]→[セキュリティ]→[アプリケーション]→[ウェブ・アプリケーション]) に移動します。
-
[ウェブ・アプリケーション] ページでは、/csp/sys アプリケーションは管理ポータルのホーム・ページを表します。このアプリケーションを編集するには、この行の名前 [/csp/sys] をクリックします。/csp/sys アプリケーションの [ウェブ・アプリケーションの編集] ページが表示されます。
-
[セキュリティの設定] の [許可された認証方法] で、[認証なし] アクセスを無効化し、[パスワード] アクセスを有効化します。[保存] をクリックします。
-
ポータルのその他のページと選択肢を構成するすべてのアプリケーションに対しても、[非認証] アクセスを無効にし、[パスワード] アクセスを有効にします。これらのアプリケーションには以下のものがあります。
-
/csp/sys/exp
-
/csp/sys/mgr
-
/csp/sys/op
-
/csp/sys/sec
Note:アプリケーション /csp/sys/op を編集した後、さらなる変更を加えるためには認証が必要になります。
-
このように構成することで、ポータルを使用するにはパスワード認証 (別名は “インスタンス認証”) が必要になり、認証なしアクセスが許可されなくなるので、各構成部分が整合性のある動作をします。次の手順では、関連するユーザがすべて、ポータルへの適切なアクセス権を持つことを確認します。
インスタンスのユーザに対して適切な権限レベルを指定
認証なしアクセスを受け入れるようにポータルが構成されている場合、どのようなユーザでも UnknownUser として接続できます。最小セキュリティ・インストールでは UnknownUser は %All ロールのメンバになるので、ポータルからロックアウトされる心配はありません。ここで、ポータルによりパスワード認証が要求されるようになると、正当なユーザは %Operator ロール、%Manager ロール、または %All ロールのメンバとなる必要があります。
最小セキュリティ・インストールでは、SuperUser、Admin、_SYSTEM、および UnknownUser はすべて、このレベルの特権を持ちます。また、パスワードはすべて “SYS” です。
通常のインストールまたはロック・ダウン・インストールでは、UnknownUser は有効になりますが、ロールは割り当てられません。
通常のインストールまたはロック・ダウン・インストールでは、パスワードはインストール・プロセスで設定されますが、ここで変更することもできます。
適切にユーザのセキュリティを確保する手順は以下のとおりです。
-
UnknownUser を無効化します。または、%All ロールから UnknownUser を削除します。
-
UnknownUser を無効化する手順は以下のとおりです。
-
[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) で、[名前] 列の下の [UnknownUser] をクリックします。UnknownUser に対応する [ユーザ編集] ページが表示されます。
-
[ユーザ有効] フィールドをクリアし、[保存] をクリックします。
-
-
%All ロールから UnknownUser を削除するには、以下の手順を実行します。
-
[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) で、[名前] 列の下の [UnknownUser] をクリックします。UnknownUser に対応する [ユーザ編集] ページが表示されます。
-
[ユーザ編集] ページの [ロール] タブに進みます。
-
[ユーザ UnknownUser には以下のロールが割り当てられています] テーブルの [%All] 行で、[削除] をクリックします。
-
Important:UnknownUser を通じたアクセスの制限は広い範囲に影響を及ぼします。これは、インスタンスのユーザが十分な特権を持っていない場合に特に顕著です。
-
-
認証されていない可能性のあるその他のユーザが、%All、%Developer、%Manager、%Operator、%SQL、または特権を付与されたその他のユーザ定義ロールのメンバではないことを確認します。このためには、%All ロールから UnknownUser を削除するのと類似した処理を行います
(特権を付与するユーザ定義ロールは、%Admin... リソースのいずれか、%Development、または %Service もしくは %System リソースのいずれかに対する Use 許可を持つか、%DB_IRISLIB もしくは %DB_IRISSYS に対する Write 許可を持つ可能性があります)。
-
ポータルへのアクセス権を持っているはずのユーザがすべて、%All、%Developer、%Manager、%Operator、%SQL、またはポータルへのアクセスを付与する任意のユーザ定義ロールに割り当てられていることを確認します。これらのユーザそれぞれについて、以下の手順を実行します。
-
[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) で、[名前] 列の下にあるユーザの名前をクリックします。そのユーザに対応する [ユーザ編集] ページが表示されます。
-
[ユーザ編集] ページの [ロール] タブに進みます。
-
目的のロールを [使用可能] から [選択済み] リストに移動します。このためには、ロールを選択し、右矢印ボタンをクリックし、[割り当てる] をクリックして、ユーザをロールに割り当てます。
-
-
SuperUser および Admin ユーザのパスワードを既定値から変更し、これらのアカウントを無効にします。以下はその方法です。
-
[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) で、[名前] 列の下にあるユーザの名前をクリックします。そのユーザに対応する [ユーザ編集] ページが表示されます。
-
[新規パスワード入力] をクリックします。
-
[パスワード] フィールドに新しいパスワードを入力します。
-
[パスワード (再入力)] フィールドでパスワードを再入力します。
-
[ユーザ有効] の選択をクリアし、[保存] をクリックします。
Note:InterSystems IRIS には、%All ロールを持つ有効なアカウントが 1 つ以上必要です。%All ロールを持つ一意のユーザを作成し、SuperUser、Admin、および _SYSTEM ユーザは無効にすることをお勧めします。
-
少なくとも 1 人のポータル管理ユーザのパスワードを知っていることを確認してください。そうしないと、ポータルからロックアウトされ、緊急アクセスを使用してログインし、^SECURITY ルーチンを使って 1 つ以上のパスワードをリセットしなければならなくなる可能性があります。
クラス・ドキュメントを使用可能にする
サービス、Web ゲートウェイ、およびポータル・アプリケーションの構成が完了したら、クラス・ドキュメントを使用できるようにしましょう。以下はその方法です。
-
管理ポータルのホーム・ページで、[ウェブ・アプリケーション] ページ ([システム管理]→[セキュリティ]→[アプリケーション]→[ウェブ・アプリケーション]) に移動します。
-
ドキュメントを使用できるようにするには、以下の操作を実行します。
-
[ウェブ・アプリケーション] ページでは、/csp/documatic アプリケーションがクラスリファレンス・アプリケーションです。このアプリケーションを編集するには、この行の [/csp/documatic] をクリックします。/csp/documatic アプリケーションの [ウェブ・アプリケーションの編集] ページが表示されます。
-
[セキュリティの設定] の [許可された認証方法] で、[認証なし] アクセスを無効化し、[パスワード] アクセスを有効化します。[保存] をクリックします。
Note:通常のインストールの場合、パスワード・アクセスは既に有効になっています。
-
この手順を実行していない場合、サービスはパスワード・プロンプトを要求しますが、アプリケーションは認証なしアクセスを試行します。これにより、%All に割り当てられているユーザを含め、すべてのユーザがドキュメントにアクセスできなくなります。
新しいポリシーの施行を開始
この時点で、InterSystems IRIS インスタンスの構成は完了し、適切な動作をするようになっています。ただし、既存のすべての接続で、引き続き非認証アクセスが使用されています。新しいポリシーの施行を開始するには、次のイベントが発生しなければなりません。
認証された Web ゲートウェイ接続の確立
Web ゲートウェイに認証接続を確立させるには、次の手順を実行します。
-
管理ポータルのホーム・ページで、[システム管理]→[構成]→[ウェブゲートウェイ管理] を選択します。[ウェブゲートウェイ管理] ページが表示されます。
-
[ウェブゲートウェイ管理] ページで、左側のリストから [接続を閉じる] を選択します。[接続を閉じる] フレームが表示されます。
-
[接続を閉じる] をクリックします。これにより、ゲートウェイと InterSystems IRIS サーバ間の接続がすべて閉じられたことを示すメッセージが表示されます。
次回ユーザがページを要求すると、ゲートウェイにより、InterSystems IRIS サーバへの接続が再度確立されます。この接続では、選択された認証メカニズムが使用されます。
認証されたユーザ接続の確立
この時点では、管理ポータルへのすべての接続で、依然として認証なしアクセスが使用されています。すぐに認証アクセスが必要でない場合、何もする必要はありません。ユーザはポータルへの接続を順次終了し、再接続するときに認証が必要となります(接続の終了する理由には、マシンの再起動、ブラウザの停止と再開、ブラウザ・キャッシュのクリア、ポータルのログアウトなどがあります)。
接続で強制的に認証アクセスを使用する必要がある場合、以下のようにして InterSystems IRIS を停止し、再起動します。例えば、Windows で、InterSystems IRIS が既定の [スタート] メニューのページで利用できる場合、以下のようにします。
-
Windows の [スタート] メニューから [プログラム]→[InterSystems IRIS] を選択し、InterSystems IRIS インスタンスを再起動します。
-
InterSystems IRIS インスタンスのサブメニューで、[インターシステムズの停止] を選択します。
-
表示されたダイアログで、[再起動] を選択し、[OK] をクリックします。
InterSystems IRIS の実稼動インスタンスを使用している場合、ユーザは一時的に、InterSystems IRIS 全体またはポータルへアクセスできなくなるため、再起動にはトラフィックが少ない時間を選択します。
パブリック・リソース数の制限
どのようなリソースでも、パブリック・リソースとして指定できます。つまり、どのようなユーザでも、パブリック設定に応じて、このリソースを読み取り、書き込み、または使用できます。以下のリソースおよび許可は、常にパブリックにする必要があります。
リソース | 許可 |
---|---|
%DB_IRISLOCALDATA | R |
%DB_IRISLIB | R |
%DB_IRISTEMP | RW |
インスタンスのセキュリティを強化する場合は、パブリック・リソースの数を制限してください。そのための手順は以下のとおりです。
-
これらのリソースへのアクセスを本当に必要としているすべてのユーザに、必要な特権が与えられていることを確認します。
Important:%Service_WebGateway:Use に対する特権を適切なユーザに提供しなかった場合、この手順により、管理ポータルやその他の Web アプリケーションからの大規模なロックアウトが発生する場合があります。
-
管理ポータルのホーム・ページで、[リソース] ページ ([システム管理]→[セキュリティ]→[リソース]) に移動します。
-
リソースに対するパブリック許可が 1 つ以上ある場合、各リソースの所有する権限は、[リソース] ページのリソース・テーブルにある [パブリック許可] 列にリストされます。[編集] をクリックしてリソースを選択します。選択したリソースの [リソースの編集] ページが表示されます。
-
[リソースの編集] ページで、チェックマークが付けられている [パブリック許可] フィールドをすべてクリアし、[保存] をクリックします。このリソースはパブリックではなくなります。
すべてのパブリック・リソースについて、この操作を実行します。
サービスへのアクセス制限
ユーザが InterSystems IRIS と対話する経路にはさまざまな種類があります。サービスは、これらの経路へのアクセスを規制します。インターシステムズのサービスへのアクセスを制限するには、以下の選択肢があります。
-
有効なサービス数の制限。使用しているアプリケーションで必要なもののみにします。
-
パブリック・サービス数の制限。使用しているアプリケーションで必要なもののみにします。
有効なサービス数の制限
有効なサービス数を制限するには、以下の手順を実行します。
-
InterSystems IRIS インスタンスで必要なサービスを判断します。通常、これらは以下のとおりです。
-
ユーザ・アクセスの各形式で必要とされるサービス
-
自動アクセスで必要とされるサービス
-
ローカルなプログラマ・モード・アクセスのための %Service_Console (Windows の場合) または %Service_Terminal (UNIX または UNIX® の場合)
-
-
管理ポータルのホーム・ページで、[サービス] ページ ([システム管理]→[セキュリティ]→[サービス]) に移動します。
-
[サービス] ページで、必要のないサービスそれぞれの名前をクリックして選択します。選択したサービスの [サービス編集] ページが表示されます。
-
[サービス編集] ページで、[サービス有効] フィールドをクリアし、[保存] をクリックします。これで、このサービスは無効化されました。
必要のないサービスをすべて無効化すると、InterSystems IRIS への経路はサービスに必要な経路のみになります。
パブリック・サービス数の制限
各サービスはリソースに対応します。ほとんどの場合、リソースとサービスは同じ名前を持ちます (例 : %Service_WebGateway)。ただし、%Service_Bindings サービスは例外で、%Service_Object リソースおよび %Service_SQL リソースと関連付けられています。サービスは、それに関連付けられているリソースの設定のため、パブリックです。したがって、サービスを非パブリックにする手順は、その他のリソースを非パブリックにする手順と同じです。これについては、"パブリック・リソース数の制限" で説明しています。
IP アドレスまたはマシン名を基準にしたサービスへのアクセスの制限
一部のサービスでは、IP アドレスやマシン名に従って、サービスへのアクセスを制限することができます。これは、“許可された接続” を制限する機能と言われます。この機能をサポートしているサービスは以下のとおりです。
-
%Service_Bindings
-
%Service_CacheDirect
-
%Service_ECP
-
%Service_Monitor
-
%Service_Shadow
-
%Service_WebGateway
既定では、サービスはすべてのマシンからの接続を受け入れます。サービスにアドレスやマシン名が関連付けられていない場合、このサービスはすべてのマシンからの接続を受け入れます。サービスが接続を受け入れるアドレスやマシン名が 1 つ以上指定されている場合、サービスはこれらのマシンからの接続のみ受け入れます。
この機能は、%Service_CallIn、%Service_ComPort、%Service_Console、%Service_DataCheck、%Service_Login、%Service_Mirror、%Service_Telnet、および %Service_Terminal では使用できません。
IP アドレスを基準にサービスへのアクセスを制限するには、以下の手順に従います。
-
サービスへの正当なアクセスを持つマシンの IP アドレスを判断します。
-
管理ポータルのホーム・ページで、[サービス] ページ ([システム管理]→[セキュリティ]→[サービス]) に移動します。
-
[サービス] ページで、IP アドレスを基準にアクセスを制限するサービスの名前を個別にクリックして選択します。選択したサービスの [サービス編集] ページが表示されます。
-
[サービス編集] ページの [許可された接続] セクションで、[新規追加] をクリックします。
-
表示されたダイアログに、接続を許可する IP アドレスを入力します。[OK] をクリックします。
-
[新しく追加] をクリックし、必要なアドレスを入力します。
接続を許可する IP アドレスを制限するサービスそれぞれについて、この手順を実行します。
リモート特権アクセスの制限
InterSystems IRIS は、 ECP リモート・ジョブ要求をサポートしています。ただし、リモート・ジョブはサーバ上で root として実行されるので、意図した以上の特権でユーザがサーバ上で作業できる可能性があります。リモート・ジョブの扱いを無効にして、サーバへのリモート特権アクセスを制限するには、"このパラメータの変更Opens in a new tab" の手順に従い、netjob を false に設定します。既定ではこの設定は true になっています。
特権ユーザ数の制限
すべての InterSystems IRIS インスタンスには、%All ロールに割り当てられたユーザが少なくとも 1 人必要です。実際、このロールに割り当てられたユーザが 1 人のみの場合、InterSystems IRIS はこのロールからこのユーザを削除できないようにします。しかし、時間の経過に従って、あるインスタンスの %All に必要以上のユーザが割り当てられてしまうことがあります。その原因には、割り当てられたユーザは組織を離れたがアカウントが無効化されていない、一時的な割り当てが削除されていないなどがあります。
%All ロールと共に、システム定義ロールの %Manager、%Developer、%Operator、および %SQL もユーザに過度の特権を与えることができます。また、このような動作を行うユーザ定義ロールもあります。このようなロールに割り当てられたユーザは、“特権ユーザ” と呼ばれることもあります。
特権ユーザの数を制限するには、どのユーザが各特権ロールに割り当てられているかを判断し、不要なユーザを削除します。以下はその方法です。
-
管理ポータルのホーム・ページで、[ロール] ページ ([システム管理]→[セキュリティ]→[ロール]) に移動します。
-
[ロール] ページで、ロールの名前をクリックします。そのロールに対応する [ロール編集] ページが表示されます。
-
[ロール編集] ページの [メンバ] タブをクリックします。そのロールに割り当てられているユーザとロールのリストが表示されます。
-
指定されたロールからユーザを削除するには、削除するユーザまたはロールの行にある [削除] をクリックします。
%All および前述のその他のロールを含め、特権ロールそれぞれについてこの手順を実行します。また、_SYSTEM ユーザを無効化することも重要です。その手順については、"_SYSTEM ユーザの無効化" で説明します。
一見して特権のないロールが “代理特権” とも呼べる特権を持っていることもあります。この現象は、一見して特権のないロールを特権ロールに割り当てているときに発生します。この場合、代理特権を持つロールに割り当てられたすべてのユーザは、特権ロールに関連付けられたすべての特権を持ちます。
可能な限り、代理特権は作成しないようにしてください。どうしても避けられない場合、代理特権を持つロールに割り当てるユーザの数はできる限り少なくします。
_SYSTEM ユーザの無効化
InterSystems IRIS インストール・プログラムは _SYSTEM ユーザを作成します。このユーザは、SQL 標準に従って、SQL ルート・ユーザとして作成されます。最小セキュリティ・インストールでは、このユーザの既定のパスワードは “SYS” です。標準およびロックダウン・インストールの既定のパスワードは、インストール処理中に指定されたものになります。このユーザとパスワード “SYS” がどちらも SQL 標準により公開されているため、またこのユーザの SQL 特権のため、_SYSTEM を無効化することは、InterSystems IRIS インスタンスへのアクセスを制限するために重要です。
そのための手順は以下のとおりです。
-
管理ポータルのホーム・ページで、[ユーザ] ページ ([システム管理]→[セキュリティ]→[ユーザ]) に移動します。
-
[ユーザ] ページで、名前 [_SYSTEM] をクリックして、_SYSTEM の [ユーザ編集] ページを開きます。
-
_SYSTEM の [ユーザ編集] ページで、[ユーザ有効] フィールドをクリアします。[保存] をクリックします。
_SYSTEM を無効化した後でルート・レベルの SQL 特権を確認する必要がある場合は、必要な操作を実行できるように、ユーザを一時的に有効化する必要があります。
UnknownUser のアクセスの制限
認証なしアクセスをサポートしているインスタンスでは、認証を使用しない接続は UnknownUser アカウントを使って確立されます。最小セキュリティ・インストールでは、既定の動作は以下のようになります。
-
すべての接続で UnknownUser が使用されます。
-
UnknownUser は %All ロールに割り当てられます。
-
UnknownUser は SQL 特権をすべて保持しています。
UnknownUser のアクセスを制限するには、有効なすべてのサービスの認証なしアクセスを無効にします(その他の操作は効果がないか、管理ポータルからロックアウトされる可能性があります)。
このセクションでこれまでに示したすべての操作の実行を完了している場合、既に UnknownUser の無効化とパブリック・リソース数の制限が完了している可能性があります。
UnknownUser アカウントで発生する可能性のあるロックアウトの問題
あるインスタンスが最小セキュリティでインストールされている場合、UnknownUser のロールは %All になります。また、このインスタンスは、すべてのサービスおよびアプリケーションに対して、認証なしアクセスを提供します。このユーザのロールを単に %All から別のものに変更しても、認証なしアクセスを引き続き許可している場合は、基本機能を使用できない可能性があります。
これは、このような状況では、認証が行われないまま、InterSystems IRIS により、選択したツールへの接続が確立されるからです。認証が行われないと、システムにより、自動的にユーザ・アカウントが UnknownUser に設定されます。次に、ユーザ特権がチェックされます。UnknownUser が十分な特権を持っていない場合、ツールへのアクセスは制限されるか不可能になります。このような状況では、例えば、ターミナルには “アクセスが拒否されました” というメッセージが表示され、シャットダウンされます。ポータルではメイン・ページは表示されますが、オプションは一切選択できません。
この状態を正常に戻すには、以下の手順に従います。
-
InterSystems IRIS を緊急アクセス・モードで起動します。
-
UnknownUser アカウントに十分な特権を与えます。
UnknownUser を使用できないようにするには、管理ポータルに対する認証メカニズムをアップグレードする必要があります。
サードパーティ・ソフトウェアの構成
インターシステムズ製品は、ウイルス・スキャンなどのインターシステムズ製ではないツールと共に実行したり、そのようなツールとやり取りすることが頻繁にあります。このようなやり取りでもたらされる可能性がある影響に関する重要な情報については "インターシステムズ製品と連係して動作するようにサードパーティ・ソフトウェアを構成する方法" を参照してください。