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を継承します。 |
inherit-only | i | ACEは権限チェックでは考慮されませんが、継承可能です。 しかし、「inherit − only」フラグは、継承されたACEから除去される。 |
no-propagate-inherit | n | 新しく作成されたサブディレクトリはACEを継承し、継承フラグはファイルから削除されます。 |
成功-アクセス | S | 権限によって許可された操作の実行がプリンシパルに許可されたときにアラートをトリガーします。 アクセス成功フラグとアクセス失敗フラグが必要です。 |
失敗-アクセス | F | 権限によって許可された操作をプリンシパルが実行できない場合、監査をトリガーします。 アクセス成功フラグとアクセス失敗フラグが必要です。 |
プリンシパル
OWNER @ 、GROUP @ 、EVERYONE @ 、および指定されたオブジェクトなど、ファイルに対して操作を実行できるオブジェクト。
権限
権限ビット | 機能性 | 使用上の注意 |
r | ファイルを読み取ります。 | なし。 |
w | ファイルを書き込みまたは作成します。 | w権限は、w権限とa権限の両方が指定されている場合にのみ有効です。 |
a | 既存のファイルにデータを追加します。 | a権限は、wとa権限の両方が指定されている場合にのみ有効になります。 |
x | ファイルを実行します。 | x権限は、r権限とx権限の両方が指定されている場合にのみ有効です。 |
d | ファイルを削除します。 | NFSv4 ACLでd権限が無効です。 親ディレクトリにw権限とx権限がある場合は、d権限がファイルで有効かどうかに関係なく、現在のファイルを削除できます。 |
D | - | ファイルにD権限を設定することはできません。 nfs4_setfacl Dコマンドは、クライアントによって除外されます。 |
t | ファイルの属性を読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
T | ファイルの属性を変更します。 | なし。 |
n | ファイルの名前付き属性を読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
N | ファイルの名前付き属性を変更します。 | NFSファイルシステムのファイルの名前付き属性は変更できません。 N権限が無効です。 |
c | ファイルのACLを読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
C | ファイルのACLを変更します。 | なし。 |
o | ファイルの所有者を変更します。 | o権限がある場合は、ファイル所有者を自分に変更できます。 ただし、rootユーザーでない限り、ファイル所有者を他のユーザーに変更することはできません。 |
y | 同期アクセスを許可します。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
権限ビット | 機能性 | 使用上の注意 |
r | ディレクトリを読み取ります。 | なし。 |
w | ファイルまたはディレクトリを作成します。 | w権限だけでは無効です。 w許可の機能は、D許可によって実装されます。 したがって、w権限は、D権限とx権限が指定されている場合にのみ有効になります。 |
a | サブディレクトリを作成します。 | 許可だけでは無効です。 a権限の機能は、D権限によって実装されます。 したがって、a権限は、D権限とx権限が指定されている場合にのみ有効になります。 |
x | ディレクトリに入ります。 | なし。 |
d | ディレクトリを削除します。 | NFSv4 ACLでd権限が無効です。 親ディレクトリにw権限とx権限がある場合は、d権限がサブディレクトリで有効であるかどうかに関係なく、現在のディレクトリを削除できます。 |
D | ディレクトリからサブファイルまたはサブディレクトリを削除します。 | D権限は、D権限とX権限が指定されている場合にのみ有効になります。 |
t | ディレクトリの属性を読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
T | ディレクトリの属性を変更します。 | なし。 |
n | ディレクトリの名前付き属性を読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
N | ディレクトリの名前付き属性を変更します。 | NFSファイルシステムのファイルの名前付き属性は変更できません。 N権限が無効です。 |
c | ディレクトリのACLを読み取ります。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
C | ディレクトリのACLを変更します。 | なし。 |
o | ファイルの所有者を変更します。 | o権限がある場合は、ファイル所有者を自分に変更できます。 ただし、rootユーザーでない限り、ファイル所有者を他のユーザーに変更することはできません。 |
y | 同期アクセスを許可します。 | これは、4つのデフォルトの最小権限の1つです。 この許可を取り消すことはできません。 |
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よりも多くの権限を持っている場合、セキュリティの脆弱性が存在する可能性があります。
他のクラスに最小限の権限を付与することを推奨します。 ファイルまたはディレクトリを作成する前に、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の使用
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機能の有効化
NAS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リージョンを選択します。
[ファイルシステムリスト] ページでファイルシステムを見つけ、ファイルシステムIDをクリックするか、管理 をクリックします。[アクション] 列に表示されます。
アクセス制御 タブをクリックし、オープン をクリックしてNFS ACL機能を有効にします。
NFS ACL機能の無効化
[アクセス制御] タブで、[オフ] (デフォルトの状態) をクリックして、NFS ACL機能を無効にします。
NFS ACL機能を有効にすると、POSIX ACLまたはNFSv4 ACLを使用して、ファイルとディレクトリのアクセス許可を管理できます。