Azure Files に対する Microsoft Entra Domain Services 認証を有効にする

Azure Files では、次の方法で Kerberos 認証プロトコルを使用したサーバー メッセージ ブロック (SMB) 経由の Windows ファイル共有の ID ベース認証がサポートされています。

  • オンプレミス Active Directory Domain Services (AD DS)
  • Microsoft Entra Domain Services
  • ハイブリッド ユーザー ID 用の Microsoft Entra Kerberos

この記事では、Azure ファイル共有での ID ベースの認証用に Microsoft Entra Domain Services (旧称 Azure Active Directory Domain Services) を有効にして構成する方法に重点を置いて説明します。 この認証シナリオでは、Microsoft Entra 資格情報と Microsoft Entra Domain Services 資格情報は同じであり、同じ意味で使用できます。

認証のための適切な AD ソースを選択するために、「しくみ」のセクションを確認することを強くお勧めします。 設定は、選択する AD ソースによって異なります。

Azure Files を初めて使用する場合は、この記事を読む前に、計画ガイドに目を通すことをお勧めします。

Note

Azure Files は、RC4-HMAC および AES-256 暗号化を使った Microsoft Entra Domain Services での Kerberos 認証をサポートしています。 AES-256 を使用することをお勧めします。

Azure Files は、Microsoft Entra ID との全部または一部 (範囲指定) の同期を使った Microsoft Entra Domain Services の認証をサポートしています。 範囲指定された同期が存在する環境の場合、管理者は、Azure Files では同期されるプリンシパルに付与された Azure RBAC ロールの割り当てのみが受け入れられることに注意する必要があります。 Microsoft Entra ID から Microsoft Entra Domain Services に同期されていない ID に付与されたロールの割り当ては、Azure Files サービスによって無視されます。

適用対象

ファイル共有の種類 SMB NFS
Standard ファイル共有 (GPv2)、LRS/ZRS Yes No
Standard ファイル共有 (GPv2)、GRS/GZRS Yes No
Premium ファイル共有 (FileStorage)、LRS/ZRS Yes No

前提条件

Azure ファイル共有に対する SMB 経由での Microsoft Entra Domain Services を有効にするには、次の前提条件を満たしていることを確認してください。

  1. Microsoft Entra テナントを選択または作成します。

    新規または既存のテナントを使用できます。 アクセスするテナントとファイル共有は、同じサブスクリプションに関連付けられている必要があります。

    新しい Microsoft Entra テナントを作成するには、Microsoft Entra テナントと Microsoft Entra サブスクリプションを追加します。 既存の Microsoft Entra テナントがあっても Azure ファイル共有で使うために新しいテナントを作成したい場合は、Microsoft Entra テナントの作成に関する記事を参照してください。

  2. Microsoft Entra テナントに対して Microsoft Entra Domain Services を有効にします。

    Microsoft Entra 資格情報を使った認証をサポートするには、Microsoft Entra テナントに対して Microsoft Entra Domain Services を有効にする必要があります。 Microsoft Entra テナントの管理者ではない場合は、管理者に連絡するとともに、Azure portal を使用して Microsoft Entra Domain Services を有効にするためのステップ バイ ステップ ガイダンスに従います。

    通常、Microsoft Entra Domain Services のデプロイが完了するまでには 15 分ほどかかります。 次の手順に進む前に、Microsoft Entra Domain Services の正常性状態が [実行中] と表示されており、パスワード ハッシュ同期が有効になっていることを確認します。

  3. Microsoft Entra Domain Services で Azure VM にドメイン参加します。

    Microsoft Entra 資格情報を使って VM から Azure ファイル共有にアクセスするには、VM が Microsoft Entra Domain Services にドメイン参加済みである必要があります。 VM のドメイン参加方法の詳細については、「Windows Server 仮想マシンのマネージド ドメインへの参加」を参照してください。 Azure ファイル共有を使った SMB 経由での Microsoft Entra Domain Services 認証は、Windows 7 以降または Windows Server 2008 R2 以降の OS バージョンで実行されている Azure VM 上でのみサポートされています。

    Note

    ドメインに参加していない VM は、Microsoft Entra Domain Services のドメイン コントローラーへのネットワーク接続が妨げされていない場合にのみ、Microsoft Entra Domain Services 認証を使用して Azure ファイル共有にアクセスできます。 通常、これにはサイト間 VPN またはポイント対サイト VPN が必要です。

  4. Azure ファイル共有を選択または作成します。

    Microsoft Entra テナントと同じサブスクリプションに関連付けられている新規または既存のファイル共有を選択します。 新しいファイル共有を作成する方法の詳細については、「Azure Files にファイル共有を作成する」を参照してください。 パフォーマンスを最適化するには、共有にアクセスする予定の VM と同じリージョンにファイル共有を配置することをお勧めします。

  5. ストレージ アカウント キーを使用して Azure ファイル共有をマウントすることにより、Azure Files の接続を確認します。

    VM とファイル共有が正しく構成されていることを確認するには、ストレージ アカウント キーを使用してファイル共有をマウントします。 詳細については、「Windows で Azure ファイル共有をマウントして共有にアクセスする」を参照してください。

