InterSystems IRIS セキュリティ
このページでは、インターシステムズのセキュリティの概要について説明し、特に InterSystems IRIS® アプリケーションの記述やメンテナンスに携わるプログラマに最も関係するトピックを詳しく取り上げます。
セキュリティの詳細は、"インターシステムズのセキュリティについて" を参照してください。
概要
このセクションでは、InterSystems IRIS 内でのセキュリティについて紹介し、InterSystems IRIS と外部システム間の通信について説明します。
InterSystems IRIS 内のセキュリティ要素
インターシステムズのセキュリティでは、以下の要素を基にしてシンプルで統合化されたアーキテクチャが提供されています。
-
認証。認証とは、自分が自身で主張するとおりの人物であることを InterSystems IRIS に対して証明する手段です。信頼できる認証がないと、あるユーザが他人になりすまして不正に入手した特権を利用できるため、承認機能の重要性が損なわれることになります。
利用できる認証メカニズムは、InterSystems IRIS にアクセスする方法によって異なります。InterSystems IRIS には、使用可能な認証メカニズムがいくつかあります。プログラミングが必要なものもあります。
-
承認。ユーザが認証された後、セキュリティに関連する次の手順は、そのユーザに使用、閲覧、または変更が認められているリソースが何であるかを確認することです。この判断とそれに基づくアクセスの制御を、承認といいます。
プログラマの場合は、特定のユーザに特定のタスクを実行する許可があるかを確認するように、コードに適切なセキュリティ・チェックを実装する必要があります。
-
監査。監査は、認証および承認システムのアクションなど、システムに関係する検証可能で信頼性の高い追跡のアクションを提供します。この情報は、セキュリティ関連の問題の後に発生する一連のイベントを再構成する基準となります。システムが監査されている事実を示すことが、攻撃者に対する抑止力として機能します (これは、攻撃を加えている間に自身の身元を知られてしまうことを、攻撃者が知っているからです)。
InterSystems IRIS では、監査可能な一連のイベントが提供されており、他のコードに追加できます。プログラマは、カスタム・イベントのコードに監査ログを含める必要があります。
-
データベースの暗号化。InterSystems IRIS データベースを暗号化することで、データを安全な状態で保護できます。暗号化により、承認されないユーザがデータベースの情報を見ることができないようにして、格納されている情報のセキュリティを確保します。InterSystems IRIS で実装している暗号化では AES (Advanced Encryption Standard) アルゴリズムを採用しています。ディスクへの書き込みまたはディスクからの読み取りで、暗号化と解読が実行されます。暗号化と解読は最適化されていて、どのような InterSystems IRIS プラットフォームでも、暗号化と解読による影響は少なく、また判断可能です。実際、暗号化データベースへの書き込み時間が長くなることはまったくありません。
一般にデータベース暗号化のタスクで、コードの記述が必要になることはありません。
InterSystems IRIS との安全な接続
InterSystems IRIS と外部システム間で通信するとき、以下の追加のツールを使用できます。
-
SSL/TLS 構成。InterSystems IRIS では、SSL/TLS 構成を格納して、関連する名前を指定する機能がサポートされています。SSL/TLS 接続が必要な場合 (例えば HTTP 通信用)、プログラムによって該当する構成名を指定すると、InterSystems IRIS によって自動的に SSL/TLS 接続が処理されます。
-
X.509 証明書ストレージ。InterSystems IRIS では、X.509 証明書および秘密鍵をロードして、関連する構成名を指定する機能がサポートされています。X.509 証明書が必要な場合 (例えば SOAP をデジタル署名するため)、プログラムによって該当する構成名を指定すると、InterSystems IRIS によって自動的に証明書情報が抽出され使用されます。
オプションで、関連する秘密鍵ファイルにパスワードを入力したり、これを実行時に指定することができます。
-
認証機関 (CA) へのアクセス。適切な形式の CA 証明書を所定の場所に配置している場合、InterSystems IRIS がこれを使用してデジタル署名などを検証します。
InterSystems IRIS は、CA 証明書を自動的に使用します。プログラミング作業は必要ありません。
InterSystems IRIS アプリケーション
ほぼすべてのユーザが、アプリケーションを使用して InterSystems IRIS と対話します。例えば、管理ポータル自体も一連のアプリケーションです。アプリケーションごとに、専用のセキュリティ機能があります。最も一般的な種類のアプリケーションは Web アプリケーションです。これは、Web ゲートウェイを介して InterSystems IRIS にアクセスするアプリケーションです。Web アプリケーションは、REST または SOAP 経由で Web ゲートウェイを介して通信します。
管理ポータルで、定義、変更および登録を行うことができます (十分な権限を持つユーザとしてログインした場合)。ただし、アプリケーションを導入するときには、インストールの一環でプログラムによってアプリケーションを定義する方が一般的です。InterSystems IRIS ではこれを実現する方法が提供されています。
InterSystems IRIS アプリケーションの詳細は、"アプリケーション" を参照してください。
InterSystems 認証モデル
プログラマの場合は、特定のユーザに特定のタスクを実行する許可があるかを確認するように、コードに適切なセキュリティ・チェックを実装する必要があります。このため、ロールベースのアクセスを使用するインターシステムズの認証モデルに精通する必要があります。この用語の概要は以下のとおりです。
-
アセット。アセットは、保護対象の項目です。アセットには、さまざまな種類があります。以下の項目は、すべてアセットです。
-
各 InterSystems IRIS データベース
-
SQL を使用した InterSystems IRIS への接続機能
-
バックアップを実行する機能
-
各 Analytics KPI クラス
-
InterSystems IRIS で定義された各アプリケーション
-
リソース。リソースは、1 つまたは複数のアセットを関連付けることができる InterSystems IRIS のセキュリティ要素です。
一部のアセットの場合、アセットとリソース間の関連付けは、構成オプションです。データベースを作成するときは、関連付けられたリソースを指定します。同様に、InterSystems IRIS アプリケーションを作成するときは、関連付けられたリソースを指定します。
その他のアセットは、関連付けがハードコーディングされています。Analytics KPI クラスの場合、関連付けられたリソースをそのクラスのパラメータとして指定します。
ユーザ定義のアセットおよびリソースの場合、ハードコーディングするか適当な構成システムを定義するかのいずれかの方法で、自由に関連付けを行うことができます。
-
ロール。ロールは、名前と一連の関連付けられた権限 (大量になる場合があります) を指定するインターシステムズのセキュリティ要素です。権限は、特定のリソースについての特定のタイプ (読み込み、書き込み、使用など) の許可です。例えば、以下は権限です。
-
データベースを読み込む許可
-
テーブルに書き込む許可
-
アプリケーションを使用する許可
-
ユーザ名。ユーザ名 (または略してユーザ) は、ユーザが InterSystems IRIS にログオンするときに使用するインターシステムズのセキュリティ要素です。各ユーザは、1 つまたは複数のロールに属します (またはメンバになります)。
その他の重要な概念は、ロール・エスカレーションです。一時的に 1 つ以上の新規ロールをユーザに (プログラムによって) 追加して、特定のコンテキストでは通常は許可されないタスクを実行可能にすることが必要になります。これを、ロール・エスカレーションといいます。ユーザがそのコンテキストを終了した後で、一時的ロールを削除します。これをロールのエスカレーション解除と呼びます。
管理ポータルで、リソース、ロール、およびユーザの定義、変更および削除を行うことができます (十分な権限を持つユーザとしてログインした場合)。ただし、アプリケーションを導入するときには、インストールの一環でプログラムによってリソース、ロール、および開始時のユーザ名を定義する方が一般的です。InterSystems IRIS ではこれを実現する方法が提供されています。