File Storage NAS は、NFS ファイルシステム向けに NFS アクセス制御リスト (ACL) を提供します。これには POSIX ACL と NFSv4 ACL が含まれ、特定のユーザーおよびユーザーグループに対してディレクトリやファイルへの詳細な権限を付与できます。
背景情報
複数のユーザーおよびユーザーグループがファイルシステムを共有する場合、管理者は特定のファイルやディレクトリへのアクセス権を詳細に制御する必要があります。この目的のために、File Storage NAS は NFSv4 ACL および POSIX ACL を含む NFS ACL を提供しています。ACL とは、ファイルまたはディレクトリに対する権限を定義するアクセス制御エントリ (ACE) のリストです。
NFSv4 ACL ファイルシステムを NFSv3 でマウントすると、ACL は POSIX ACL に変換されます。逆の場合も同様です。ただし、これら 2 種類の ACL は完全に互換性があるわけではなく、mode と ACL 間の相互運用性も限定的です。また、NFSv3 マウントではロック機能もサポートされていません。NFSv4 ACL を使用する場合は、NFSv4 プロトコルでのみマウントし、mode や POSIX ACL の使用は避けてください。機能。
NFS ACL はコンソールまたは API から有効化できます。NFS ACL 機能の設定。
POSIX ACL
POSIX ACL は標準的な mode 権限モデルを拡張し、所有者・グループ・その他というクラスを超えて、特定のユーザーおよびユーザーグループに権限を設定できるようにします。また、権限の継承もサポートしています。
各 ACE は、特定のユーザーまたはユーザーグループに対して読み取り・書き込み・実行の権限を指定します。
ACE はタグタイプ、オプションの修飾子、および一連の権限で構成され、形式は default:type:permissions です。
-
default: ディレクトリ継承 ACE
ディレクトリ用の継承 ACE を示します。このタイプの ACE はディレクトリでのみサポートされます。
-
type: ACE タグタイプ
POSIX ACE には、6 種類のタイプのうちいずれか 1 つが必ず含まれている必要があります。各タイプは 1 文字で表されます。
タイプ
識別子
説明
ACL_USER_OBJ
user:ファイル所有者。
ACL_USER
user:uid特定のユーザー。例:
user:admin。ACL_GROUP_OBJ
group:ファイルの所有グループ。
ACL_GROUP
group:gid特定のユーザーグループ。例:
group:players。ACL_MASK
mask:特定のユーザー、所有グループ、および特定のユーザーグループに適用される ACE の最大権限。
ACL_OTHER
other:その他のユーザー。
-
権限
権限
説明
r
読み取り権限。
w
書き込み権限。
x
ファイルの実行またはディレクトリへのアクセス権限。
-
権限なし。
POSIX ACL の詳細については、「acl - Linux man page」をご参照ください。
NFSv4 ACL
NFSv4 ACL は、POSIX ACL よりも詳細な権限制御を提供します。
NFSv4 ACL の ACE 形式は type:flags:principal:permissions です。
-
ACE タイプ
各 NFSv4 ACE には、4 種類のタイプのうちいずれか 1 つが必ず含まれている必要があります。各タイプは 1 文字で表されます。
タイプ
識別子
説明
Allow
A
許可。
指定された権限を付与します。
Deny
D
拒否。
指定された権限を拒否します。
Audit
U
監査。
指定された権限を必要とするアクセスをログに記録します。successful-access フラグおよび failed-access フラグのいずれか一方または両方が必要です。一部のシステムでのみこのタイプがサポートされています。
Alarm
L
アラーム。
指定された権限を必要とするアクセスに対してシステムアラームを生成します。successful-access フラグおよび failed-access フラグのいずれか一方または両方が必要です。一部のシステムでのみこのタイプがサポートされています。
-
フラグ
ACE には、グループ・継承・管理の 3 種類のフラグがあります。
フラグ
識別子
説明
group
g
ユーザーグループを指定します。
directory-inherit
d
ディレクトリ継承 ACE。
新しく作成されたサブディレクトリは、この ACE を継承します。
file-inherit
f
ファイル継承 ACE。
-
新しく作成されたファイルは親ディレクトリから ACE を継承しますが、継承フラグは削除されます。
-
新しく作成されたサブディレクトリは親ディレクトリから ACE を継承します。親 ACE に
directory-inheritが指定されていない場合、継承された ACE にinherit-onlyが追加されます。
inherit-only
i
この ACE は権限チェック時に考慮されませんが、継承可能です。ただし、継承された ACE からは
inherit-onlyフラグが削除されます。no-propagate-inherit
n
新しく作成されたサブディレクトリは ACE を継承しますが、継承フラグは削除されます。
successful-access
S
Audit または Alarm ACE において、このフラグは、指定された権限に一致するアクセス試行が成功した場合に、指定されたアクションをトリガーします。
failed-access
F
Audit または Alarm ACE において、このフラグは、指定された権限に一致するアクセス試行が拒否された場合に、指定されたアクションをトリガーします。
-
-
プリンシパル
ファイルに対して操作を実行できるプリンシパルで、OWNER@、GROUP@、EVERYONE@、または特定のプリンシパルが含まれます。
-
権限
説明-
OWNER@ プリンシパルのデフォルト最小権限は tTnNcCy です。これ未満の権限は許可されません。
-
GROUP@ および EVERYONE@ プリンシパルのデフォルト最小権限は tncy です。これ未満の権限は許可されません。
NFSv4 ACL の詳細については、「nfs4_acl - Linux man page」をご参照ください。
-
POSIX ACL ガイドライン
-
ACL の設定
-
継承 (
default) を使用して、サブディレクトリツリー全体に同じ ACL を適用し、ファイルまたはディレクトリごとの個別設定を回避してください。 -
setfacl -Rは慎重に使用してください。大規模なディレクトリツリーに対して実行するとメタデータ負荷が増大し、パフォーマンスが低下します。 -
ACL を設定する前に、ユーザーグループと権限を計画してください。グループメンバーシップを通じてアクセスを管理することで、ACL を変更せずにグループを変更するだけで権限を調整できます。常に個人ユーザーではなく、ユーザーグループに対して ACL を設定してください。
-
複数のクライアント間で POSIX ACL を使用する場合は、同一のユーザーおよびユーザーグループに対して UID および GID が一致していることを確認してください。NAS はプリンシパルを名前ではなく UID または GID で識別します。
-
-
ACL の使用
-
システムは各権限チェック時にすべての ACE をスキャンします。パフォーマンスの低下を防ぐため、ACE の数を最小限に抑えてください。
-
-
'other' の権限設定
-
'other' 権限を最小限に抑えてください。この権限はすべてのユーザーに適用されます。特定の ACE よりも 'other' に多くのアクセス権を付与すると、セキュリティリスクが生じます。
-
コードの実行前に
umask 777を実行して、作成時のmodeを000に設定し、デフォルト権限を最小限に抑えてください。umask とデフォルトmode。 -
POSIX ACL が有効になると、ファイルモードにおける 'other' クラスは権限チェック時に 'everyone' として扱われます。
-
NFSv4 ACL ガイドライン
-
ACL の設定
-
UID や GID(例:
UID 1001)を使用して ACL を設定してください。 -
継承を使用して、サブディレクトリツリー全体に同じ ACL を適用し、ファイルまたはディレクトリごとの ACL 設定を回避してください。
-
nfs4_setfacl -Rは慎重に使用してください。大規模なディレクトリツリーに対して実行するとメタデータ負荷が増大し、パフォーマンスが低下します。
-
-
ACL の使用
-
システムは各権限チェック時にすべての ACE をスキャンします。パフォーマンスの低下を防ぐため、ACE の数を最小限に抑えてください。
-
-
ACL 権限の設定
-
NFSv4 ACL を採用した後は、
modeの使用を避けてください。 -
nfs4_setfaclコマンドは -a、-x、-m オプションをサポートしていますが、nfs4_setfacl -e <file>を使用すると、より直感的なインタラクティブな編集体験が得られます。 -
詳細な書き込み権限は予期しない失敗を引き起こす可能性があります。たとえば、
a権限なしでw権限を付与すると、書き込みがブロックされることがあります。ディレクトリの変更についても同様の問題が発生します。nfs4_setfaclで大文字のWを使用して書き込み権限を設定してください。nfs4_setfaclはWを完全な書き込み権限セットに展開します。ファイルの場合はwadT、ディレクトリの場合はwadTDになります。 -
ACL を設定する前に、ユーザーグループと権限を計画してください。グループメンバーシップを通じてアクセスを管理することで、ACL を変更せずにグループを変更するだけで権限を調整できます。常に個人ユーザーではなく、ユーザーグループに対して ACL を設定してください。
-
NAS は NFSv4 ACL に対して
AllowACE のみをサポートしており、DenyACE はサポートしていません。'everyone' 権限を最小限に抑えてください。過剰な 'everyone' アクセスはセキュリティ上の脆弱性を引き起こします。
-
NFS ACL の設定
NFS ACL を有効化した後は、POSIX ACL または NFSv4 ACL を使用してファイルおよびディレクトリの権限を管理します。
-
NFSv3 ファイルシステム: POSIX ACL を使用した権限管理。
-
NFSv4 ファイルシステム: NFSv4 ACL を使用した権限管理。