リージョン別の提供状況

Microsoft Entra Domain Services を使った Azure Files 認証は、すべての Azure パブリック リージョン、Gov リージョン、China リージョンで利用できます。

ワークフローの概要

Azure ファイル共有に対する SMB 経由での Microsoft Entra Domain Services 認証を有効にするには、Microsoft Entra ID と Azure Storage の環境が正しく構成されていることを確認してください。 前提条件を参照して、必要な手順をすべて完了したことを確認することをお勧めします。

次の手順に従って、Microsoft Entra 資格情報を使って Azure Files のリソースへのアクセス許可を付与します。

  1. 関連付けられている Microsoft Entra Domain Services デプロイにストレージ アカウントが登録されるように、ストレージ アカウントで SMB 経由での Microsoft Entra Domain Services 認証を有効にします。
  2. Microsoft Entra の ID (ユーザー、グループ、またはサービス プリンシパル) に、共有レベルのアクセス許可を割り当てます。
  3. ストレージ アカウント キーを使用して Azure ファイル共有に接続し、ディレクトリとファイルの Windows アクセス制御リスト (ACL) を構成します。
  4. ドメインに参加している VM から Azure ファイル共有をマウントします。

次の図は、Azure Files に対する SMB 経由での Microsoft Entra Domain Services 認証を有効にするためのエンド ツー エンド ワークフローを示しています。

Diagram showing Microsoft Entra ID over SMB for Azure Files workflow.

アカウントで Microsoft Entra Domain Services 認証を有効にする

Azure Files に対する SMB 経由での Microsoft Entra Domain Services 認証を有効にするには、Azure portal、Azure PowerShell、または Azure CLI を使用して、ストレージ アカウントでプロパティを設定できます。 このプロパティを設定すると、関連付けられている Microsoft Entra Domain Services のデプロイにより、ストレージ アカウントが暗黙的に "ドメイン参加" します。 その後、ストレージ アカウント内のすべての新規および既存のファイル共有に対して、SMB 経由での Microsoft Entra Domain Services 認証が有効になります。

SMB 経由での Microsoft Entra Domain Services 認証を有効にするには、Microsoft Entra テナントに Microsoft Entra Domain Services が正常にデプロイされている必要があることに注意してください。 詳細については、前提条件を参照してください。

Azure portal を使用して SMB 経由での Microsoft Entra Domain Services 認証を有効にするには、次の手順に従います。

  1. Azure portal で、既存のストレージ アカウントに移動するか、またはストレージ アカウントを作成します。

  2. [データ ストレージ] > [ファイル共有] の順に選択します。

  3. [ファイル共有の設定] セクションで、[ID ベースのアクセス: 未構成] を選択します。

    Screenshot of the file shares pane in your storage account, identity-based access is highlighted.

  4. [Microsoft Entra ドメイン サービス][設定] を選択し、チェックボックスをオンにしてこの機能を有効にします。

  5. [保存] を選択します。

    Screenshot of the identity-based access configuration pane, Microsoft Entra Domain Services is enabled as the source.

既定では、Microsoft Entra Domain Services 認証では Kerberos RC4 暗号化を使います。 次の手順に従って、代わりに Kerberos AES-256 暗号化を使用するように構成することをお勧めします。

このアクションでは、ドメイン オブジェクトに対するプロパティの変更を要求するために、Microsoft Entra Domain Services で管理されている Active Directory ドメインで操作を実行してドメイン コントローラーに到達する必要があります。 次のコマンドレットは、Azure PowerShell コマンドレットではなく、Windows Server Active Directory PowerShell コマンドレットです。 このため、これらの PowerShell コマンドは、Microsoft Entra Domain Services ドメインにドメイン参加しているクライアント マシンから実行する必要があります。

