変更の始まり

権限収集

権限収集は、基本オペレーティング・システムの一部として提供される機能です。 大まかにいえば、権限収集は、IBM® i システムに組み込まれたランタイム権限検査と関連付けられるデータを収集する機能です。 このデータはシステムが提供するリポジトリーに記録され、そのデータの表示と分析を行うインターフェースがあります。 このサポートは、機密保護管理者やアプリケーション・プロバイダーが、アプリケーションの正常な実行を可能にするために必要な最低限の権限レベルを使用して、アプリケーション内のオブジェクトを保護するのを支援することを意図しています。権限収集機能を使用して過剰な権限を除去したり回避したりすることによって、アプリケーションが使用するオブジェクトのセキュリティー全体が向上します。

IBM i サーバーで使用可能なアプリケーション内のオブジェクトに、過度の権限が付与されることが多く見られます。 アプリケーションを分析すると、現在のところ、現行の法規制で機密データを十分に保護することが要求されているにもかかわらず、このように過度の権限が設定されていることが分かります。 従来、アプリケーション内のオブジェクトの共通権限 (*PUBLIC) は、アプリケーションの実行に必要な権限を超える権限値に設定されました。 例えば、アプリケーションがデータに対する *USE 権限を必要とする場合でも、DB2® テーブル・オブジェクト (*FILE) での共通権限が *CHANGE 権限に設定される可能性があります。システムのユーザーがアプリケーションの外部からこの特定のテーブル・オブジェクト内のデータを変更できるようになるため、このような過度の権限の設定はシステムの機密漏れを引き起こします。アプリケーション・セキュリティー設定をさらに分析すると、権限設定が *CHANGE 権限を超えている箇所が分かります。 アプリケーションによっては、システムのユーザーがオブジェクトとデータを変更でき、さらにオブジェクト全体をシステムから削除することもできる権限設定 *ALL が使用されることもあります。権限収集サポートは、アプリケーション・オブジェクトのセキュリティーをロックダウンするのに役立つツールを機密保護管理者とアプリケーション・プロバイダーに提供するように設計されています。

機密保護管理者が IBM i の権限検査サポートと関連付けられたデータの収集と分析を行うことができるインターフェースが、いくつか提供されます。これらのインターフェースは、システムの特定のユーザーに対して権限収集を開始する機能をサポートします。 このユーザーがシステム上でジョブ (対話式ジョブ、バッチ・ジョブ、通信ジョブなど) を実行し、アプリケーション内のオブジェクトにアクセスすると、権限収集データが収集され、そのユーザー用の権限収集リポジトリーに書き込まれます。アプリケーションのランタイム権限検査で収集されるデータは、量が多く、かつ非常に詳細なものです。 このため、権限収集がアプリケーションのランタイム・パフォーマンスに及ぼすパフォーマンスへの影響を考慮する必要があります。 権限収集は実動区画で実行できますが、最初は、アプリケーションの実行時パフォーマンス要件が実稼働環境とは異なるテスト区画で権限収集を実行することをお勧めします。 さらに、権限収集データに基づいてオブジェクトの権限設定に加えられた変更は、実稼働環境で権限変更が行われる前に完全にテストする必要があります。

権限検査サポートは IBM i のオペレーティング・システム (OS) とライセンス内部コード (LIC) に組み込まれています。 OS と LIC によって要求された各権限検査は、ユーザー用の権限収集データ・リポジトリーに記録されます。 IBM i オブジェクト (*FILE、*PGM、*CMD など) にアクセスするためには、そのオブジェクトとデータへのアクセスが許可される前に権限検査に合格していなければなりません。 権限検査に合格するために、システムが権限を検査するときにユーザー、ユーザーのグループ、共通権限、およびプログラム借用権限の各設定が検討されます。 各オブジェクト・タイプで、内部の実装が異なっていてもかまいません。したがって、オブジェクト・タイプごとに権限検査要件が異なる可能性があります。これは権限収集に関する重要な詳細です。 単一の IBM i OS インターフェース (CL コマンド、API、サービス) について、多数の権限検査をオブジェクトに対して実行することができます。DSPJOBD や CHGJOBD などの単純なコマンドを実行する CL プログラムを呼び出す簡単な例を考えてみましょう。 システムは、オブジェクトが入っているライブラリーを見つけて、そのライブラリー内でオブジェクトを見つけ、インターフェースの実行中に削除されないようにジョブ記述をロックし、オブジェクトを読み取る (または変更する) ためにオブジェクト自体にアクセスしてから、インターフェースと関連付けられたデータを表示または変更する必要があります。これらのステップ (オブジェクトのロックを含む) はそれぞれ、ユーザーにインターフェースおよびターゲット・オブジェクトを使用する権限があることを確認するために、オブジェクトに対して権限検査を行うものです。実際に、多くの場合、OS および LIC によって単一の CL コマンド・インターフェースまたは API インターフェース内のオブジェクトに対して権限検査が複数回行われます。これは、OS がオブジェクトへのアクセスに使用する内部インターフェースに対して、インターフェース自体に組み込まれている権限検査だけでなく、OS および LIC に組み込まれている権限検査ロジックが実行されるためです。

関連するオブジェクトに対して固有の権限検査が行われるたびに項目が権限収集リポジトリーに記録されます。 このことを理解しておくことが重要です。オブジェクトに必要な権限は、そのオブジェクトについて記録されたすべての権限収集項目からの累積的な「必要権限」値から導き出されなければならないためです。詳しくは、権限収集データの分析を参照してください。

変更の終わり