Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

Caché セキュリティ

この章では、Caché のセキュリティの概要について説明し、特に Caché アプリケーションの記述やメンテナンスを行うプログラマに最も関係するトピックを詳しく説明します。以下のトピックについて説明します。

セキュリティの詳細は、"Caché セキュリティ管理ガイド" を参照してください。

概要

このセクションでは、Caché 内でのセキュリティについて紹介し、Caché と外部システム間の通信について説明します。

Caché 内のセキュリティ要素

Caché のセキュリティでは、以下の要素を基にしてシンプルで統合化されたアーキテクチャが提供されています。

  • 認証。認証とは、自分が自身で主張するとおりの人物であることを Caché に対して証明する手段です。信頼できる認証がないと、あるユーザが他人になりすまして不正に入手した特権を利用できるため、承認機能の重要性が損なわれることになります。

    利用できる認証メカニズムは、Caché にアクセスする方法によって異なります。Caché には、使用可能な認証メカニズムがいくつかあります。プログラミングが必要なものもあります。

  • 承認。ユーザが認証された後、セキュリティに関連する次の手順は、そのユーザに使用、閲覧、または変更が認められているリソースが何であるかを確認することです。この判断とそれに基づくアクセスの制御を、承認といいます。

    プログラマの場合は、特定のユーザに特定のタスクを実行する許可があるかを確認するように、コードに適切なセキュリティ・チェックを実装する必要があります。認証モデルは、この章でさらに詳細に後述します。

  • 監査。監査は、認証および承認システムのアクションなど、システムに関係する検証可能で信頼性の高い追跡のアクションを提供します。この情報は、セキュリティ関連の問題の後に発生する一連のイベントを再構成する基準となります。システムが監査されている事実を示すことが、攻撃者に対する抑止力として機能します (これは、攻撃を加えている間に自身の身元を知られてしまうことを、攻撃者が知っているからです)。

    Caché では、監査可能な一連のイベントが提供されており、他のコードに追加できます。プログラマは、カスタム・イベントのコードに監査ログを含める必要があります。

  • データベースの暗号化。Caché データベースを暗号化することで、データを安全な状態で保護できます。暗号化により、承認されないユーザがデータベースの情報を見ることができないようにして、格納されている情報のセキュリティを確保します。Caché で実装している暗号化では AES (Advanced Encryption Standard) アルゴリズムを採用しています。ディスクヘの書き込みまたはディスクからの読み取りで、暗号化と解読が実行されます。暗号化と解読は最適化されていて、どのような Caché プラットフォームでも、暗号化と解読による影響は少なく、また判断可能です。実際、暗号化データベースへの書き込み時間が長くなることはまったくありません。

    一般にデータベース暗号化のタスクで、コードの記述が必要になることはありません。

Caché との安全な接続

Caché と外部システム間で通信するとき、以下の追加の Caché ツールを使用できます。

  • SSL/TLS 構成。Caché では、SSL/TLS 構成を格納して、関連する名前を指定する機能がサポートされています。SSL/TLS 接続が必要な場合 (例えば HTTP 通信用)、プログラムによって該当する構成名を指定すると、Caché によって自動的に SSL/TLS 接続が処理されます。

  • X.509 証明書ストレージ。Caché では、X.509 証明書および公開鍵をロードして、関連する構成名を指定する機能がサポートされています。X.509 証明書が必要な場合 (例えば SOAP をデジタル署名するため)、プログラムによって該当する構成名を指定すると、Caché によって自動的に証明書情報が抽出され使用されます。

    オプションで、関連する秘密鍵ファイルにパスワードを入力したり、これを実行時に指定することができます。

  • 認証機関 (CA) へのアクセス。適切な形式の CA 証明書を所定の場所に配置している場合、Caché がこれを使用してデジタル署名などを検証します。

    Caché は、CA 証明書を自動的に使用します。プログラミング作業は必要ありません。

Caché アプリケーション

