Apsara File Storage NAS (NAS) は、サーバーメッセージブロック (SMB) ファイルシステムのアクセス制御リスト (ACL) をサポートしています。 このトピックでは、ルートディレクトリのデフォルトACL、関連機能、およびSMB 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を使用するオンプレミスユーザーによって作成されたファイルまたはディレクトリにアクセスできます。
主な機能
複数のIDを使用してSMBファイルシステムをマウントできない
SMBファイルシステムは、Windowsセッションで1つのIDのみを使用してマウントできます。 Windowsクライアントにログインし、ドメインID (ユーザーaまたはユーザーB) を使用してSMBファイルシステムをマウントする場合、このWindowsセッションで別のドメインID (ユーザーCなど) を使用してSMBファイルシステムをマウントすることはできません。 別のIDを使用してSMBファイルシステムをマウントしようとすると、次のエラーメッセージが表示されます。
データセキュリティの確保
権限のないユーザーがファイルまたはディレクトリから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変換の複雑なプロセスを簡素化し、新しいファイルとディレクトリのデフォルトumaskを有効にすることができます。 UIDとGIDは、Windowsユーザーとグループを示します。 次の基本的なルールに注意してください。
ディレクトリのデフォルトのumaskは755です。
drwxr-xr-x 1 cat Domain Users 0 Jul 25 06:18 dir
ファイルのデフォルトのumaskは644です。
-rw-r--r-- 1 cat Domain Users 0 Jul 25 06:42 file
ファイルのumaskは644または444できます。
umaskを444に設定すると、DOS読み取り専用属性が指定されます。 noaclオプションを使用すると、ファイルに対してのみDOS読み取り専用属性を変換できます。
chmodコマンドを実行してディレクトリの権限を変更することはできません。 chmodコマンドを実行して、ファイルのumaskを644または444に設定できます。
chownコマンドまたはchgrpコマンドはサポートされていません。
getfaclまたはsetfaclコマンドはサポートされていません。
SMBクライアントに存在するディレクトリのumaskは755です。 ファイルのumaskは644または444です。 特定のケースでは、クライアントのコマンド出力でオブジェクトにアクセスできることが示されていても、オブジェクトへのアクセスはNASによって拒否されます。
/etc/fstabファイルにaclオプションを追加します。
デフォルトでは、SMBファイルシステムをマウントするためにEveryoneグループのIDが使用されます。 Everyoneグループは、Cygwin環境の他のクラスに対応します。 Cygwin環境でファイルまたはディレクトリを作成した後、Cygwinは自動的にchmodコマンドを実行して、新しいファイルまたはディレクトリのデフォルトumaskを指定します。 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、新しいファイルのデフォルトumask、新しいディレクトリのデフォルトumaskが含まれます。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ファイルのアップロード」をご参照ください。
次に、keytabファイルに含まれるキーがNASに格納されます。 SMBファイルシステムのマウントターゲットがADドメインに参加した後、SMBファイルシステムをADドメインユーザーとしてマウントしてアクセスできます。 詳細については、「ADドメインユーザーとしてのWindowsクライアントでのSMBファイルシステムのマウントと使用」または「ADドメインユーザーとしてのLinuxクライアントでのSMBファイルシステムのマウントと使用」をご参照ください。
SMBファイルシステムにアクセスしようとするADドメインユーザーを認証します。
VPCの仮想マシン (VM) またはデータセンターのアプリケーションのADドメインユーザーがSMBファイルシステムにアクセスしようとすると、アクセス許可グループに基づいてADドメインユーザーのIPアドレスがファイルシステムにアクセスできるかどうかを確認します。 その後、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に基づいて、リクエストを拒否または許可します。