次の方法で共有


Azure ファイル共有のディレクトリとファイル レベルのアクセス許可を構成する

適用対象: ✔️ SMB Azure ファイル共有

この記事を開始する前に、Azure ロールベースのアクセス制御 (RBAC) を使用 して ID に共有レベルのアクセス許可を割り当て るようにしてください。

共有レベルのアクセス許可を割り当てたら、ルート、ディレクトリ、またはファイル レベルで Windows アクセス制御リスト (ACL) (NTFS アクセス許可とも呼ぶ) を構成できます。

重要

ハイブリッド ID 用に Windows ACL を構成するには、ドメイン コントローラーへのネットワーク接続が妨げされていない Windows を実行しているクライアント コンピューターが必要です。 ハイブリッド ID に対して Active Directory Domain Services (AD DS) または Microsoft Entra Kerberos を使用して Azure Files で認証を行う場合は、オンプレミス AD への妨げのないネットワーク接続が必要です。 Microsoft Entra Domain Services を使用する場合、クライアント マシンは、Azure にある Microsoft Entra Domain Services によって管理されているドメインのドメイン コントローラーへのネットワーク接続が妨げされていない必要があります。 クラウド専用 ID (プレビュー) の場合、ドメイン コントローラーに依存しませんが、デバイスを Microsoft Entra ID に参加させる必要があります。

Azure RBAC と Windows ACL の連携のしくみ

共有レベルのアクセス許可 (RBAC) は、ユーザーが共有にアクセスできるかどうかを決定する高レベルのゲートキーパーとして機能しますが、Windows ACL (NTFS アクセス許可) は、ユーザーがディレクトリまたはファイル レベルで実行できる操作を制御するために、より詳細なレベルで動作します。

ユーザーがファイルまたはディレクトリにアクセスしようとすると、共有レベルとファイル/ディレクトリ レベルのアクセス許可の両方が適用されます。 どちらかの間に違いがある場合は、最も制限の厳しいもののみが適用されます。 たとえば、ユーザーがファイル レベルで読み取り/書き込みアクセス権を持っているが、共有レベルでは読み取りアクセス権しかない場合は、そのファイルは読み取ることしかできません。 アクセス許可が逆の場合も同じ規則が適用されます。ユーザーが共有レベルで読み取り/書き込みアクセス権を持っていて、ファイル レベルでのみ読み取りを行う場合は、引き続きファイルの読み取りのみを行うことができます。

次の表は、共有レベルのアクセス許可と Windows ACL の組み合わせが連携して、Azure Files 内のファイルまたはディレクトリへのアクセスを決定する方法を示しています。

RBAC ロールなし RBAC - SMB 共有閲覧者 RBAC - SMB 共有貢献者 RBAC - SMB 共有管理者特権共同作成者
NTFS - なし アクセス拒否 アクセス拒否 アクセス拒否 アクセス拒否
NTFS - 読み取り アクセス拒否 Read Read Read
NTFS - 実行と稼働 アクセス拒否 Read Read Read
NTFS - フォルダーの一覧表示 アクセス拒否 Read Read Read
NTFS - 書き込み アクセス拒否 Read 読み取り、実行、書き込み 読み取り、書き込み
NTFS - 変更 アクセス拒否 Read 読み取り、書き込み、実行、削除 読み取り、書き込み、実行、削除、独自のフォルダー/ファイルへのアクセス許可の適用
NTFS - 完全 アクセス拒否 Read 読み取り、書き込み、実行、削除 読み取り、書き込み、実行、削除、すべてのユーザーのフォルダー/ファイルにアクセス許可を適用する

メモ

ACL 構成のフォルダーまたはファイルの所有権を取得するには、追加の RBAC アクセス許可が必要です。 SMB 管理者の Windows アクセス許可モデルでは、組み込みの RBAC ロール Storage File Data SMB 管理者 (takeOwnershipアクセス許可を含む) を割り当てることで、これを許可できます。

サポートされている 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 Server エクスペリエンスと一貫性を保つルート ディレクトリに含まれています。
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 つの方法を使用できます。

  • SMB 管理者向けの Windows アクセス許可モデルを使用する: 組み込みの RBAC ロール のストレージ ファイル データ SMB 管理者を割り当てます。これには、ACL を構成するユーザーに必要なアクセス許可が含まれます。 次に、 ID ベースの認証 を使用してファイル共有をマウントし、ACL を構成します。 この方法は、ファイル共有をマウントするためにストレージ アカウント キーを必要としないため、より安全です。

  • ストレージ アカウント キーを使用する (推奨されません): ストレージ アカウント キーを使用してファイル共有をマウントし、ACL を構成します。 ストレージ アカウント キーは機密性の高い資格情報です。 セキュリティ上の理由から、ID ベースの認証を使用できない場合にのみ、このオプションを使用します。

メモ

