Azure Managed Service Column <Azure運用コラム>

Azure Files の紹介

Category: 実践編

2020.10.29

Azure Files とは

Azure ストレージが提供する2つ目のサービス、Azure Files を紹介します。

これは、ファイル共有サービスです。ストレージアカウントを SMB プロトコル、もしくは、NFS プロトコルにてサーバにマウントし、共有領域として利用することができます。他社クラウドでも、オブジェクトストレージをサーバにマウントすることは可能なのですが、サーバ側にマウント用プログラムを導入する必要があります。あるいは、オブジェクトストレージではなく、別のストレージサービスとして提供されていたりします。Azure Files は、ストレージアカウントに統合されたサービスとして SMB と NFS を利用できる、というところが大きな特徴です。

サーバにマウントしてみる

さっそく、ストレージアカウントをサーバにマウントしてみたいと思います。VNET 上に Windows サーバを1台用意し、そこにストレージアカウントをマウントします。ストレージアカウントは前回のコラムで作成したものを流用します。

ネットワーク的なアクセス制限についてですが、マウントしたサーバからのみアクセス可能とし、外部からのアクセスは全て遮断しましょう。ストレージアカウントの左メニュー [ファイアウォールと仮想ネットワーク] にて、以下の設定となっていることを確認してください。この設定では、”RworksBlogVnet” という VNET がアクセス元として許可され、この VNET 内からはサービスエンドポイントを経由してプライベートアクセスが行われます。(ただし、以降の操作を Azure ポータル上で行うには、ポータルにアクセスする IP アドレスも許可する必要があります。)

アクセス制限の調整が完了したら、左メニュー [ファイル共有] から共有フォルダに相当するものを作成しましょう。[+ファイル共有] をクリックして、名前とクォータを入力します。クォータはあくまでユーザが指定する上限値であり、実体はストレージアカウントですので、総容量といったものはありません。

作成したファイル共有をクリックすると、次のページに [接続] というボタンがあります。ここに、OS ごとのコマンドが記載されていますので、これをコピーしておきます。なお、Azure Files にアクセスする際の認証には、ストレージアカウントのアクセスキーが使われます。

サーバにログインして、Powershell のプロンプトから先程のコマンドを実行します。以下の通り、マウントされました。Explorer に表示されるドライブのディスク容量は、Azure Files のクォータに一致しています。

(省略)
CMDKEY: Credential added successfully.

Name           Used (GB)     Free (GB) Provider      Root                                               CurrentLocation
----           ---------     --------- --------      ----                                               ---------------
Z                   0.00        100.00 FileSystem    \\rworksblogstorage.file.core.wi...

ID ベースの認証

先程の例ではストレージアカウントのアクセスキーを利用して認証を行いました。しかし、ファイルサーバの共有フォルダであれば、ユーザごとに認証を行うのが通常です。Azure Files では、以下の2つのユーザ認証をサポートしています。

  • Active Directory Domain Services (AD DS)
  • Azure Active Directory Domain Services (Azure AD DS)

AD DS というのは、オンプレ含めた Windows 環境にてよく利用されているお馴染みの Active Directory のことです。一方で、Azure AD DS とは、Azure が提供する AD DS のマネージドサービスのことです。

よく似た名前で、かつ、Azure を利用している方であれば誰でも知っている Azure AD というサービスもありますが、これは AD DS や Azure AD DS とは全く別のサービスです。 AD DS や Azure AD DS が Windows OS のユーザを管理するサービスであるのに対し、Azure AD は Azure (もしくは、Microsoft365) のユーザを管理するサービスですので、混同されないようにご注意ください。

次の章では、オンプレ環境にて Azure Files を使うようなケースを想定して、AD DS による認証を試してみます。

Active Directory Domain Services (AD DS) による認証

以下のような構成で検証します。AD DS (Active Directory) を利用しているようなオンプレ環境から Azure Files にアクセスするケースを想定していますが、オンプレ環境の用意が難しかったため、Azure の VM で代替としました。青枠の VNET 部分はオンプレ環境に置き換えても同じ構成になります。

つい先程、AD DS Azure AD を混同しないでくださいとお伝えしたばかりですが、ここでは AD DS と Azure AD を同期させます。(ますますややこしいですね。)