重要

このセクションの Windows Server Active Directory PowerShell コマンドレットは、Microsoft Entra Domain Services ドメインにドメイン参加しているクライアント マシンから Windows PowerShell 5.1 で実行する必要があります。 このシナリオでは、PowerShell 7.x と Azure Cloud Shell は機能しません。

ドメイン参加済みのクライアント マシンに、必要なアクセス許可を持つ Microsoft Entra Domain Services ユーザーとしてログインします。 ドメイン オブジェクトの msDS-SupportedEncryptionTypes 属性に対する書き込みアクセス権が必要です。 通常、AAD DC Administrators グループのメンバーには必要なアクセス許可が付与されています。 通常の (管理者特権以外の) PowerShell セッションを開き、次のコマンドを実行します。

# 1. Find the service account in your managed domain that represents the storage account.

$storageAccountName= “<InsertStorageAccountNameHere>”
$searchFilter = "Name -like '*{0}*'" -f $storageAccountName
$userObject = Get-ADUser -filter $searchFilter

if ($userObject -eq $null)
{
   Write-Error "Cannot find AD object for storage account:$storageAccountName" -ErrorAction Stop
}

# 2. Set the KerberosEncryptionType of the object

Set-ADUser $userObject -KerberosEncryptionType AES256

# 3. Validate that the object now has the expected (AES256) encryption type.

Get-ADUser $userObject -properties KerberosEncryptionType

重要

以前に RC4 暗号化を使用していて、AES-256 を使用するようにストレージ アカウントを更新する場合は、クライアントで klist purge を実行してからファイル共有を再マウントして、AES-256 を使用した新しい Kerberos チケットを取得する必要があります。

共有レベルのアクセス許可を割り当てる

ID ベースの認証を使用して Azure Files リソースにアクセスするには、ID (ユーザー、グループ、またはサービス プリンシパル) が共有レベルで必要なアクセス許可を持っている必要があります。 このプロセスは、ファイル共有に対し特定のユーザーが持っているアクセス権の種類を指定する、Windows 共有のアクセス許可の指定に似ています。 このセクションのガイダンスでは、ID にファイル共有のための読み取り、書き込み、または削除のアクセス許可を割り当てる方法を示します。 ワイルドカード (*) 文字を使うのではなく、アクションとデータ アクションを明示的に宣言することにより、アクセス許可を割り当てることを強くお勧めします。

ほとんどのユーザーは、共有レベルのアクセス許可を特定の Microsoft Entra ユーザーまたはグループに割り当て、その後 Windows ACL を構成して、ディレクトリ レベルとファイル レベルで詳細なアクセスの制御を行う必要があります。 ただし、代わりに、既定の共有レベルのアクセス許可を設定して、すべての認証済み ID に対する共同作成者、昇格された共同作成者、または閲覧者のアクセスを許可することができます。

Azure Files には 5 つの Azure 組み込みロールがあり、その一部では共有レベルのアクセス許可をユーザーとグループに付与できます。

  • 記憶域ァイル データの特権共同作成者では、既存の Windows ACL をオーバーライドすることで、SMB 経由の Azure ファイル共有での Windows ACL の読み取り、書き込み、削除、および変更が許可されます。
  • 記憶域ァイル データの特権閲覧者では、既存の Windows ACL をオーバーライドすることで、SMB 経由の Azure ファイル共有での読み取りアクセスが許可されます。
  • 記憶域ファイル データの SMB 共有の共同作成者では、SMB 経由の Azure ファイル共有での読み取り、書き込み、削除アクセスが許可されます。
  • ストレージ ファイル データの SMB 共有の管理者特権共同作成者では、SMB 経由の Azure ファイル共有での Windows ACL の読み取り、書き込み、削除、および変更が許可されます。
  • 記憶域ファイル データの SMB 共有の閲覧者では、SMB 経由の Azure ファイル共有での読み取りアクセスが許可されます。

重要

ファイルの所有権を引き受ける機能を含めて、ファイル共有を完全に管理制御するには、ストレージ アカウント キーを使用する必要があります。 Microsoft Entra 資格情報では、管理制御がサポートされていません。

Azure portal、Azure PowerShell、または Azure CLI を使用して、共有レベルのアクセス許可の付与のために、組み込みのロールをユーザーの Microsoft Entra の ID に割り当てることができます。 共有レベルの Azure ロールの割り当ては、有効になるまでに時間がかかる場合があることにご注意ください。 ユーザーと ID のグループを表す AD グループに対する高レベルのアクセス管理に共有レベルのアクセス許可を使ってから、ディレクトリとファイルのレベルでのきめ細かいアクセス制御に Windows ACL を利用することをお勧めします。

