はじめに
こんにちは!ニフティ株式会社新卒1年目のやまだ25です。
現在、私はインフラシステムグループに所属し、社内でオンプレミス運用しているファイルサーバをクラウド上へリプレイスする業務を行っております。
本記事では、Azure Filesの検証時に特に苦労したAD DS認証の有効化について、下記の公式ドキュメントに沿いつつ、わかりづらい部分や補足情報を交えて解説します。
- Microsoft公式ドキュメント「Azure ファイル共有に対して Active Directory Domain Services 認証を有効にする」
https://learn.microsoft.com/ja-jp/azure/storage/files/storage-files-identity-ad-ds-enable
筆者プロフィール
- 入社時期: 2025年4月
- 入社前のスキル: Python
- 所属チーム: インフラシステムチーム
概要
Azure Filesとは、Microsoft Azureが提供しているフルマネージドなSMB/NFSファイル共有サービスです。
新たにサーバを構築する必要がなく、比較的容易に構築をすることができます。
Azure Filesでは、ストレージアカウントキーを使用してファイル共有に簡単にアクセスできるほか、AD DS認証を有効化することでアクセス制御をすることも可能です。
すでにAD DSによる認証・アクセス制御を利用しているオンプレミスのファイルサーバをAzure Filesにリプレイスする場合、この機能を有効化することで従来の管理方法を維持することができます。
今回は、すでにAzure上でAzure Filesが作成済みであるとし、Windows PC上のPowerShellを用いて、AD DS認証を有効化するまでの手順をご紹介します。
大まかな流れは以下の通りです。
- 前提条件
- 事前準備
- PowerShellモジュールのインポート
- Azureへの接続
- 各種パラメータを設定
- 対象のサブスクリプションを選択
- ストレージアカウントをActive Directoryにドメイン参加
※本記事では、Active Directoryの基本的な説明は省略します。
前提条件
今回の記事での前提条件は以下の通りです。
- Azure上にストレージアカウントを作成しており、そこにAzureファイル共有が作成済みである
- オンプレミスのActive Directoryがすでに構築されており、Microsoft Entra Connect SyncアプリでMicrosoft Entra IDと同期されている
- PowerShellを実行するWindows PCのユーザがドメイン参加しており、コンピュータアカウントを作成する権限を持っている
- Windows PCのPowerShellのバージョンが5.1以上である
- バージョンの確認方法
1$PSVersionTableを実行し、出力結果の
PSVersion
が5.1
以降になっていればOKです! - Windows PCにインストールされている .NET Frameworkのバージョンが4.7.2以上である
- バージョンの確認方法
1Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Releaseを実行し、
461808
以上であればOKです! - Windows PSのOSのバージョンがWindows 10 (1809以降)またはWindows 11以降である
- Windows 10のバージョンの確認方法
- Windowsキー+Rを押します。
- 表示された「ファイル名を指定して実行」ウィンドウにwinverと入力し、Enterキーを押します。
- 「Windowsのバージョン情報」ダイアログが表示され、「バージョン」と「OSビルド」を確認できます。ここで、バージョン番号(例: 1803, 1809, 22H2)が分かります。
- Windows 10のバージョンの確認方法
事前準備
※ 以下、すべてWindows PCがインターネット接続ができる環境下であることを前提としています。
PowerShellGetモジュールをインストール
【インストール手順】
PowerShellを管理者権限で開き、次のコマンドレットを実行します
1 |
Install-Module -Name PowerShellGet -Force |
(インストール中に NuGetプロバイダーをインストールするか尋ねられるので Y
を入力)
【インストールできたか確認する方法】
1 |
Get-Module -Name PowerShellGet -ListAvailable |
を実行して、以下のような表示が出ていればインストールに成功しています。
Azure PowerShellモジュールをインストール
【準備】
まず、次のコマンドレットを実行して、PowerShell実行ポリシーを確認しましょう。
1 |
Get-ExecutionPolicy -List |
実行結果のProcess
、CurrentUser
またはLocalMachine
がUndefined
の場合、以下のコマンドレットを実行して本プロセス中の実行ポリシーを緩い状態にしてください。
1 |
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process |
【インストール手順】
次を実行するとモジュールがインストールされます。
1 |
Install-Module -Name Az -Repository PSGallery -Force |
【インストールできたか確認する方法】
1 |
Get-InstalledModule -Name Az |
を実行して、以下のような表示が出ていればインストールに成功しています。
Active Directory PowerShellモジュールをインストール
(今回はWindows11の場合の手順を紹介します)
【インストール手順】
設定アプリを開き、「システム」の中の「オプション機能」へ移動します。
「オプション機能を追加する」の右にある「機能を表示」をクリックし、検索欄にRSAT: Active Directory Domain Servicesおよびライトウェイトディレクトリサービス
を入力します。
候補として上記ツールが出てくるので、チェックを入れて「次へ」をクリックします。
追加する内容の確認画面に遷移するため、上記ツールが含まれていることを確認し「追加」をクリックします。
インストールが開始されます。なお、私の環境ではインストール完了まで、5~10分ほど時間を要しました。
【インストールできたか確認する方法】
1 |
Get-WindowsCapability -Name "Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0" -Online |
を管理者権限で実行して、以下のような表示が出ていればインストールに成功しています。
AzFilesHybridモジュールをダウンロード
公式ドキュメントの「AzFilesHybridモジュールをダウンロードする」にあるリンクをクリックすると、GitHubのページが表示されます。
Assetsの中にAzFilesHybrid.zip
があるのでこれをダウンロードしてください。
ダウンロードしたら、このファイルを展開します。
※ この際、どこに展開したかを記録しておきましょう。インポートする際に展開先のパスを使用します
その他の事前準備
必須ではありませんが、今回Active Directory上に作成するコンピュータアカウント用のOUを作成します(今回は、OUの作成は必須ではないため作成手順は省略します)。
なお、OUを作成しなかった場合は、Active Directoryのルートディレクトリにアカウントが作成されます。
PowerShellモジュールのインポート
Active Directory PowerShellモジュールのインポート
次のコマンドレットを実行します。
1 |
Import-Module -Name ActiveDirectory |
AzFilesHybridモジュールのインポート
まず、次のコマンドレットを実行し、本プロセス中のPowerShell実行ポリシーをUnristricted
に変更します。
1 |
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process |
次に、展開したAzFilesHybridへ移動します。
1 |
cd \path\to\AzFilesHybrid |
このフォルダの中にあるCopyToPSPath.ps1ファイルを実行します。
1 |
.\CopyToPSPath.ps1 |
最後に、AzFilesHybridモジュールをインポートします
1 |
Import-Module -Name AzFilesHybrid |
Azureへ接続
次のコマンドレットを実行します。
1 |
Connect-AzAccount -Tenant "<テナントID>" |
※ もし、お使いのAzureが1つのテナントのみの場合は -Tenant "<テナントID>"
がなくても実行が成功しますが、2つ以上のテナントを使用している場合は混同を避けるために-Tenant "<テナントID>"
をつけて実行しましょう
実行すると、対話型ブラウザ認証が起動するため、自分のMicrosoftアカウントでログインしましょう。
【テナントIDの調べ方】
Azureポータル上でMicrosoft Entra IDを開くと概要のページにテナントIDが表示されます
各種パラメータの設定
まず、Azure Filesを構築したサブスクリプションのID、リソースグループの名前、ストレージアカウントの名前を確認します。
対象のストレージアカウントをAzureポータル上で開くと、概要にリソースグループ名およびサブスクリプションIDが記載されています。
上記の情報をもとに、以下3つのパラメータを設定します
1 2 3 |
$SubscriptionId = "<サブスクリプションID>" $ResourceGroupName = "<リソースグループ名>" $StorageAccountName = "<ストレージアカウント名>" |
次に、SAMアカウント名 (作成するコンピュータアカウントの名前)を決めます。
- SAMアカウント名の命名の際の制限
- 15文字以内で、使用できる文字はa~z、A~Z、0~9および一部の記号(-や_など)です
- 次の記号は使用できません
"/ \\ [ ] : ; | = , + * ? < >
- 以降に記載のコマンドレット
Join-AzStorageAccount
を実行時、このSAMアカウント名の後ろに$
を付けるため、この段階では末尾に$
は付けないでください
SAMアカウント名が決定したら、次を実行します。
1 |
$SamAccountName = "<SAMアカウント名>" |
続いて、Active Directoryに作成するアカウントのタイプを選択するパラメータを設定します。
1 |
$DomainAccountType = "<ComputerAccount または ServiceLogonAccount>" |
なお、デフォルトではComputerAccount
となっており、特別な事情がない場合はComputerAccount
を選択しましょう。
最後にOUを作成した場合は、その情報もパラメータとして設定します
1 |
$OuDistinguishedName = "OU=(あなたが設定したOU名),DC=~,DC=~" |
例えば、作成したOUの名前がAzureFiles
、Active Directoryのドメイン名がnifty.example.com
だった場合は、 $OuDistinguishedName="OU=AzureFiles,DC=nifty,DC=example,DC=com"
とします。
対象のサブスクリプションを選択
次のコマンドレットを実行します
1 |
Select-AzSubscription -SubscriptionId $SubscriptionId |
実行後、以下のような表示が出ていればOKです
ストレージアカウントをActive Directoryにドメイン参加させる
次のコマンドレットを実行します。
(ただし、OUを作成していない場合は、-OrganizationalUnitDistinguishedName $OuDistinguishedName
の部分を削除してから実行しましょう)
1 2 3 4 5 |
Join-AzStorageAccount -ResourceGroupName $ResourceGroupName` -StorageAccountName $StorageAccountName` -SamAccountName $SamAccountName` -DomainAccountType $DomainAccountType` -OrganizationalUnitDistinguishedName $OuDistinguishedName` |
※ 上記のコマンドでは、Active DirectoryにAzureのサービスアカウントを、コンピュータアカウントとして作成しドメイン参加させます。そのため、このコマンドを実行するユーザにアカウントを作成する権限がついていないと、実行に失敗します。
終わりに
Azure FilesのAD DS認証の有効化はAzureポータルからGUI操作で設定することができず、PowerShell上での構成が必要となります。
今回私は構成をしていく中で、権限の確認やモジュールのインストール、Azureへの接続など随所で躓いてしまいました。
私と同様に躓いている方がいらっしゃいましたら、本記事が問題解決の糸口になれば幸いです。
この記事を読んだ学生さんに向けて
私の学生時代の専攻は情報系ではなく、またAWSはかろうじて触ったことがあったもののAzureは全く触ったことがなかったため、試行錯誤の連続でした。
ですが、粘り強く取り組んだことで、この記事を執筆できる程度には理解を深めることができました。
この記事は25新卒リレーブログの最後の投稿となります。
最後の記事にしてはかなり専門的な内容となってしまいましたが、少しでもニフティに興味を持っていただけたら嬉しいです!