SMB Azure ファイル共有をマウントする
この記事で説明するプロセスでは、SMB ファイル共有とアクセス許可が正しく設定されていること、および SMB Azure ファイル共有をマウントできることを確認します。
ファイル共有の種類 | SMB | NFS |
---|---|---|
Standard ファイル共有 (GPv2)、LRS/ZRS | ||
Standard ファイル共有 (GPv2)、GRS/GZRS | ||
Premium ファイル共有 (FileStorage)、LRS/ZRS |
Azure ファイル共有をマウントする前に、次の前提条件を完了していることを確認してください。
- 既に共有レベルのアクセス許可を割り当て、ディレクトリとファイル レベルのアクセス許可を構成していることを確認します。 共有レベルのロールの割り当ては、有効になるまでに時間がかかる場合があることに注意してください。
- 対象のストレージ アカウント キーを使用してファイル共有に以前に接続したクライアントからファイル共有をマウントする場合は、その共有を切断しており、ストレージ アカウント キーの永続的な資格情報を削除したことを確認します。 Active Directory Domain Services (AD DS) または Microsoft Entra の資格情報を使って新しい接続を初期化する前に、キャッシュされた資格情報を削除し、既存の SMB 接続を削除する方法については、FAQ のページにある 2 段階のプロセスに従います。
- AD ソースが AD DS または Microsoft Entra Kerberos の場合は、クライアントに AD DS への妨げられないネットワーク接続がある必要があります。 お使いのマシンまたは VM が AD DS によって管理されているネットワークの外にある場合、VPN を有効にして、認証のために AD DS に到達できるようにする必要があります。
- アクセス許可を付与した AD DS または Microsoft Entra ID の資格情報を使用して、クライアントにサインインします。
次の PowerShell スクリプトを実行するか、Azure portal を使用して、Azure ファイル共有を永続的にマウントし、Windows 上の Z: ドライブにマップします。 Z: が既に使用されている場合は、使用可能なドライブ文字に置き換えます。 認証済みなので、ストレージ アカウント キーを指定する必要はありません。 このスクリプトでは、このストレージ アカウントに TCP ポート 445 (SMB が使用するポート) を介してアクセスできるかどうかを確認します。 プレースホルダーをお客様独自の値に置き換えてください。 詳細については、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>
問題が発生した場合は、「AD 資格情報を使用して Azure ファイル共有をマウントできない」を参照してください。
AD ソースがオンプレミスの Active Directory Domain Services である場合、ドメインに参加していない VM またはストレージ アカウントとは異なる AD ドメインに参加している VM は、AD ドメイン コントローラーへのネットワーク接続が妨げられず、明示的な資格情報 (ユーザー名とパスワード) を提供している場合、Azure ファイル共有にアクセスできます。 ファイル共有にアクセスするユーザーは、ストレージ アカウントが参加している AD ドメインの ID と資格情報が必要です。
AD ソースが Microsoft Entra Domain Services の場合、VM は、Azure に配置された Microsoft Entra Domain Services のドメイン コントローラーへの妨げられないネットワーク接続がある必要があります。 これには、通常、サイト間 VPN またはポイント対サイト VPN を設定する必要があります。 ファイル共有にアクセスしているユーザーは、Microsoft Entra Domain Services マネージド ドメインで、ID (Microsoft Entra ID から Microsoft Entra Domain Services に同期している Microsoft Entra の ID) を持っている必要があります。
ドメインに参加していない VM からファイル共有をマウントするには、username@domainFQDN の表記を使用します。ここで、domainFQDN は完全修飾ドメイン名です。 これによりクライアントはドメイン コントローラーに接続して、Kerberos チケットを要求および受信できます。 domainFQDN の値は、Active Directory PowerShell で (Get-ADDomain).Dnsroot
を実行することによって取得できます。
次に例を示します。
net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<username@domainFQDN>
AD ソースが Microsoft Entra Domain サービスの場合、DOMAINNAME\username などの資格情報を指定することもできます。ここで、DOMAINNAME は Microsoft Entra Domain Services ドメインであり、username は Microsoft Entra Domain Services の ID のユーザー名です。
net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<DOMAINNAME\username>
注意
Azure Files では、ドメインに参加していない VM、または Windows エクスプローラーを使用して別のドメインに参加している VM のユーザーとグループの SID から UPN への変換はサポートされていません。 Windows のエクスプローラーを使用してファイルまたはディレクトリの所有者を表示し、NTFS アクセス許可を表示または変更する場合、ドメインに参加している VM からのみ、それらの操作を実行できます。
サフィックス file.core.windows.net
を使用して Azure ファイル共有をマウントしない場合は、Azure ファイル共有に関連付けられているストレージ アカウント名のサフィックスを変更してから、正規名 (CNAME) レコードを追加して、新しいサフィックスをストレージ アカウントのエンドポイントにルーティングできます。 次の手順は、単一フォレスト環境専用です。 2 つ以上のフォレストがある環境を構成する方法については、「複数の Active Directory フォレストで Azure Files を使用する」を参照してください。
注意
Azure Files では、ストレージ アカウント名をドメイン プレフィックスとして使用する CNAMES の構成のみがサポートされています。 ストレージ アカウント名をプレフィックスとして使用しない場合は、DFS 名前空間の使用を検討してください。
この例では、Active Directory ドメイン onpremad1.com があり、SMB Azure ファイル共有を含む mystorageaccount というストレージ アカウントがあります。 まず、ストレージ アカウントの SPN サフィックスを変更して、mystorageaccount.onpremad1.com を mystorageaccount.file.core.windows.net にマップする必要があります。
これにより、クライアントは net use \\mystorageaccount.onpremad1.com
を使用して共有をマウントできます。onpremad1 のクライアントが、そのストレージ アカウントに適したリソースを見つけるために onpremad1.com を検索すべきことを認識するからです。
この方法を使用するには、次の手順を実行します。
ID ベースの認証が設定されていることを確認します。 AD ソースが AD DS または Microsoft Entra Kerberos の場合は、AD ユーザー アカウントが Microsoft Entra ID に同期されていることを確認します。
setspn
ツールを使用して、ストレージ アカウントの SPN を変更します。<DomainDnsRoot>
を見つけるには、Active Directory PowerShell コマンド(Get-AdDomain).DnsRoot
を実行します。setspn -s cifs/<storage-account-name>.<DomainDnsRoot> <storage-account-name>
Active Directory DNS マネージャーを使用して CNAME エントリを追加し、ストレージ アカウントが参加しているドメイン内のストレージ アカウントごとに、次の手順を実行します。 プライベート エンドポイントを使用している場合は、プライベート エンドポイント名にマップする CNAME エントリを追加します。
- Active Directory DNS マネージャーを開きます。
- ご自分のドメイン (たとえば、onpremad1.com) に移動します。
- [Forward Lookup Zones] (前方参照ゾーン) に移動します。
- ドメインの名前が付いたノード (onpremad1.com など) を選択し、[New Alias (CNAME)] (新しい別名 (CNAME)) を右クリックします。
- 別名には、ストレージ アカウント名を入力します。
- 完全修飾ドメイン名 (FQDN) には、「
<storage-account-name>
.<domain-name>
」 (例: mystorageaccount.onpremad1.com) を入力します。 FQDN のホスト名部分は、ストレージ アカウント名と一致する必要があります。 そうしないと、SMB セッションのセットアップ中にアクセス拒否エラーが発生します。 - ターゲット ホスト FQDN には、「
<storage-account-name>
.file.core.windows.net」と入力します - [OK] を選択します。
これで、storageaccount.domainname.com を使用してファイル共有をマウントできるようになりました。 ストレージ アカウント キーを使用してファイル共有をマウントすることもできます。
ストレージ アカウントを表すために AD DS で作成した ID が、パスワードのローテーションが適用されているドメインまたは OU 内にある場合は、AD DS でストレージ アカウント ID のパスワードを更新することが必要な場合があります。