このトピックでは、Apsara File Storage NAS Server Message Block (SMB) ファイルシステムのルートディレクトリの既定のACL、関連機能、およびアクセス制御リスト (ACL) の動作原理について説明します。
背景情報
SMB ACL機能は、エンタープライズユーザー向けに設計されています。 SMBファイルシステムがActive Directory (AD) ドメインに接続されていない場合、SMBファイルシステムのACLは読み取り専用です。 SMBファイルシステムは、Everyoneグループのメンバーとしてアクセスできます。 NASを使用すると、ADドメインに基づいてユーザーを認証し、SMBファイルシステムへのアクセスを制御できます。 SMBファイルシステムを自己管理型ADドメインに接続できます。 次に、SMBファイルシステムをマウントし、ファイルとディレクトリのACLをADユーザーまたはEveryoneグループのメンバーとして設定できます。
SMBファイルシステムのルートディレクトリのデフォルトACL
次の図は、SMBファイルシステムのルートディレクトリのデフォルトACLを示しています。
課題
Windows NTFSの権限を調整するには、SYSTEMとAdministratorsのアクセス制御エントリ (ACE) が使用されます。 ACEは、管理者権限を持つアプリケーションが期待どおりに実行されるようにします。 NASをResource Access Management (RAM) と統合した後、スーパー管理者に管理者権限を付与できます。
Windows NTFS権限で継承とベンチマークを実装するには、CREATOR OWNER ACEも使用されます。
SMBファイルシステムのACL設定を変更できます。 たとえば、[匿名アクセス許可] パラメーターを [いいえ] に設定できます。 これにより、ADユーザーのみがSMBファイルシステムにアクセスでき、EveryoneグループのIDはSMBファイルシステムにアクセスできません。
ユーザーの習慣との互換性
オンプレミスユーザーへの影響を排除するために、SMBファイルシステムをADドメインに接続する前に、SMBファイルシステムに作成されたファイルまたはディレクトリへのフルアクセスがEveryoneグループに付与されます。 すべてのオンプレミスユーザーは、NT LAN Manager (NTLM) を介してEveryoneグループのIDとしてSMBファイルシステムをマウントし、Everyoneグループのリソースにアクセスできます。
ADユーザーによって作成されたファイルまたはサブディレクトリは、Everyoneグループの権限を継承しません。 オンプレミスユーザーは、ファイルまたはディレクトリにアクセスできません。 ファイルまたはディレクトリにアクセスできるのは、CREATOR OWNERおよびAdministratorsグループのメンバーだけです。
ADユーザーは、EveryoneグループのIDを使用するオンプレミスユーザーによって作成されたファイルまたはディレクトリにアクセスできます。
SMB ACL機能
SMBファイルシステムを複数のIDとしてマウントすることはできません。
SMBファイルシステムは、Windowsセッションで1つのIDとしてのみマウントできます。 Windowsクライアントにログインし、SMBファイルシステムをドメインID (ユーザーaまたはユーザーB) としてマウントする場合、このWindowsセッションでSMBファイルシステムを別のドメインID (ユーザーCなど) としてマウントすることはできません。 SMBファイルシステムを別のIDとしてマウントしようとすると、次のエラーメッセージが表示されます。
データセキュリティの確保
権限のないユーザーがファイルまたはディレクトリからAdministratorsおよびEveryoneグループの権限を取り消すと、ファイルまたはディレクトリにアクセスできなくなることがあります。 この場合、ファイルまたはディレクトリが存在するSMBファイルシステムを再マウントし、ファイルまたはディレクトリに対する権限を管理者として付与する必要があります。
SMBファイルシステムはスーパー管理機能をサポートしています。 NASコンソールでは、ユーザーまたはグループをスーパー管理者として指定できます。 ファイルに付与されている権限に関係なく、スーパー管理者としてファイルを表示したり、ファイルを変更したり、ファイルの権限を変更したりできます。 たとえば、許可されていないユーザーがディレクトリの所有権を引き受け、Everyoneグループのディレクトリに対するアクセス許可を取り消すと、スーパー管理者として以前のアクセス許可に戻すことができます。
SMBファイルシステムのスーパー管理機能を有効にした後、SMBファイルシステムを再マウントする必要があります。
Cygwinを使う
Cygwinは、Windows上で実行されるPOSIX互換のプログラミングおよびランタイム環境です。 Cygwin環境でPOSIXベースのアプリケーションを実行できます。 SMB ACL機能を有効にすると、ファイルのセキュリティ識別子 (SID) 、グループのSID、およびWindowsの任意ACL (DACL) がPOSIXユーザーID (UID) 、グループID (GID) 、およびACLに変換されます。 詳細については、「Cygwin ntsec.html」をご参照ください。
次の図に示すように、/etc/fstabファイルにnoaclオプションを追加します。
このように、Cygwinを使用して、ACL変換の複雑なプロセスを簡素化し、新しいファイルとディレクトリのデフォルトのファイルモード作成マスクを有効にすることができます。 UIDとGIDは、Windowsユーザーとグループを示します。 次の基本的なルールに注意してください。
ディレクトリのデフォルトのファイルモード作成マスクは755です。
drwxr-xr-x 1 cat Domain Users 0 Jul 25 06:18 dir
ファイルのデフォルトのファイルモード作成マスクは644です。
-rw-r--r-- 1 cat Domain Users 0 Jul 25 06:42 file
ファイルのファイルモード作成マスクは、644または444できます。
ファイルモード作成マスクを444に設定した場合、DOS読み取り専用属性が指定されます。 noaclオプションを使用すると、ファイルに対してのみDOS読み取り専用属性を変換できます。
chmodコマンドを実行してディレクトリの権限を変更することはできません。 chmodコマンドを実行して、ファイルのファイルモード作成マスクを644または444に設定できます。
chownコマンドまたはchgrpコマンドはサポートされていません。
getfaclまたはsetfaclコマンドはサポートされていません。
SMBクライアントに存在するディレクトリのファイルモード作成マスクが755されます。 ファイルのファイルモード作成マスクは644または444です。 特定のケースでは、クライアントのコマンド出力でオブジェクトにアクセスできることが示されていても、オブジェクトへのアクセスはNASによって拒否されます。
/etc/fstabファイルにaclオプションを追加します。
デフォルトでは、SMBファイルシステムをマウントするためにEveryoneグループのIDが使用されます。 Everyoneグループは、Cygwin環境の他のクラスに対応します。 Cygwin環境でファイルまたはディレクトリを作成した後、Cygwinは自動的にchmodコマンドを実行して、新しいファイルまたはディレクトリのデフォルトのファイルモード作成マスクを指定します。 Linuxは、ファイルまたはディレクトリに対しても同様の操作を実行します。 上記の規則に基づいて、Linuxは他のクラスにディレクトリに対するr-x権限とファイルに対するr -- 権限を付与します。 これにより、Everyoneグループには、新しいディレクトリに対するr-x権限と、新しいファイルに対するr -- 権限のみが付与されます。 EveryoneグループのIDを使用して、新しいディレクトリにファイルを作成することはできません。
Cygwin環境では、aclオプションの代わりにnoaclオプションを有効にすることを推奨します。
LinuxでのADとACLの使用
mount -t cifs
コマンドを実行してLinux上にSMBファイルシステムをマウントする場合は、ADユーザーを指定してパラメーターを設定できます。 パラメータには、GID、UID、新しいファイルのデフォルトファイルモード作成マスク、および新しいディレクトリのデフォルトファイルモード作成マスクが含まれます。SMBファイルシステムにアクセスすると、LinuxクライアントはUID、GID、および実際のIDに基づいてPOSIX権限をチェックします。
SMBファイルシステムへのアクセスに使用するLinuxユーザーに関係なく、すべての操作はADユーザーとしてNAS側で実行されます。 rootユーザーには、管理者権限ではなく、ADユーザーの権限のみが付与されます。 権限関連のコマンドはLinuxでは使用できません。 これらのコマンドは、chmod、chown、chgrp、getfacl、およびsetfaclを含む。
詳細については、「LinuxクライアントでのSMBファイルシステムのADドメインユーザーとしてのマウントと使用」をご参照ください。
SMB ACL機能の動作原理
仮想プライベートクラウド (VPC) のSMBクライアントとデータセンターのSMBクライアントを同じADドメインに参加できます。 その後、ADユーザーを使用してSMBクライアントからSMBファイルシステムにアクセスできます。 ADドメインコントローラーを使用して、ADユーザーを管理し、SMBファイルシステムへのアクセスを集中的に制御できます。 NASでは、Kerberosプロトコルを使用してADユーザーを認証できます。 ADユーザーがADドメインコントローラーとして機能するWindowsまたはLinuxサーバーからSMBファイルシステムにアクセスしようとすると、SMBファイルシステムはADユーザーのIDを検証します。 これにより、特定のユーザーからSMBファイルシステム内の特定のファイルやディレクトリへのアクセスを制御できます。
次の図は、ADドメインのSMBファイルシステムのID認証とアクセス制御のプロセスを示しています。
keytabファイルを作成します。 詳細については、「SMBファイルシステムのマウントターゲットをADドメインに参加させる」をご参照ください。
SMB ACL機能を有効にしてkeytabファイルをアップロードし、SMBファイルシステムのマウントターゲットをADドメインに接続します。 詳細については、「手順2: keytabファイルのアップロード」をご参照ください。
SMBファイルシステムにアクセスしようとするADユーザーを認証します。
VPCの仮想マシン (VM) またはデータセンターのアプリケーションのADユーザーがSMBファイルシステムにアクセスしようとすると、アクセス許可グループに基づいてADユーザーのIPアドレスがファイルシステムにアクセスできるかどうかがNASで確認されます。 その後、ADユーザは、Kerberosプロトコルに基づいて認証される。 次の手順では、Kerberos認証のプロセスについて説明します。
クライアントは、SMB2 NEGOTIATE要求をNASに送信する。
NASは、SMBファイルシステムに対してKerberos認証が有効になっているかどうかをチェックします。
クライアントは、SMBファイルシステムへのアクセス要求をVPCまたはデータセンターのADドメインコントローラーに送信します。
ADドメインコントローラは、クライアントを認証する。 そして、ADドメインコントローラは、keytabファイルに含まれる鍵を用いてADユーザの情報を暗号化し、暗号化されたユーザ情報をクライアントに送信する。
クライアントは、SMB2 SESSION_SETUP要求をNASに送信する。 要求メッセージは、暗号化されたユーザ情報を含む。
NASは、keytabファイルに含まれるキーを使用して、暗号化されたユーザー情報を復号化します。
説明認証されたADユーザーは、セッション内のSMBファイルシステムへの以降のすべてのアクセスに使用されます。
認証が完了した後、NASは、SMB2 SESSION_SETUP要求に対する応答を送信する。 これは、NASがクライアントからSMBファイルシステムへのアクセスを許可することを示します。 そうでない場合、SMB2 SESSION_SETUP要求は拒否される。
クライアントは、読み取り、書き込み、およびその他の要求をSMBファイルシステムに送信します。
NASは、要求の結果をクライアントに返します。
NASはSMBファイルシステムへのアクセスを制御します。 NASは、セッション内のユーザー情報と、SMBファイルシステム内のファイルおよびディレクトリのACLに基づいて、リクエストを拒否または許可します。