Microsoft Entra の ID に Azure ロールを割り当てる

重要

ワイルドカード (*) 文字を使うのではなく、アクションとデータ アクションを明示的に宣言することによりアクセス許可を割り当てます。 データ アクションのカスタム ロール定義にワイルドカード文字が含まれている場合、そのロールに割り当てられているすべての ID に、可能なすべてのデータ アクションへのアクセス権が付与されます。 つまり、そのようなすべての ID は、プラットフォームに追加される新しいデータ アクションも許可されます。 新しいアクションまたはデータ アクションによって付与される追加のアクセスとアクセス許可は、ワイルドカードを使用しているお客様にとって望ましくない動作である可能性があります。

Azure portal を使って Azure ロールを Microsoft Entra の ID に割り当てるには、次の手順のようにします。

  1. Azure portal でファイル共有に移動するか、ファイル共有を作成します。
  2. [アクセス制御 (IAM)] を選択します。
  3. [ロールの割り当てを追加する] を選択します。
  4. [ロールの割り当ての追加] ブレードで、[ロール] の一覧から適切な組み込みロール (たとえば、記憶域ファイル データの SMB 共有の閲覧者や記憶域ファイル データの SMB 共有の共同作成者) を選びます。 [アクセスの割り当て先] を、既定値の [Microsoft Entra のユーザー、グループ、サービス プリンシパル] のままにします。 名前またはメール アドレスで、ターゲットの Microsoft Entra の ID を選択します。
  5. [確認と割り当て] を選択して、ロールの割り当てを完了します。

Windows ACL を構成する

RBAC で共有レベルのアクセス許可を割り当てた後、ルート、ディレクトリ、またはファイル レベルで Windows ACL を割り当てることができます。 共有レベルのアクセス許可は、ユーザーが共有にアクセスできるかどうかを決定する高度なゲートキーパーであり、Windows ACL はユーザーがディレクトリまたはファイル レベルでどんな操作を行えるかを規定し、より詳細なレベルで動作すると考えることができます。

Azure Files では、基本的なアクセス許可と詳細なアクセス許可の完全なセットをサポートします。 Azure ファイル共有内のディレクトリとファイルの Windows ACL を表示および構成するには、共有をマウントしてから、Windows エクスプローラーを使用するか、Windows の icacls または Set-ACL コマンドを実行します。

ファイル共有のルート ディレクトリでは、次のアクセス許可セットがサポートされています。

  • BUILTIN\Administrators:(OI)(CI)(F)
  • NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  • BUILTIN\Users:(RX)
  • BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
  • NT authority \authenticated Users:(OI)(CI)(M)
  • NT AUTHORITY\SYSTEM:(F)
  • CREATOR OWNER:(OI)(CI)(IO)(F)

詳しくは、「SMB 経由でディレクトリとファイル レベルのアクセス許可を構成する」を参照してください。

ストレージ アカウント キーを使用してファイル共有をマウントする

Windows ACL を構成する前に、まずストレージ アカウント キーを使用してファイル共有をドメイン参加済みの VM にマウントする必要があります。 これを行うには、ドメイン参加済みの VM に 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 エクスプローラーを使用して Windows ACL を構成する

Azure ファイル共有をマウントしたら、Windows ACL を構成する必要があります。 これは、エクスプローラーまたは icacls のどちらかを使って行うことができます。

Windows エクスプローラーを使って、ルート ディレクトリを含む、ファイル共有下のすべてのディレクトリとファイル共有に完全なアクセス許可を付与するには、以下の手順のようにします。

  1. Windows エクスプローラーを開き、ファイルまたはディレクトリを右クリックし、 [プロパティ] を選択します。
  2. [セキュリティ] タブをクリックします。
  3. [編集] を選んでアクセス許可を変更します。
  4. 既存のユーザーの権限を変更することや、[追加] を選択して新しいユーザーにアクセス許可を付与することができます。
  5. 新しいユーザーを追加するためのプロンプト ウィンドウで、アクセス許可を付与するターゲット ユーザーの名前を [選択するオブジェクト名を入力してください] ボックスに入力し、 [名前の確認] を選択して、ターゲット ユーザーの完全な UPN 名を見つけます。
  6. [OK] を選択します。
  7. [セキュリティ] タブで、新しいユーザーに付与するすべてのアクセス許可を選択します。
  8. [適用] を選択します。