AD DS ドメインに参加しているサーバ上に、Azure AD Connect というツールをインストールすることで、AD DS のユーザを Azure AD に作成することができます。基本的には一方向同期であることに注意してください。AD DS は Windows OS のユーザ管理、Azure AD は Azure (もしくは、Microsoft365) のユーザ管理と、管理対象であるユーザが全く別物ですが、ユーザ同期をすることで同じアカウントとパスワードで双方のシステムを利用できるというわけです。今回のケースで言うと、双方のシステムとは「Windows」と「Azure 上にある Azure Files」ということになります。

上記構成のそれぞれのリソースは作成済みであるとし、なおかつ、AD DS 環境も用意されているものとします。最終的に、AD DS のメンバサーバ (今回は Azure AD Connect サーバで兼用) から AD DS のアカウントにて Azure Files にアクセスすることが目的です。

AD DS と Azure AD とを同期する

AD DS ドメインに参加しているサーバに Azure AD Connect をインストールして、AD DS のユーザ情報を Azure AD に同期します。Azure AD Connect の詳しい設定方法は省きますが、https://docs.microsoft.com/ja-jp/azure/active-directory/hybrid/how-to-connect-install-expressにある簡易インストールで構いません。ウィザードに従い、Azure AD へのアクセスと AD DS へのアクセスを行うだけです。

初回の同期が完了したあと、[Azure Active Directory] サービスを開いて、[ユーザ] を見てみてください。以下のように、AD DS のユーザ “azurefilesuser” が Azure AD に作成されています。もちろん、パスワードも同じです。

Azure AD ユーザに Azure ロールを割り当てる

AD DS から Azure AD にユーザを同期しただけでは何もできません。ロール (権限) を割り当ててあげる必要があります。

[サブスクリプション] サービスを開いて、Azure Files が存在するサブスクリプションをクリックします。左メニュー [アクセス制御 (IAM)] をクリックし、[+追加] ボタンからロールの割り当てを行います。SMB 共有に関するロールが強さごとに3パターン用意されていますので、適切なものを選んでください。なお、ここで選択するロールとは、あくまで「ファイル共有 (共有フォルダ) へのアクセス権限」であり、ファイル共有配下のフォルダやファイルに対しての細かなアクセス制御は、OS 側の Windows ACL にて行うことができます。

ストレージアカウントを AD DS に参加させる

次に、ストレージアカウントをコンピュータアカウントとして AD DS へ参加させます。これにより、そのストレージアカウント (Azure Files) はAD DS 認証が有効となります。なお、本作業はドメインコントローラ上で Powershell コマンドを実行しなければなりません。公式ドキュメントに従い、AzFilesHybrid モジュールをインストールしたあと、順番にコマンドを実行していきます。最終的に、Join-AzStorageAccountForAuth を実行するとコンピュータアカウントが登録されます。

PS C:\Users\rworksblog\Desktop\AzFilesHybrid> Join-AzStorageAccountForAuth -ResourceGroupName rworks-blog -Name rworksblogfiles

StorageAccountName ResourceGroupName PrimaryLocation SkuName      Kind      AccessTier CreationTime          Provisioni
                                                                                                             ngState
------------------ ----------------- --------------- -------      ----      ---------- ------------          ----------
rworksblogfiles    rworks-blog       japaneast       Standard_LRS StorageV2 Hot        10/26/2020 7:34:50 PM Succeeded

Azure Files にアクセスする

ここまででやっと準備が完了しました。先程、Azure ロールを割り当てた AD DS ユーザにて、ドメインに参加しているサーバにログオンしてください。その後、ファイルサーバにアクセスするときと同じように、エクスプローラからアクセスします。資格認証のダイアログが出ることなく、Azure Files の共有領域にアクセスすることができるはずです。

実際にファイルサーバとして運用する際は Windows ACL によってフォルダごと、ファイルごとに細かなアクセス制御をする必要があります。Windows ACL の設定をする場合は、ストレージアカウントのアクセスキーを使ってマウントしてください。マウントしたあと、ファイルサーバと同じようにエクスプローラから Windows ACL の設定を行うことが可能です。管理者はアクセスキーを使って Windows ACL の設定を行い、ユーザは AD DS 認証によって Azure Files にアクセスする、といった運用となります。

まとめ

ストレージアカウントをサーバにマウントして、SMB サーバや NFS サーバのように使えることを紹介しました。また、AD DS と連携させることで、ファイルサーバのように使えることもお見せしました。もちろん、できること、できないことがありますので、導入の際には十分な検討が必要ですが、Azure 環境だけではなくオンプレ環境をご利用の方も Azure ストレージ利用を選択肢の1つに入れていただくとよろしいかと思います。

Tag: Azure Files

関連記事

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php