フル コントロール ACL と ストレージ ファイル データ SMB 共有管理者特権共同作成者 ロール (または必要なアクセス許可を持つカスタム ロール) を持つユーザーは、SMB 管理者またはストレージ アカウント キーの Windows アクセス許可モデルを使用せずに ACL を構成できます。

SMB 管理者向けの Windows アクセス許可モデルを使用する

ストレージ アカウント キーを使用する代わりに、SMB 管理者向けの Windows アクセス許可モデルを使用することをお勧めします。 この機能を使用すると、組み込みの RBAC ロール Storage File Data SMB 管理者 をユーザーに割り当てることができ、ACL を構成するためにファイルまたはディレクトリの所有権を取得できます。

ストレージ ファイル データ SMB 管理者 RBAC ロールには、次の 3 つのデータ アクションが含まれています。

  • Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action
  • Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

SMB 管理者に Windows アクセス許可モデルを使用するには、次の手順に従います。

  1. ACL を構成するユーザーに ストレージ ファイル データ SMB 管理者 RBAC ロールを割り当てます。 ロールを割り当てる方法については、 Azure portal を使用した Azure ロールの割り当てに関するページを参照してください。

  2. ユーザーにドメイン ID を使用してファイル共有をマウントさせます。 ストレージ アカウントに 対して ID ベースの認証 が構成されている限り、ストレージ アカウント キーを使用せずに共有をマウントし、Windows ACL を構成および編集できます。

    ドメインに参加しているデバイス、またはドメイン コントローラーへのネットワーク接続が制限されていないデバイスにサインインしてください (AD ソースが Microsoft Entra Domain Services の場合は Microsoft Entra ユーザーとして)。 Windows コマンド プロンプトを開き、次のコマンドを実行してファイル共有をマウントします。 <YourStorageAccountName><FileShareName> を独自の値に置き換えます。 Z: が既に使用されている場合は、使用可能なドライブ文字に置き換えます。

    net use コマンドを使用して、PowerShell ではなく、この段階で共有をマウントします。 PowerShell を使用して共有をマウントする場合、共有は Windows エクスプローラーまたは cmd.exeに表示されず、Windows ACL の構成が困難になります。

    net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName>
    

Warnung

可能であれば、 SMB 管理者の Windows アクセス許可モデル を使用して、ストレージ アカウント キーを使用する代わりに共有をマウントします。

ドメインに参加しているデバイス、またはドメイン コントローラーへのネットワーク接続が制限されていないデバイスにサインインしてください (AD ソースが Microsoft Entra Domain Services の場合は Microsoft Entra ユーザーとして)。 Windows コマンド プロンプトを開き、次のコマンドを実行してファイル共有をマウントします。 <YourStorageAccountName><FileShareName>、および <YourStorageAccountKey> を独自の値に置き換えます。 Z: が既に使用されている場合は、使用可能なドライブ文字に置き換えます。 ストレージ アカウント キーを確認するには、Azure portal でストレージ アカウントに移動し、[セキュリティとネットワーク]>[アクセス キー] を選びます。または、Get-AzStorageAccountKey PowerShell コマンドレットを使うこともできます。

net use コマンドを使用して、PowerShell ではなく、この段階で共有をマウントします。 PowerShell を使用して共有をマウントする場合、共有は Windows エクスプローラーまたは cmd.exeに表示されず、Windows ACL の構成が困難になります。

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>

Windows ACL を構成する

Windows ACL を構成するプロセスは、ハイブリッド ID とクラウド専用 ID のどちらを認証するかによって異なります。

  • クラウド専用 ID (プレビュー) の場合は、Azure portal または PowerShell を使用する必要があります。 Windows エクスプローラーと icacls は、クラウド専用 ID では現在サポートされていません。

  • ハイブリッド ID の場合は、icacls を使用して Windows ACL を構成することも、Windows エクスプローラーを使用することもできます。 Set-ACL PowerShell コマンドを使うこともできます。 AD DS ID に対して Windows ACL が構成されているオンプレミスのファイル サーバーにディレクトリまたはファイルがある場合は、Robocopy や最新バージョンの Azure AzCopy などの従来のファイル コピー ツールを使用して、ACL を保持しながら Azure Files にコピーできます。 Azure File Sync を使用してディレクトリとファイルを Azure Files に階層化すると、ACL はネイティブ形式で引き継がれ、永続化されます。

重要

Microsoft Entra Kerberos を使用してハイブリッド ID を認証する場合、ACL を適用するには、ハイブリッド ID を Microsoft Entra ID に同期する必要があります。 Microsoft Entra ID と同期されていない ID のファイル レベルとディレクトリ レベルの ACL を設定できます。 ただし、認証と承認に使用される Kerberos チケットに同期されていない ID が含まれていないため、これらの ACL は適用されません。 オンプレミスの AD DS を AD ソースとして使用している場合は、ACL に同期されていない ID を含めることができます。 AD DS では、これらの SID が Kerberos チケットに格納され、ACL が適用されます。

