Apsara File Storage NAS (NAS) は、ネットワークファイルシステム (NFS) プロトコル用に次のアクセス制御リスト (ACL) を提供します。NFSv4 ACLおよびポータブルオペレーティングシステムインターフェイスfor UNIX (POSIX) ACLです。 NFS ACLを使用して、さまざまなディレクトリまたはファイルに対する権限をさまざまなユーザーおよびグループに付与できます。 このトピックでは、POSIX ACLとNFSv4 ACLを紹介し、これらのACLの使用法に関する注意事項について説明します。 このトピックでは、コンソールでNFS ACL機能を有効にする方法についても説明します。
背景情報
アクセス制御とユーザー管理は、共有ファイルシステムを使用して異なるユーザーやグループ間でファイルを共有する必要がある企業ユーザーにとって重要です。 アクセス分離を実装するには、異なるディレクトリまたはファイルに対する権限を異なるユーザーおよびグループに付与する必要があります。 NASは、要件を満たすためにNFS ACLを提供します。 NFS ACLは、NFSv4 ACLおよびPOSIX ACLを含む。 ACL は、ファイルまたはディレクトリにアクセスするための一つ以上のアクセス権を、ユーザーまたはグループにそれぞれ付与する一つ以上のアクセス制御エントリ (ACE) で構成されています。
NFSv3プロトコルを使用して、NFSv4 ACLが適用されているファイルシステムをマウントできます。 ファイルシステムがマウントされた後、NFSv4 ACLはPOSIX ACLに変換されます。 NFSv4プロトコルを使用して、POSIX ACLが適用されているファイルシステムをマウントすることもできます。 ファイルシステムがマウントされた後、POSIX ACLはNFSv4 ACLに変換されます。 ただし、NFSv4 ACLとPOSIX ACLは完全に互換性がありません。 ACLとファイルモード作成マスク (umask) との相互作用は理想的な状態ではありません。 NFSv3ファイルシステムはロックをサポートしていません。 したがって、NFSv4 ACLを使用する場合は、NFSv4プロトコルを使用してファイルシステムをマウントし、ファイルシステムにNFSv4 ACLのみを設定することを推奨します。 umaskまたはPOSIX ACLをNFSv4 ACLと共に使用しないことを推奨します。 NAS NFS ACL機能の詳細については、「機能」をご参照ください。
NFSファイルシステムのNFS ACL機能を有効にする方法の詳細については、「概要」をご参照ください。
POSIX ACL
NFSv3プロトコルは、umaskを使用してアクセス制御を実装します。 POSIX ACL機能は、この権限モデルの拡張機能です。 所有者、グループ、およびその他のクラスに加えて、特定のユーザーおよびグループに権限を付与できます。 ファイルシステムでは、ディレクトリまたはファイルは親ディレクトリから権限を継承できます。
POSIX ACLはACEのグループから成ります。 ACEは、関連するオブジェクトに対する単一のユーザーまたはユーザーのグループのアクセス許可を、読み取り、書き込み、および実行許可の組み合わせとして指定します。
ACEは、ACEフラグタイプ、オプションのACEフラグ修飾子、および一連の権限で構成されます。 ACEの各グループは、次の形式で3つのコロン (:) で区切られます。default:type:permissions
。
default: directory-inherit
ディレクトリの継承されたACEを識別します。 ディレクトリのみがこのタイプのACEをサポートしています。
タイプ: ACEフラグタイプ
POSIX ACLは、それぞれが単一の識別子で表される6種類のACEをサポートしています。 値は1つのACEタイプのみにできます。
ACEタイプ
ID
説明
ACL_USER_OBJ
ユーザー:
ファイルの所有者。
ACL_USER
ユーザー: uid
カスタムユーザー。 例:
owner:admini
ACL_GROUP_OBJ
グループ:
ユーザーグループ。
ACL_GROUP
グループ: uid
カスタムユーザーグループ。 例:
group:players
ACL_MASK
マスク:
カスタムユーザー、ユーザーグループ、およびカスタムユーザーグループの最大ACE権限。
ACL_OTHER
その他:
他のユーザー。
権限
権限ビット
説明
r
読み取り権限。
w
書き込み権限。
x
ファイルの実行またはディレクトリの入力権限。
-
権限がありません。
POSIX aclの詳細については、「acl - Linux man page」をご参照ください。
NFSv4 ACL
NFSv4 ACL機能は、NFSv4プロトコルの拡張機能です。 POSIX ACLと比較して、NFSv4 ACLはよりきめの細かいアクセス制御を提供します。
NFSv4 ACLのACEの形式は、type:flags:principal:permissions
です。
タイプ: エースのタイプ
NFSv4 ACLは4種類のACEをサポートし、それぞれが単一の識別子で表されます。 値は1つのACEタイプのみにできます。
データ型
ID
説明
許可
HTTP ステータスコードが
許可します。
許可されたACL。
拒否
D
拒否します。
拒否されたACL。
監査
U
監査。
権限が必要なすべてのアクセスレコードをログに記録します。 アクセス成功フラグとアクセス失敗フラグの一方または両方が必要です。 一部のシステムのみがこのACEタイプをサポートしています。
警報
L
警告します。
権限を必要とするアクセスごとにシステムアラートを生成します。 アクセス成功フラグとアクセス失敗フラグの一方または両方が必要です。 一部のシステムのみがこのACEタイプをサポートしています。
フラグ
ACEフラグには、グループ、継承、および管理の3種類があります。
フラグ
ID
説明
group
g
ユーザーグループ。
ディレクトリ-継承
d
ディレクトリはACEを継承します。
新しく作成されたサブディレクトリはACEを継承します。
ファイル継承
f
ファイルはACEを継承します。
新しく作成されたファイルはACEを継承し、継承フラグはファイルから削除されます。
新しく作成されたサブディレクトリはACEを継承します。 亲ACEにdirectory-inheritが指定されていない场合は、継承ACEにinherit-onlyが追加されます。
inherit-only
i
ACEは権限チェックでは考慮されませんが、継承可能です。 しかし、「inherit − only」フラグは、継承されたACEから除去される。
no-propagate-inherit
n
新しく作成されたサブディレクトリはACEを継承し、継承フラグはファイルから削除されます。
成功-アクセス
S
権限によって許可された操作の実行がプリンシパルに許可されたときにアラートをトリガーします。 アクセス成功フラグとアクセス失敗フラグが必要です。
失敗-アクセス
F
権限によって許可された操作をプリンシパルが実行できない場合、監査をトリガーします。 アクセス成功フラグとアクセス失敗フラグが必要です。
プリンシパル
OWNER @ 、GROUP @ 、EVERYONE @ 、および指定されたオブジェクトなど、ファイルに対して操作を実行できるオブジェクト。
権限
説明OWNERプリンシパルのデフォルトの最小権限はtTnNcCyです。
GROUPプリンシパルとEVERYONEプリンシパルのデフォルトの最小権限はtncyです。
NFSv4 ACLの詳細については、「nfs4_acl - Linuxマニュアルページ」をご参照ください。
POSIX ACLの使用法ノート
ACLの設定
サブディレクトリまたはファイルが親ディレクトリからACLを継承できるデフォルトの方法を使用することをお勧めします。 親ディレクトリに新しいファイルまたはサブディレクトリを作成するときに、別のACLを設定する必要はありません。
再帰メソッド (
setfacl -R
) を使用してACLを設定する場合は注意が必要です。 多数のファイルとサブディレクトリを含むディレクトリにACLを再帰的に適用すると、大量のメタデータが生成されます。 これはビジネスに悪影響を与える可能性があります。ACLを設定する前に、グループと対応する権限を管理することをお勧めします。 たとえば、ユーザーを一つ以上のグループに追加することができます。 ユーザーのアクセス許可を追加、削除、または変更するには、必要なアクセス許可を持つグループにユーザーを移動します。 グループ構造が変更された場合にのみ、グループのACLを変更する必要があります。 個々のユーザーではなく、グループにACLを設定することを推奨します。 これは、アクセス制御を実装するための簡単で時間を節約する方法です。
複数のクライアントからファイルシステムにアクセスするユーザーまたはグループにPOSIX ACLを適用できます。 NASは、ユーザーID (UID) またはグループID (GID) に基づいてユーザーまたはグループを識別します。 したがって、クライアントのユーザーまたはグループに同じUIDまたはGIDを設定する必要があります。
ACLの使用
ファイルシステムは、権限チェックを実行するたびにすべてのACEをスキャンします。 最適なパフォーマンスを確保するために、最小数のACEを保持することを推奨します。 冗長なACLが存在すると、ファイルシステムのパフォーマンスが低下します。
他のクラスの権限
すべてのユーザーには、他のクラスに付与された権限があります。 したがって、他のクラスに最小限の権限を付与することをお勧めします。 他のクラスがACEよりも多くの権限を持っている場合、セキュリティの脆弱性が存在する可能性があります。
他のクラスに最小限の権限を付与することを推奨します。 ファイルまたはディレクトリを作成する前に、
umask 777
コマンドを実行します。 このコマンドはumaskを000に設定し、新しいファイルまたはディレクトリのアクセス許可が最も少ないことを保証します。 詳細については、「umaskとデフォルトモード」をご参照ください。POSIX ACL機能を有効にすると、他のクラスはすべての @ ユーザーカテゴリに移動され、umaskも設定されます。 NASが権限チェックを実行すると、NASは他のクラスを全員として扱います。
NFSv4 ACLの使用ノート
ACLの設定
UID 1001などのUIDまたはGIDを使用してACLを設定します。
サブディレクトリまたはファイルが親ディレクトリからACLを継承できるデフォルトの方法を使用することをお勧めします。 親ディレクトリにファイルまたはサブディレクトリを作成するときに、別のACLを設定する必要はありません。
再帰メソッド (
nfs4_setfacl -R
) を使用してACLを設定する場合は注意が必要です。 多数のファイルとサブディレクトリを含むディレクトリにACLを再帰的に適用すると、大量のメタデータが生成されます。 これはビジネスに悪影響を与える可能性があります。
ACLの使用
ファイルシステムは、権限チェックを実行するたびにすべてのACEをスキャンします。 最適なパフォーマンスを確保するために、最小数のACEを保持することを推奨します。 冗長なACLが存在すると、ファイルシステムのパフォーマンスが低下します。
ACLのACE
NFSv4 ACLと一緒にumaskを設定しないことをお勧めします。
nfs4_setfacl
コマンドには、ACEを追加、削除、変更するための-a、-x、-mオプションなどの複数のオプションがあります。 エディターでACLを編集するには、nfs4_setfacl -e <file>
コマンドを実行することを推奨します。NFSv4 ACLは、きめ細かい権限をサポートしています。 ほとんどの場合、きめ細かい書き込み権限に基づく権限制御は不要です。 例えば、ユーザがファイルへの書き込みデータ (w) アクセスを有するが、追加データ (a) アクセスを有さない場合、ユーザがファイルにデータを書き込むときにエラーが発生する可能性がある。 ディレクトリについても同じ問題が発生します。 予期しない権限エラーを防ぐために、
nfs4_setfacl
コマンドを実行してACLを設定するときに大文字のWを指定することを推奨します。nfs4_setfacl
コマンドは、完全書き込みアクセスを指定します。 ファイルの場合、W は wadT に展開されます。 ディレクトリの場合、W は wadTD に展開されます。ACLを設定する前に、グループと対応する権限を管理することをお勧めします。 たとえば、ユーザーを一つ以上のグループに追加することができます。 ユーザーのアクセス許可を追加、削除、または変更するには、必要なアクセス許可を持つグループにユーザーを移動します。 グループ構造が変更された場合にのみ、グループのACLを変更する必要があります。 個々のユーザーではなく、グループにACLを設定することを推奨します。 これは、アクセス制御を実装するための簡単で時間を節約する方法です。
NAS NFSv4 ACLは、ACEを拒否するのではなく、ACEを許可します。 すべてのユーザーには、全員に付与された権限があります。 したがって、全員に最小限の権限を付与することをお勧めします。 誰もがACEよりも多くの権限を持っている場合、セキュリティの脆弱性が存在する可能性があります。
NFS ACL機能の設定
NFS ACL機能を有効にすると、POSIX ACLまたはNFSv4 ACLを使用して、ファイルとディレクトリのアクセス許可を管理できます。
NFSv3プロトコルを使用してマウントされたファイルシステムのアクセス制御を実行する方法の詳細については、「POSIX ACLを使用したアクセス制御」をご参照ください。
NFSv4プロトコルを使用してマウントされたファイルシステムのアクセス制御を実行する方法の詳細については、「NFSv4 ACLを使用してアクセスを制御する」をご参照ください。