アクセス制御リスト (ACL) [access control list (ACL)]
アクセス制御リスト
【英】Access Control List, ACL
アクセス制御リストとは、誰に対して、どのリソースに対するどの操作を許可、または、拒否するか、という属性を複数列挙したもので、システム上のリソースに対するアクセスを安全にするために利用される制御情報のことである。
DOS時代のアクセス制御では、単純なファイルの読み書き権限の設定しかなく、一般ユーザーと管理ユーザーの区別も無かった。また、伝統的なUNIX系OSでは、一般ユーザーとスーパーユーザーの2種類しかなく、ファイルの所有者、グループ、その他という比較的おおざっぱな区別しかされていなかった。このため、管理上大きな問題が発生していた。
これに対して最近のセキュアなOSでは、スーパーユーザーに全ての権限を集中させることは危険であると考えられており、権限は、よりきめ細かく分類されることになった。そして、ユーザー、対象、権限のそれぞれをきめ細かく指定して、最小限の属性の組み合わせをアクセス制御リストという形で与えることにより、安全性を確保している。
なお、アクセス制御リストの考え方は、オペレーティングシステム、データベースシステム、ネットワーク、アプリケーションなどの分野で用いられている。
アクセス制御リスト
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/04/23 05:49 UTC 版)
ナビゲーションに移動 検索に移動アクセス制御リスト(アクセスせいぎょリスト、Access Control List、ACL)とは、オブジェクト(受動体)に付属する許可属性のリスト。コンピュータセキュリティにおけるアクセス制御を実現するために、あるリソース(受動体)に対する誰からのどの操作を許可するかを列挙したもの。例えば、ファイル X についてのアクセス制御リストに要素 (Alice, delete) があれば、Alice はファイル X を削除することができる。
アクセス制御リストに基づくセキュリティモデル
アクセス制御リストに基づくセキュリティモデルでは、能動体(subject, 人間やプロセス)が受動体(object, システムやファイル)への操作を要求したとき、システムは許可属性のリストを検査して、その操作を実行してよいかどうかを決定する。アクセス制御リスト (ACL) に基づくセキュリティモデルの定義の鍵となるのは、ACLがどう修整されるかである。つまり、各受動体のACLに対して誰がどんな修整をすることが許されているかである。
ACLを用いる制御には2種類ある。任意アクセス制御と強制アクセス制御である。任意アクセス制御とは、受動体の作成者か所有者がその受動体へのアクセスを完全に制御できるものをいう(その受動体を他人がアクセスできるようにACLを変更することを含む)。強制アクセス制御とは、ACLに記載されている許可属性を書き換えるときにシステム全体からの制限を受けるものをいう。
伝統的なACLシステムでは各利用者に許可を与えてしまい、その結果、多数の利用者をもつシステムにおいてはやっかいなことになる。現代的なロールベースアクセス制御と呼ばれる方法では、許可はいったんロール(役割)に対して割り当てられ、それが利用者に割り当てられる。
ファイルシステムのアクセス制御リスト
ファイルシステムにおいては、プロセスの利用者識別子(POSIXでは実効UID)が制御の主な手段となる。 アクセス制御リスト (ACL) はデータ構造(通常は配列)をもち、特定のシステムオブジェクト(プログラム、プロセス、ファイル)への個々のユーザーやグループの権利を示す要素から構成される。これらの要素は、Microsoft Windows[1]、OpenVMS、Unix系、macOSといったオペレーティングシステム (OS) ではアクセス制御エントリ (ACE) と呼ばれている。アクセス可能なオブジェクトはACLへの識別子をもっている。特権またはパーミッションは、あるユーザーがそのオブジェクトについて何ができるか(読み、書き、実行)を決定する。実装によっては、ACEは所有者かどうか、または所有者のグループかどうかにかかわらずオブジェクトのACLを制御できる。
アクセス制御リストは概念であり、その実装はOSによって異なるが、POSIXの「標準」がある(POSIX security draftsの.1eと.2cは対象範囲を広げすぎたため標準策定が完了しないとして破棄された。しかし、ACLについてよく書かれた部分は広く実装され「POSIX ACL」として知られるようになった)。多くのUNIXおよびUnix系OS(例えば、Linux[2]、BSD、Solaris)はドラフト版のPOSIX.1e ACLをサポートしている。また、AIX、FreeBSD[3]、Mac OS X v10.4 ("Tiger") 以降、SolarisのZFS[4]ではNFSv4 ACLをサポートしている。Linuxでもext3ファイルシステム向け[5]とRichaclsというext4向け[6]のNFSv4 ACLの実験的実装が2つある。
ACLの実装は非常に複雑になる可能性がある。ACLは様々なオブジェクト、ディレクトリや他のコンテナ、コンテナ内のコンテナなどに適用できる。ACLは要求されるすべてのセキュリティ対策を実現できるわけではないので、きめ細かいケイパビリティに基づくアクセス制御システムのほうがよいこともある(その場合、アクセスしようとするオブジェクトに対してアクセス対象のオブジェクトから権限が譲渡され、もっと細かい制御が可能となる)。
ネットワークにおけるアクセス制御リスト
ネットワークでは、Access Control List (ACL) はTCP/IPのポート番号とそのホスト上で使えるデーモンのリストを意味する。つまり、ホストがネットワークに対して提供しているサービスのリストである。個々のサーバだけでなくルーターもネットワークACLをもっている。この場合のアクセス制御リストは双方向のトラフィックを制御するもので、例えばファイアウォールと深い関係がある。PCI DSS のようなセキュリティの規約や標準の対象ともなっている。
脚注
- ^ “Managing Authorization and Access Control”. Microsoft Technet. 2012年7月11日閲覧。
- ^ 2003年10月にリリースされたRHEL-3[1]でACLとEAをサポートしている。パッチはそれ以前から存在していたが、Linuxカーネルが公式にサポートしたのは2003年12月リリースの2.6からである。
- ^ NFSv4_ACLs FreeBSD
- ^ “8. Using ACLs to Protect ZFS Files (Solaris ZFS Administration Guide) - Oracle”. Docs.oracle.com (2009年10月1日). 2012年7月11日閲覧。
- ^ “Native NFSv4 ACLs on Linux”. Suse.de. 2008年10月12日時点のオリジナル[リンク切れ]よりアーカイブ。2010年5月4日閲覧。
- ^ “Richacls - Native NFSv4 ACLs on Linux”. bestbits.at (2011年9月1日). 2011年1月4日閲覧。
関連項目
- chmod
- コンピュータセキュリティ
- 任意アクセス制御 (DAC)
- 強制アクセス制御 (MAC)
- ロールベースアクセス制御 (RBAC)
- Capability-based security - ケイパビリティに基づくアクセス制御
- TCP Wrapper
外部リンク
- FreeBSD Handbook: File System Access Control Lists
- SELinux and grsecurity: A Case Study Comparing Linux Security Kernel Enhancements
- Susan Hinrichs. “Operating System Security”. 2012年7月11日閲覧。
- John Mitchell. “Access Control and Operating System Security”. 2012年7月11日閲覧。
- Michael Clarkson. “Access Control”. 2012年7月11日閲覧。
- Permissions: a primer or Dacl Sacl Owner Sid and Ace explained on the Helge Klein (creator of the free SetAcl tool for Windows) Website.
- POSIX Access Control Lists on Linux
- RSBAC Access Control Lists on Linux
- C2-Wiki Discussion and Relational Implementation
- Generic Access Control Lists (PHP based)
- Easy and detailed ACL howto for linux[リンク切れ]
- ACLbit - ACL Backup and Inspect Tool for Linux
- マイクロソフト
- MS Windows .NET ACL Technology
- MSDN Library: Access Control Lists
- Microsoft Technet: How Permissions Work
この記事は2008年11月1日までGFDLバージョン1.3以降の再ライセンス規約に基づいていたFree On-line Dictionary of Computingにある項目の資料が元になっている。
- アクセス制御リストのページへのリンク