はじめに
オンプレファイルサーバから移行候補としてAzureFilesが代替案として上がるかと思います。しかし、AzureFilesはパブリックサービスのため、制限をかけなければパブリックIPさえ知っていれば外からでもアクセスできるため、セキュリティ面が気になるところかと思います。
そこで、本記事ではパブリックIPを閉じてExpress route経由でプライベートクラウドっぽく強制的にルーティングさせる手順をまとめます。
構築概要
- 社内DNSの条件付きフォワーダ―を活用
- AzureFilesに対してプライベートエンドポイントを設定
構築手順
Azureストレージセンターでの作業
ストレージアカウント作成
ストレージセンターでストレージアカウントを作成する。注意点は以下のとおりです。
- とりあえず検証される場合は、ファイル共有の請求は「従量課金制のファイル共有」が無難です。
- パブリックアクセスは無効化する
- ストレージアカウントキーへのアクセスは有効化する



クラシックファイル共有の作成
作成したストレージアカウントを選択し、データストレージ>クラシックファイル共有からクラシックファイルを作成する。検証なら従量課金を考慮し、ホットまたはクールでOKかと思います。
プライベートエンドポイントの作成
AzureFilesはPaaS扱いのようなので、契約しているプライベート環境からAzure内部からクラシックファイルに接続させるのに必須の設定です。
- 対象のストレージアカウントのセキュリティネットワーク>ネットワークを選択しプライベートエンドポイントを作成します。
- リソースタブの対象サブリソースを「file」を選択する
- 仮想ネットワークタブのプライベートIP構成はサブネットで空いていてかつ絶対に使わなそうなIPを設定する。名前はなんでもOKです。
- DNSタブのプライベートDNSゾーンと統合するは「はい」をチェックする。不安でしたがプライベートDNSゾーンが専用のが新規で作られるだけだったのでおそらくネットワーク上の問題ないと思われます。(少なくとも私の環境では問題は発生しませんでした。)
- プライベートエンドポイントを設定(ここがポイント)、サブネットに属する空いているIPアドレスを設定する
社内DNSサーバでの作業
条件付きフォワードを以下のとおり設定します。AzureDNSで先ほど設定したプライベートエンドポイントを名前解決させます。
DNSドメイン:file,core.windows.net
IPアドレス:168.63.129.16
このActiveDirectoryに条件付きフォワーダ―を保存し、次の方法でレプリケート:任意
Powershell実行端末での作業
AzureFilesをADに同期させます。ここで私はかなり時間を費やしました。
作業時の注意点
ActiveDirectoryに対して操作権限のあるアカウントでPowershell実行が必須です。またAzを使うのですがサービスプリンシパルではなくストレージアカウントに対して操作権限があるアカウント(つまりAzureポータル上の管理者アカウント)を使います
そして、「同一実行環境でAzとオンプレADを両方を操作できるマシンであること」が必須です。
事前作業
AzureHybridモジュールを実行環境の任意の場所にダウンロードします。
PowerShellコマンドの実行
- 接続コマンドを実行し、明示的にAzurePortalの認証画面を開きサインインを成功させる
Connect-AzAccount
- ダウンロードしたファイルをPowerShellで実行する
Import-Module "<yourDownloadDirectory>\AzFileHybrid.psd1"
- AzureFilesのリソースグループを指定して実行する
Join-AzStorageAccount `
-ResourceGroupName <yourResourceGroupName> `
-StorageAccountName <yourStorageAccountName> `
-DomainAccountType "ComputerAccount" `
-OrganizationalUnitDistinguishedName <yourOU>
成功すれば該当のOUにAzureFilesが登録されます。
クラシックファイル共有設定の変更
作成したクラシックファイルの概要にある「IDベースのアクセス:構成済み」をクリックします。<作成した|IDベースのアクセス>が開き、「手順2:共有レベルのアクセス許可の設定>設定の共有レベルのアクセス許可」を「認証されているすべてのユーザとグループについてアクセス許可を有効にする」を選択し、「該当するロールの選択」を「記憶域ファイルデータのSMB共有の共同作成者」を指定し保存します。
これで作成したクラシックファイルに追加したADのユーザおよびグループが以下のエクスプローラーのパスでアクセスできるようになります。
\\<yourStorageAcccount>.file.core.windows.net\<yourAzureFIles>
注意点
ACLの制御はどうやらAzureファイルに設定したグループではフルコントロールであっても制御できなさそうでした。
ACLの制御は管理者アカウントで以下のコマンドから制御してください。
net use \\<yourStorageAcccount>.file.core.windows.net\<yourAzureFIles>/user:Azure\<yourStorageAcccount> <アクセスキーKEY1>
※アクセスキーは対象のストレージアカウントの「セキュリティとネットワーク>アクセスキー」のKEY1を設定してください。
まとめ
以上で、『【Azure】AzureFilesをプライベートクラウドっぽく扱うための設定手順』でした。備忘録を込めており、実環境は私物にはないため漏れなどありましたらすみませんが、プライベートエンドポイントとAzureDNSの使い方がわかれば、インターネットには出さずにファイルサーバとして使うことはできるようです。