Azure portal を使用して Windows ACL を構成する

Microsoft Entra Kerberos を ID ソースとして構成している場合は、Azure portal を使用して Entra ユーザーまたはグループごとに Windows ACL を構成できます。 この方法は、Microsoft Entra Kerberos が ID ソースとして使用されている場合にのみ、ハイブリッド ID とクラウド専用 ID の両方に対して機能します。

  1. 次の特定の URL を使用して Azure portal にサインインします。 https://aka.ms/portal/fileperms

  2. Windows ACL を構成するファイル共有に移動します。

  3. サービス メニューから [Browse] を選択 します。 ルート フォルダーで ACL を設定する場合は、上部のメニューから [ アクセスの管理 ] を選択します。

    ファイル共有のルート フォルダーのアクセスを管理する方法を示す Azure portal のスクリーンショット。

  4. ファイルまたはディレクトリの ACL を設定するには、ファイルまたはディレクトリを右クリックし、[ アクセスの管理] を選択します。

    ファイルまたはディレクトリの Windows ACL を設定する方法を示す Azure portal のスクリーンショット。

  5. これで、使用可能なユーザーとグループが表示されます。 必要に応じて、新しいユーザーまたはグループを追加できます。 ユーザーまたはグループの右端にある鉛筆アイコンを選択して、指定されたファイル/ディレクトリにアクセスするためのユーザー/グループのアクセス許可を追加または編集します。

    Entra のユーザーとグループの一覧を示す Azure portal のスクリーンショット。

  6. アクセス許可を編集します。 両方 が設定されている場合、拒否は常に 許可 よりも優先されます。 どちらも設定されていない場合、既定のアクセス許可が継承されます。

    Entra ユーザーまたはグループのアクセス許可を追加または編集する方法を示す Azure portal のスクリーンショット。

  7. [保存] を選択して ACL を設定します。

PowerShell を使用してクラウド専用 ID の Windows ACL を構成する

クラウド専用ユーザーに ACL を一括で割り当てる必要がある場合は、 RestSetAcls PowerShell モジュール を使用して、Azure Files REST API を使用してプロセスを自動化できます。

たとえば、クラウド専用ユーザーに読み取りアクセス権を付与するルート ACL testUser@contoso.com 設定する場合は、次のようになります。

$AccountName = "<storage-account-name>" # replace with the storage account name 
$AccountKey = "<storage-account-key>" # replace with the storage account key 
$context = New-AzStorageContext -StorageAccountName $AccountName -StorageAccountKey $AccountKey 
Add-AzFileAce -Context $context -FileShareName test -FilePath "/" -Type Allow -Principal "testUser@contoso.com" -AccessRights Read,Synchronize -InheritanceFlags ObjectInherit,ContainerInherit 

icacls で Windows ACL を構成する

重要

icacls の使用は、クラウドのみの ID では機能しません。

ルート ディレクトリを含む、ファイル共有下のすべてのディレクトリとファイルにフル アクセス許可を付与するには、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 エクスプローラーを使用して、ルート ディレクトリを含むファイル共有のすべてのディレクトリとファイルに完全なアクセス許可を付与できます。 エクスプローラーの使用は、ハイブリッド ID でのみ機能します。クラウドのみの ID では機能しません。

重要

Windows エクスプローラーの使用は、クラウドのみの ID では機能しません。 クライアントがドメインに参加していない場合、または環境に複数の AD フォレストがある場合は、Windows エクスプローラーを使用して ACL を構成しないでください。 代わりに icacls を使用してください。 この制限は、Windows エクスプローラーの ACL 構成では、クライアントがストレージ アカウントが参加している AD ドメインにドメインに参加している必要があるためです。

Windows エクスプローラーを使用して ACL を構成するには、次の手順に従います。

  1. Windows エクスプローラーを開き、ファイルまたはディレクトリを右クリックし、[ プロパティ] を選択します。
  2. [セキュリティ] タブをクリックします。
  3. [編集...] を選んでアクセス許可を変更します。
  4. 既存のユーザーのアクセス許可を変更するか、[ 追加]... を選択して新しいユーザーにアクセス許可を付与します。
  5. 新しいユーザーを追加するためのプロンプト ウィンドウで、アクセス許可を付与するターゲット ユーザーの名前を [選択するオブジェクト名を入力してください] ボックスに入力し、 [名前の確認] を選択して、ターゲット ユーザーの完全な UPN 名を見つけます。 オンプレミス AD のドメイン名とドメイン GUID を指定することが必要になる場合があります。 この情報は、ドメイン管理者またはオンプレミスの AD 参加済みクライアントから取得できます。
  6. [OK] を選択します。
  7. [セキュリティ] タブで、新しいユーザーに付与するすべてのアクセス許可を選択します。
  8. 適用を選択します。

次のステップ

ディレクトリとファイル レベルのアクセス許可を構成したら、 WINDOWS または Linux で SMB ファイル共有をマウントできます。