Azure ファイル共有のディレクトリとファイル レベルのアクセス許可を構成する
この記事を読み始める前に、「ID に共有レベルのアクセス許可を割り当てる」を読み、Azure のロールベースのアクセス制御 (RBAC) を使って共有レベルのアクセス許可を設定しておいてください。
共有レベルのアクセス許可を割り当てたら、ルート、ディレクトリ、またはファイル レベルで Windows アクセス制御リスト (ACL) (NTFS アクセス許可とも呼ぶ) を構成できます。 共有レベルのアクセス許可は、ユーザーが共有にアクセスできるかどうかを決定する高度なゲートキーパーですが、Windows ACL はユーザーがディレクトリまたはファイル レベルでどのような操作を実行できるかを制御するために、より詳細なレベルで動作すると考えることができます。
ユーザーがファイル/ディレクトリにアクセスしようとすると、共有レベルとファイル/ディレクトリ レベルの両方のアクセス許可が適用されます。 それらのいずれかに違いがある場合は、最も制限の厳しいもののみが適用されます。 たとえば、ユーザーがファイル レベルで読み取り/書き込みアクセス権を持っているが、共有レベルでは読み取りアクセス権しかない場合は、そのファイルは読み取ることしかできません。 同じことはこの逆にも当てはまります。ユーザーが共有レベルで読み取り/書き込みアクセス権を持っていても、ファイル レベルでは読み取りアクセス権しか持っていない場合は、やはりファイルを読み取ることしかできません。
重要
Windows ACL を構成するには、ドメイン コントローラーへのスムーズなネットワーク接続を持つ Windows を実行しているクライアント マシンが必要です。 Active Directory Domain Services (AD DS) またはハイブリッド ID 用の Microsoft Entra Kerberos を使用して Azure Files で認証する場合、これにはオンプレミス AD へのスムーズなネットワーク接続が必要になります。 Microsoft Entra Domain Services を使用する場合、クライアント マシンには、Microsoft Entra Domain Services によって管理され、Azure に配置されているドメイン コントローラーへのスムーズなネットワーク接続が必要です。
適用対象
ファイル共有の種類 | SMB | NFS |
---|---|---|
Standard ファイル共有 (GPv2)、LRS/ZRS | ||
Standard ファイル共有 (GPv2)、GRS/GZRS | ||
Premium ファイル共有 (FileStorage)、LRS/ZRS |
サポートされている Windows ACL
Azure Files では、基本的な Windows ACL と詳細な Windows ACL で構成される完全なセットをサポートします。
ユーザー | 定義 |
---|---|
BUILTIN\Administrators |
ファイル サーバーの管理者を表す組み込みのセキュリティ グループ。 このグループは空で、誰も追加できません。 |
BUILTIN\Users |
ファイル サーバーのユーザーを表す組み込みのセキュリティ グループ。 既定で NT AUTHORITY\Authenticated Users が含まれています。 従来のファイル サーバーの場合は、サーバーごとにメンバーシップの定義を構成できます。 Azure Files の場合は、ホスティング サーバーが存在しないため、BUILTIN\Users には NT AUTHORITY\Authenticated Users と同じユーザーのセットが含まれます。 |
NT AUTHORITY\SYSTEM |
ファイル サーバーのオペレーティング システムのサービス アカウント。 このようなサービス アカウントは、Azure Files コンテキストでは適用されません。 これは、ハイブリッド シナリオでの Windows Files サーバー エクスペリエンスと一貫性を持たせるために、ルート ディレクトリに含まれています。 |
NT AUTHORITY\Authenticated Users |
有効な Kerberos トークンを取得できる AD 内のすべてのユーザー。 |
CREATOR OWNER |
ディレクトリまたはファイルのオブジェクトにはそれぞれ、そのオブジェクトの所有者が含まれています。 そのオブジェクト上で CREATOR OWNER に ACL が割り当てられている場合、このオブジェクトの所有者であるユーザーは、ACL によって定義されたオブジェクトに対するアクセス許可を持っています。 |
ファイル共有のルート ディレクトリには、次のアクセス許可が含まれています。
BUILTIN\Administrators:(OI)(CI)(F)
BUILTIN\Users:(RX)
BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
NT AUTHORITY\Authenticated Users:(OI)(CI)(M)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(F)
CREATOR OWNER:(OI)(CI)(IO)(F)
これらの高度なアクセス許可について詳しくは、icacls のコマンド ライン リファレンスに関する記事をご覧ください。
しくみ
Windows ACL の構成と編集には、次の 2 つの方法があります。
毎回ユーザー名とストレージ アカウント キーを使用するログイン: ACL を構成したい場合はいつでも、ドメイン コントローラーへのスムーズなネットワーク接続を持つマシン上のストレージ アカウント キーを使用してファイル共有をマウントします。
1 回限りのユーザー名、ストレージ アカウント キーの設定:
Note
新しいファイル/ディレクトリは、構成されたルート アクセス許可を継承するため、このセットアップは、新しく作成されたファイル共有に対して機能します。 既存の ACL と共に移行されたファイル共有の場合、または新しいファイル共有内に既存のアクセス許可を持つオンプレミスのファイル/ディレクトリを移行する場合、移行されたファイルは構成済みのルート ACL を継承しないため、このアプローチは機能しない可能性があります。
- ドメイン コントローラーへのスムーズなネットワーク接続を持つマシン上のユーザー名とストレージ アカウント キーを使用してログインし、ファイル共有のルートに対するアクセス許可を編集するアクセス許可を一部のユーザー (またはグループ) に付与します。
- これらのユーザーに、ストレージ ファイル データ SMB 共有管理者特権共同作成者 Azure RBAC ロールを割り当てます。
- 今後、ACL を更新したい場合は、これらの許可されているユーザーの 1 人を使用して、ドメイン コントローラーへのスムーズなネットワーク接続を持つマシンからログインして ACL を編集できます。
ストレージ アカウント キーを使用してファイル共有をマウントする
Windows ACL を構成する前にまず、ストレージ アカウント キーを使ってファイル共有をマウントする必要があります。 これを行うには、ドメイン参加済みのデバイスに (AD ソースが Microsoft Entra Domain Services の場合は Microsoft Entra ユーザーとして) ログインし、Windows コマンド プロンプトを開いて、次のコマンドを実行します。 忘れずに、<YourStorageAccountName>
、<FileShareName>
、<YourStorageAccountKey>
を独自の値に置き換えてください。 Z: が既に使用されている場合は、使用可能なドライブ文字に置き換えます。 ストレージ アカウント キーを確認するには、Azure portal でストレージ アカウントに移動し、[セキュリティとネットワーク]>[アクセス キー] を選びます。または、Get-AzStorageAccountKey
PowerShell コマンドレットを使うこともできます。
このステージで共有をマウントするには、PowerShell ではなく、Windows コマンド net use
を使うことが重要です。 PowerShell を使って共有をマウントすると、共有は Windows のエクスプローラーまたは cmd.exe に表示されないため、Windows ACL の構成が難しくなります。
注意
ロールには、フル コントロールの ACL が既に適用されている可能性があります。 これにより、通常、アクセス許可を割り当てる機能が既に提供されています。 しかし、2 つのレベル (共有レベルとファイルまたはディレクトリ レベル) でアクセス チェックが行われるため、これは制限されます。 ストレージ ファイル データ SMB の管理者特権の共同作成者ロールを持ち、新しいファイルまたはディレクトリを作成するユーザーのみが、ストレージ アカウント キーを使用せずに、これらの新しいファイルまたはディレクトリに対するアクセス許可を割り当てることができます。 その他のファイルまたはディレクトリのアクセス許可の割り当てはすべて、最初にストレージ アカウント キーを使用して共有に接続する必要があります。
net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>
Windows ACL を構成する
Windows ACL を構成するには、icacls または Windows エクスプローラーのどちらかを使用する必要があります。 Set-ACL PowerShell コマンドを使うこともできます。
オンプレミスのファイル サーバーに、AD DS の ID に対して Windows ACL が構成されたディレクトリまたはファイルがある場合は、Robocopy や Azure AzCopy v 10.4 以降などの従来のファイル コピー ツールを使って、ACL が保持されている Azure Files にそれらをコピーできます。 Azure File Sync によってディレクトリとファイルが Azure Files に階層化されている場合は、ACL が引き継がれ、ネイティブ形式で保持されます。
重要
AD ソースとして Microsoft Entra Kerberos を使用している場合は、ACL を適用するために ID を Microsoft Entra ID と同期する必要があります。 Microsoft Entra ID と同期されていない ID に対して、ファイル/ディレクトリ レベルの ACL を設定することはできます。 ただし、同期されていない ID には認証/認可に使用される Kerberos チケットが含まれていないため、それらの ACL は適用されません。 オンプレミスの AD DS を AD ソースとして使用している場合は、ACL 内に同期されていない ID がある可能性があります。 AD DS はそれらの SID を Kerberos チケット内に配置し、ACL が適用されます。
icacls で Windows ACL を構成する
ルート ディレクトリを含む、ファイル共有下のすべてのディレクトリとファイルにフル アクセス許可を付与するには、AD ドメイン コントローラーへのスムーズなネットワーク接続を備えたマシンから、次の Windows コマンドを実行します。 例中のプレースホルダーをお客様独自の値に置き換えてください。 AD ソースが Microsoft Entra Domain Services の場合、<user-upn>
は <user-email>
になります。
icacls <mapped-drive-letter>: /grant <user-upn>:(f)
icacls を使用して Windows ACL を設定する方法や、サポートされるさまざまな種類のアクセス許可の詳細については、コマンド ライン リファレンスの icacls に関するページをご覧ください。
Windows エクスプローラーを使用して Windows ACL を構成する
ドメインに参加している Windows クライアントにログオンしている場合は、Windows エクスプローラーを使用して、ルート ディレクトリを含む、ファイル共有内のすべてのディレクトリとファイルに完全なアクセス許可を付与できます。
重要
クライアントがドメインに参加していない場合、または環境に複数の AD フォレストがある場合は、Windows エクスプローラーを使用して ACL を構成しないでください。 代わりに icacls を使用してください。 これは、Windows エクスプローラーの ACL 構成では、ストレージ アカウントが参加している AD ドメインに対して、クライアントがドメイン参加済みである必要があるためです。
Windows エクスプローラーを使用して ACL を構成するには、次の手順に従います。
- Windows エクスプローラーを開き、ファイルまたはディレクトリを右クリックして、[プロパティ] を選択します。
- [セキュリティ] タブをクリックします。
- [編集...] を選んでアクセス許可を変更します。
- 既存のユーザーの権限を変更することや、 [追加] を選択して新しいユーザーにアクセス許可を付与することができます。
- 新しいユーザーを追加するためのプロンプト ウィンドウで、アクセス許可を付与するターゲット ユーザーの名前を [選択するオブジェクト名を入力してください] ボックスに入力し、 [名前の確認] を選択して、ターゲット ユーザーの完全な UPN 名を見つけます。 オンプレミス AD のドメイン名とドメイン GUID を指定することが必要になる場合があります。 この情報は、ドメイン管理者またはオンプレミスの AD 参加済みクライアントから取得できます。
- [OK] を選択します。
- [セキュリティ] タブで、新しいユーザーに付与するすべてのアクセス許可を選択します。
- 適用を選択します。
次のステップ
これでディレクトリとファイル レベルのアクセス許可を構成したので、ファイル共有をマウントできます。