icacls で Windows ACL を構成する

ルート ディレクトリを含む、ファイル共有下のすべてのディレクトリとファイル共有に完全なアクセス許可を付与するには、次の Windows コマンドを使用します。 例中のプレースホルダーをお客様独自の値に置き換えてください。

icacls <mounted-drive-letter>: /grant <user-email>:(f)

icacls を使用して Windows ACL を設定する方法や、サポートされるさまざまな種類のアクセス許可の詳細については、コマンド ライン リファレンスの icacls に関するページをご覧ください。

ドメイン参加済みの VM からファイル共有をマウントする

次のプロセスでは、ファイル共有とアクセス許可が正しく設定されたことと、ドメイン参加済みの VM から Azure ファイル共有にアクセスできることを確認します。 共有レベルの Azure ロールの割り当ては、有効になるまでに時間がかかる場合があることにご注意ください。

アクセス許可を付与した Microsoft Entra の ID を使用して、ドメイン参加済みの VM にサインインします。 必ず Microsoft Entra 資格情報を使用してサインインしてください。 ドライブが既にストレージ アカウント キーを使用してマウントされている場合は、ドライブを切断するか、もう一度サインインする必要があります。

以下の PowerShell スクリプトを実行するか、Azure portal を使用して、Azure ファイル共有を永続的にマウントし、Windows 上の Z: ドライブにマップします。 Z: が既に使用されている場合は、使用可能なドライブ文字に置き換えます。 認証済みなので、ストレージ アカウント キーを指定する必要はありません。 このスクリプトでは、このストレージ アカウントに TCP ポート 445 (SMB が使用するポート) を介してアクセスできるかどうかを確認します。 忘れずに、<storage-account-name><file-share-name> を独自の値に置き換えてください。 詳細については、Windows での Azure ファイル共有の使用に関する記事を参照してください。

カスタム ドメイン名を使用しない限り、共有のプライベート エンドポイントを設定した場合でも、サフィックス file.core.windows.net を使用して Azure ファイル共有をマウントする必要があります。

$connectTestResult = Test-NetConnection -ComputerName <storage-account-name>.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    cmd.exe /C "cmdkey /add:`"<storage-account-name>.file.core.windows.net`" /user:`"localhost\<storage-account-name>`""
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\<file-share-name>" -Persist -Scope global
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

Windows プロンプトから net-use コマンドを使用して、ファイル共有をマウントすることもできます。 忘れずに、<YourStorageAccountName><FileShareName> を独自の値に置き換えてください。

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

ドメイン参加していない VM または別の AD ドメインに参加している VM からファイル共有をマウントする

ドメインに参加していない VM や、ストレージ アカウントとは異なるドメインに参加している VM は、Azure に配置されている Microsoft Entra Domain Services 用のドメイン コントローラーにスムーズにネットワーク接続できる場合にのみ、Microsoft Entra Domain Services 認証を使って Azure ファイル共有にアクセスできます。 これには、通常、サイト間 VPN またはポイント対サイト VPN を設定する必要があります。 ファイル共有にアクセスしているユーザーは、Microsoft Entra Domain Services マネージド ドメインで、ID (Microsoft Entra ID から Microsoft Entra Domain Services に同期している Microsoft Entra の ID) が必要で、明示的な資格情報 (ユーザー名とパスワード) を指定する必要があります。

ドメインに参加していない VM からファイル共有をマウントするには、ユーザーは次のいずれかを行う必要があります。

  • DOMAINNAME\username などの資格情報を指定する必要があります。ここで、DOMAINNAME は Microsoft Entra Domain Services ドメイン、username は Microsoft Entra Domain Services での ID のユーザー名です。または、
  • username@domainFQDN の表記を使用します。ここで、domainFQDN は完全修飾ドメイン名です。

これらの方法のいずれかを使用すると、クライアントは、Microsoft Entra Domain Services ドメイン内のドメイン コントローラーに接続して、Kerberos チケットを要求および受信できます。

次に例を示します。

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<DOMAINNAME\username>

or

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<username@domainFQDN>

次のステップ

ファイル共有に対してさらにユーザー アクセスを許可するには、「共有レベルのアクセス許可を割り当てる」と「Windows ACL を構成する」の手順に従ってください。

Azure Files の ID ベースの認証の詳細については、次のリソースを参照してください。