サービス
InterSystems IRIS® インスタンスにユーザ、アプリケーション、さらには他の InterSystems IRIS インスタンスから接続するには、さまざまな経路があります。これらの経路はインターシステムズのサービスで管理され、これらのサービスは InterSystems IRIS への接続の監視役として機能します。インターシステムズのサービスは、ユーザおよびコンピュータといったエンティティから InterSystems IRIS に接続するための主要な手段なので、セキュリティ管理においてこれらのサービスの管理が不可欠な要素となります。
使用可能なサービス
[サービス] ページ ([システム管理] > [セキュリティ] > [サービス]) には、InterSystems IRIS が提供するサービスのリストが表示されます。
サービスは、以下の 2 つのグループに分けて考えることができます。
-
リソース・ベース・サービス — ユーザが InterSystems IRIS にアクセスできるようにするサービスです。この種類のサービスでは、InterSystems セキュリティで認証および承認のインフラストラクチャが必要です。したがって、これらのサービスはリソースに関連付けられ、さまざまな認証メカニズムを利用します。
-
基本サービス — InterSystems IRIS サーバと InterSystems IRIS アプリケーション間の接続を提供するサービスです。これらのサービスには関連付けられたリソースがありません。したがって、これらのサービスが提供するセキュリティ機能は、有効にするか無効にするかのみを設定できる基本的なものにとどまります。これらを有効または無効にすることで、すべての形式のアクセスを制御できます。
以下のリストは、使用可能なサービスとその制御対象、および各サービスの種類をまとめたものです。
-
%Service_Bindings — Native API、SQL、またはオブジェクト、スタジオの使用 (リソース・ベース)
-
%Service_CacheDirect — 他のインターシステムズ社製品に接続するための独自のメカニズム (リソース・ベース)
-
%Service_CallIn — コールイン・インタフェース (リソース・ベース)
-
%Service_ComPort — システムに接続する COMM ポート (リソース・ベース)
-
%Service_Console — Windows コンソールからのローカル・ターミナル (macOS、UNIX®、および Linux で使用する %Service_Terminal に相当) (リソース・ベース)
-
%Service_DataCheck — DataCheck ユーティリティ (基本)
-
%Service_DocDB — ドキュメント・データベース・アプリケーション (リソース・ベース)
-
%Service_ECP — エンタープライズ・キャッシュ・プロトコル (ECP) (基本)
-
%Service_Login — $SYSTEM.Security.Login の使用 (リソース・ベース)
-
%Service_Mirror — InterSystems IRIS のデータベース・ミラーリング (基本)
-
%Service_Monitor — SNMP およびリモート・モニタ・コマンド (基本)
-
%Service_Shadow — シャドウの宛先からこのインスタンスへのアクセス (既存の構成のみで使用) (基本)
-
%Service_Sharding — このインスタンスにシャード・サーバとしてアクセス (基本)
-
%Service_Telnet — Windows サーバおよびリモート Windows ターミナル・セッション (リソース・ベース)
-
%Service_Terminal — macOS、UNIX®、および Linux の各コンソールからのターミナル (Windows で使用する %Service_Console に相当) (リソース・ベース)
-
%Service_WebGateway — Web アプリケーション・ページ (リソース・ベース)
-
%Service_Weblink — レガシ・サービスとして使用できる WebLink (基本)
サービスのテーブルには、各サービス・プロパティの列があります。
個々のサービスに関するメモ
%Service_Bindings
%Service_Bindings サービスの場合、アクセスを管理するリソースのカテゴリは、Native API、オブジェクト、および SQL の 3 つです。Native API カテゴリには、ユーザが認証後に Native API を使用してデータにアクセスできるかどうかを制御する 4 つのリソースがあります。それらのリソースは、%Native_ClassExecution (ClassMethodValue() などのクラス実行関数へのアクセスを制御)、%Native_Concurrency (Lock() などの並行処理関数へのアクセスを制御)、%Native_GlobalAccess (Kill() などのグローバル・アクセス関数へのアクセスを制御)、%Native_Transaction (TCommit() などのトランザクション関数へのアクセスを制御) です。%Developer ロールおよび %Manager ロールには、%Native_ClassExecution および %Native_GlobalAccess が含まれ、既定で Use 権限が割り当てられます。
InterSystems IRIS では、Native API を使用してルーチン実行にアクセスすることは禁止されています。Native API を介してルーチンを使用する必要がある場合は、代わりにクラス実行を利用することをお勧めします。
また、InterSystems IRIS には、%Service_Object リソースおよび %Service_SQL リソースが用意されています。これらのリソースは、ユーザがデータにオブジェクトとしてアクセスできるかどうか、および SQL を使用してアクセスできるかどうかをそれぞれ制御します (ユーザがデータに対するテーブルレベルの SQL 特権を持っている場合は、接続している間、認証されたユーザに %Service_SQL:Use 特権が自動的に与えられます)。
また、このサービスはスタジオへのアクセスも制御します。スタジオとセキュリティの詳細は、"セキュリティ" を参照してください。
%Service_Console および %Service_Terminal
これら 2 つのサービスは、どちらも InterSystems IRIS に対するコンソール形式またはターミナル形式のアクセスを提供します。これらのサービスにより、Windows システムと非 Windows システムの両方で類似の機能が実現します。Windows に対しては %Service_Console で、UNIX®、Linux、および Mac に対しては %Service_Terminal でこの機能が提供されます。
ターミナルまたはコンソールへのアクセスは、インターシステムズのセキュリティの中でも機密性に最も深くかかわる機能の 1 つです。攻撃者がこれらのいずれかの方法で InterSystems IRIS にアクセスできると、機密性の高いデータが読み取られたり、破壊されたりする恐れがあります。
%Service_DataCheck
このサービスは、DataCheck ユーティリティの使用を管理します。このユーティリティは、2 つのシステムにあるデータの状態を比較するメカニズムを提供します。詳細は、"複数のシステムでのデータ整合性" を参照してください。また、セキュリティの問題については、特に "DataCheck サービスの有効化" を参照してください。
%Service_ECP
リソースは ECP の使用を制御しません。ユーザがサービスを有効化または無効化します (この理由から、ECP は “基本サービス” と呼ばれています)。そのため、分散キャッシュ・クラスタなど、ECP 構成のすべてのインスタンスが、InterSystems IRIS の安全な境界の内部に存在する必要があります。
ECP ベースの構成内で特権が機能する仕組みの詳細は、"分散キャッシュ・クラスタのセキュリティ" を参照してください。
%Service_Login
このサービスは、%SYSTEM.SecurityOpens in a new tab クラスの Login メソッドを明示的に呼び出す機能を制御します。このメソッドの呼び出し形式は以下のとおりです。
Set Success = $SYSTEM.Security.Login(username, password)
ここで、username にはログインしているユーザ、password にはこのユーザのパスワードが入ります。
%Service_Mirror
このサービスは、InterSystems IRIS のデータベース・ミラーリングの使用を規制します。一般的なミラーリングの詳細は、"ミラーリング" を参照してください。ミラーリングの (TLS を使用した) セキュリティの詳細は、"ミラーリングで TLS を使用するための InterSystems IRIS の構成" を参照してください。
%Service_Sharding
このサービスは、シャード・データ・サーバとしての InterSystems IRIS インスタンスの使用を規制します。詳細は、"シャーディングによるデータ量に応じた水平方向の拡張" を参照してください。
%Service_WebGateway
このサービスは、Web ページを提供する接続を管理します。具体的には、Web サーバ上で実行されている Web ゲートウェイのプロセスと InterSystems IRIS サーバとの接続を管理します。このサービスを Web アプリケーションで直接操作することはありません。代わりに、関連する Web アプリケーション定義に認証メカニズムが構成されています。
以下の状況では、Web ゲートウェイを経由してサーバにアクセスすることはできません。
-
サービスに対して有効になっている認証メカニズムがある
-
有効になっている認証メカニズムのいずれに対しても、有効な認証情報が Web ゲートウェイにない
-
サービスに対して非認証アクセスが無効になっている
したがって、このサービスによる非認証アクセスを無効にする場合 (すなわち、[認証なし] の認証メカニズムが無効になっている場合)、InterSystems IRIS サーバへの認証を受けるために必要な情報が Web ゲートウェイに必ず存在しているようにする必要があります。例えば、この情報とは、インスタンス認証 (パスワード) アクセスでは、有効なユーザ名とパスワードのペアであり、Kerberos アクセスでは、有効なサービス・プリンシパル名とキー・テーブルの位置です。Web ゲートウェイの認証情報を指定するには、その管理インタフェースを使用します。標準インストールでは、このインタフェースの URL は http://localhost:52773/csp/bin/systems/module.cxw です。ここで、localhost は、IPv4 では 127.0.0.1、IPv6 では ::1 です。
%Service_WebGateway では、Web サーバ上で実行されている Web ゲートウェイのプロセスと InterSystems IRIS のインスタンス間のバックグラウンド認証のみが制御されます。その結果、Web アプリケーション向けの認証メカニズムは、関連の Web アプリケーション定義で構成され、管理されます。%Service_WebGateway 自体の許可された認証方法を編集することで構成、管理されるわけではありません。
%Service_WebGateway は、ポータルとそのサブアプリケーションの使用を規制するものなので、%Service_WebGateway を無効にしてもシステム・アプリケーションは無効になりません。したがって、ポータルには常にアクセスできます。システム・アプリケーションの詳細は、"組み込みアプリケーション" を参照してください。
不注意な操作でシステム管理ポータルからロックアウトされた場合は、緊急アクセス・モードを使用してシステム管理ポータルにアクセスし、問題を解決できます。詳細は、"緊急アクセス" を参照してください。
サービスのプロパティ
サービスにはそれぞれ、その動作を制御する一連のプロパティがあります。これには以下のものがあります。
-
[サービス名] — サービスの識別子を指定します。
-
[説明] — 必要に応じてサービスについての説明を提供します。
-
[サービス有効] — サービスを有効にするか無効にするかを制御します。サービスが有効になっていれば、認証および承認されたユーザは InterSystems IRIS に接続できます。サービスが無効の場合、InterSystems IRIS への接続は許可されません。
システムが起動したときの各サービスは、InterSystems IRIS が終了したときと同じ状態 (有効または無効) になります。サービスの有効化や無効化は単なるセキュリティ設定ではありません。この設定によって、特定の機能が InterSystems IRIS で提供されるかどうかが決まります。例えば、特定のデーモン・プロセスを起動するかどうか、メモリ構造を割り当てるかどうかなどが決まります。
-
[許可された認証方法] — サービスに接続する際に利用できる認証メカニズムを指定します (2 要素認証メカニズムのいずれかなど)。複数の認証メカニズムが選択されている場合、接続しようとするユーザやクライアントは、それらのどの認証メカニズムでも使用できます。使用可能なメカニズムは、[認証/Web セッション・オプション] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/Web セッション・オプション]) での選択内容によって異なります。複数の認証メカニズムをサポートしているサービスでは、InterSystems IRIS に設定されているカスケード認証の規則に基づいて、これらの認証メカニズムが使用されます。
2 要素認証メカニズムのいずれかが有効になっている場合、それにはチェック・ボックスがあります。表示されている場合には以下の 2 つです。
-
[2 要素のタイムベース・ワンタイム・パスワード] — InterSystems IRIS ユーザの携帯電話または認証デバイスが 2 つ目の認証「要素」として機能します。InterSystems IRIS と電話またはデバイスが秘密鍵を共有します。この鍵はタイムベース・ワンタイム・パスワード (TOTP) の生成に使用されます。ユーザは認証プロセスの一部として、このパスワードを指示に従って入力する必要があります。
-
[2 要素の SMS] — InterSystems IRIS ユーザの携帯電話が 2 つ目の認証 “要素” として使用されます。InterSystems IRIS は携帯電話に 8 桁のセキュリティ・トークンを送信し、ユーザは認証プロセスの一部として、このセキュリティ・トークンを指示に従って入力する必要があります。
詳細は、"2 要素認証" を参照してください。
Note:インスタンスに対して 2 要素認証が有効な場合、このチェック・ボックスはそのインスタンスのすべてのサービスの [サービス編集] ページに表示されます。ただし、2 要素認証は、%Service_Bindings、%Service_Console、および %Service_Terminal で (そのインスタンスに対して有効になっている場合) にのみ使用できます。
-
-
[許可済みの接続元] — このサービスに接続できる接続元の IP アドレスまたはマシン名のリストを指定します。IP アドレスやマシン名が関連付けられていないサービスには、どのマシンからでも接続できます。多層構成では、この機能が極めて便利です。例えば、Web ゲートウェイ・サービスではこの機能を使用して、InterSystems IRIS に接続できる Web サーバを制限できます。分散キャッシュ・クラスタ・データ・サーバの [許可済みの接続元] 機能には、他の機能もあります。"分散キャッシュ・クラスタのセキュリティ" を参照してください。
リソース・ベースのサービスでは、このサービスをパブリックに指定できます。認証されているユーザはすべて、パブリック・サービスを使用できますが、非パブリック・サービスを使用できるのは、そのサービスのリソースに対する Use 許可を持っているユーザのみです。この値は、サービスのメイン・ページ ([システム管理] > [セキュリティ] > [サービス]) に表示され、サービスのリソースについての [リソースの編集] ページで設定できます。可能な値は以下のとおりです。
-
N/A — このサービスに関連付けられたリソースはありません。このサービスには有効化または無効化のみを設定できます。
-
いいえ — このサービスのリソースに対して Use 許可があるロールを持つユーザであれば、アクセスが可能です。許可を持っているかどうかは、ユーザが認証された後に確認されます。
-
はい — あらゆるユーザがアクセスできます。
サービスに対する変更を有効化するには、サービスを再起動する必要があります。
サービスおよび認証
基本サービスでは、インターシステムズのセキュリティの認証をサポートしていません。サービスを有効にするか無効にするかのみを設定できます。これらのサービスのいずれかを有効にすると、すべての接続がそのサービスで受け入れられます。これらのサービスでは、そのサービスを使用するすべてのインスタンスまたはマシンが安全な境界の内部に存在し、有効なユーザのみがアクセス可能であることが前提となっています。これらのサービスには、%Service_ECP、%Service_Monitor、%Service_Shadow、および %Service_Weblink があります。
リソース・ベース・サービスで認証メカニズムを有効にするには、まず、[認証/Web セッション・オプション] ページ ([システム管理] > [セキュリティ] > [システム・セキュリティ] > [認証/Web セッション・オプション]) で、InterSystems IRIS インスタンスに対してこのメカニズムを有効にする必要があります。リソース・ベース・サービスでは、以下のテーブルにある認証メカニズムをサポートしています。複数の認証メカニズムが有効なサービスの場合、InterSystems IRIS ではカスケード認証をサポートしています。
サービス名 | KRB キャッシュ | KRB ログイン | Del | LDAP | OS | IA | Un |
---|---|---|---|---|---|---|---|
%Service_Bindings | N | Y | Y | Y | N | Y | Y |
%Service_CallIn | N | N | Y | Y | Y | N | Y |
%Service_ComPort | N | N | Y | Y | N | Y | Y |
%Service_Console | Y | Y | Y | Y | Y | Y | Y |
%Service_Login | N | N | Y | Y | Y | Y | Y |
%Service_Telnet | N | Y | Y | Y | N | Y | Y |
%Service_Terminal | Y | Y | Y | Y | Y | Y | Y |
%Service_WebGateway | N | Y | Y | Y | N | Y | Y |
キー:
-
KRB キャッシュ — Kerberos キャッシュ
-
KRB ログイン — Kerberos ログイン
-
Del — 代行認証
-
LDAP — LDAP 認証
-
OS — オペレーティング・システム・ベースの認証
-
IA — インスタンス認証
-
Un — 非認証のアクセス
各リソース・ベース・サービスで、有効な認証メカニズムが複数存在する場合、InterSystems IRIS によるユーザの認証では、有効な認証メカニズムのうち最も厳しい基準のものが最初に適用され、基準が緩くなる順番で順次適用されていきます。非認証のアクセスが有効であれば、最後には非認証のアクセスが許可されます。このプロセスは、"カスケード認証" で説明されています。
サービスとそのリソース
リソース・ベース・サービスでは、サービスそのもののプロパティで InterSystems IRIS へのアクセスが制御されます。同時に、サービスのリソースのプロパティで、そのサービスへのアクセスとそのサービスの動作が制御されます。%Service_Bindings を除くすべてのリソース・ベース・サービスでは、サービスに関連付けられたリソースにはそのサービスと同じ名前が付けられています。したがって、%Service_WebGateway リソースは、%Service_WebGateway サービスに対するアクセスを管理します(%Service_SQL リソースおよび %Service_Object リソースは %Service_Bindings に対するアクセスを管理します)。
リソースそのものの関連プロパティは 2 つのみです。1 つはリソースがパブリックかどうかを指定するプロパティで、もう 1 つはリソースがパブリックである場合に許可の種類を指定するプロパティです。サービス・リソースの場合、関連する許可は Use のみです。リソースがパブリックであれば、そのサービスに対してすべてのユーザが Use 許可を持ちます。リソースの詳細は、"リソース" を参照してください。
他のリソースに対する特権がないと、サービスの特権から得られるものはほとんどありません。