ほぼすべてのユーザが、アプリケーションを使用して Caché と対話します。例えば、管理ポータル自体も一連のアプリケーションです。アプリケーションごとに、専用のセキュリティ機能があります。Caché には、以下の 3 種類のアプリケーションがあります。

  • Web アプリケーション — インターシステムズのフロントエンド開発用ツールの CSP および Zen と共に構築されたアプリケーションです。これを作成するには、Web ページを作成し、管理ポータルを使用して (特定のルート・パスで始まる) ページをアプリケーションとして正式に登録します。

  • 特権ルーチンアプリケーション — サポートされているサーバ側言語で記述されたルーチンです。ルーチンを記述する他に、管理ポータルを使用して、アプリケーションを正式に登録します。

  • クライアント・アプリケーション — Caché に接続するために Caché Direct を使用するアプリケーションです。(Caché Direct の詳細は、"Caché Direct の使用法" を参照してください。)プログラムを作成する他に、管理ポータルを使用して、アプリケーションを正式に登録します。

管理ポータルで、定義、変更および登録を行うことができます (十分な権限を持つユーザとしてログインした場合)。ただし、アプリケーションを導入するときには、インストールの一環でプログラムによってアプリケーションを定義する方が一般的です。Caché ではこれを実現する方法が提供されています。

Caché 認証モデル

プログラマの場合は、特定のユーザに特定のタスクを実行する許可があるかを確認するように、コードに適切なセキュリティ・チェックを実装する必要があります。このため、ロールベースのアクセスを使用する Caché 認証モデルに精通する必要があります。この用語の概要は以下のとおりです。

  • アセット。アセットは、保護対象の項目です。アセットには、さまざまな種類があります。以下の項目は、すべてアセットです。

    • 各 Caché データベース

    • SQL を使用した Caché への接続機能

    • バックアップを実行する機能

    • 各 DeepSee KPI クラス

    • Caché で定義された各アプリケーション

  • リソース。リソースは、1 つまたは複数のアセットを関連付けることができる Caché のセキュリティ要素です。

    一部のアセットの場合、アセットとリソース間の関連付けは、構成オプションです。データベースを作成するときは、関連付けられたリソースを指定します。同様に、Caché アプリケーションを作成するときは、関連付けられたリソースを指定します。

    その他のアセットは、関連付けがハードコーディングされています。DeepSee KPI クラスの場合、関連付けられたリソースをそのクラスのパラメータとして指定します。

    ユーザ定義のアセットおよびリソースの場合、ハードコーディングするか適当な構成システムを定義するかのいずれかの方法で、自由に関連付けを行うことができます。

  • ロール。ロールは、名前と一連の関連付けられた権限 (大量になる場合があります) を指定する Caché のセキュリティ要素です。権限は、特定のリソースについての特定のタイプ (読み込み、書き込み、使用など) の許可です。例えば、以下は権限です。

    • データベースを読み込む許可

    • テーブルに書き込む許可

    • アプリケーションを使用する許可

  • ユーザ名。ユーザ名 (または略してユーザ) は、ユーザが Caché にログオンするときに使用する Caché のセキュリティ要素です。各ユーザは、1 つまたは複数のロールに属します (またはメンバになります)。

その他の重要な概念は、ロール・エスカレーションです。一時的に 1 つ以上の新規ロールをユーザに (プログラムによって) 追加して、特定のコンテキストでは通常は許可されないタスクを実行可能にすることが必要になります。これを、ロール・エスカレーションといいます。ユーザがそのコンテキストを終了した後で、一時的ロールを削除します。これをロールのエスカレーション解除と呼びます。

管理ポータルで、リソース、ロール、およびユーザの定義、変更および削除を行うことができます (十分な権限を持つユーザとしてログインした場合)。ただし、アプリケーションを導入するときには、インストールの一環でプログラムによってリソース、ロール、および開始時のユーザ名を定義する方が一般的です。Caché ではこれを実現する方法が提供されています。

FeedbackOpens in a new tab