このエントリは2020/02/26現在の情報に基づくものです。将来の機能追加や変更に伴い、記載内容との乖離が発生する可能性があります。
SMB共有しているAzure Filesのリソースに対し、Azure Active Directory Domain Services (Azure AD DS) とActive Directory (AD) でのIDベースの認証が可能になった。
詳細は以下のドキュメントに記載がある。2020/02/25現在、日本語版が英語版に追従できていない、もしくは日本語版が存在しない。おそらく近いうちに日本語翻訳版のドキュメントができるはず(知らんけど)。
Overview of Azure Files identity-based authentication support for SMB access
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-active-directory-overview
[AADDSを使った認証] Enable Azure Active Directory Domain Services authentication on Azure Files
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-active-directory-enable
[ADを使った認証] Enable Active Directory authentication over SMB for Azure file shares
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-active-directory-domain-services-enable#regional-availability
メリット
以下のドキュメントの通りで、オンプレミスで出来たことをAzure Filesででも実現できる点が大きなメリット。
Advantages of identity-based authentication
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-active-directory-overview#advantages-of-identity-based-authentication
ユースケース
メリットから分かる通り、主なユースケースは以下。
- オンプレミスのファイルサーバーの置き換え
- アプリケーションのLift & Shift
- オンプレミスのファイルサーバーのバックアップ
Common Use cases
https://docs.microsoft.com/en-us/azure/storage/files/storage-files-active-directory-overview#common-use-cases
利用可能なディレクトリ
- Azure AD Domain Services (GA)
- Active Directory (Preview)
注意点
利用できないリージョン(Active Directoryを使った認証のみ)
Active Directoryを使った認証は2020/02/26現在以下のリージョンでは利用できない。
- West US
- West US 2
- East US
- East US 2
- West Europe
- North Europe
サポートしないシナリオ
- コンピュータアカウントに対する認証はサポートしない(サービスログオンアカウントを使った認証は可能)
- AADDS認証ではAADのクラウドに参加したデバイスに対する認証はサポートしない
制限事項
- 一つのDirectoryのみ選択できる(複数のDirectoryで認証できない)
- Active Directoryによる認証はPreviewのため、SLAはない
試してみる
AADDSがデプロイ済みである条件下で、ストレージアカウントを作成する。このとき、Azure CLIであれば –enable-files-aadds true を付加する。
# Azure CLI
# Create a new storage account
az storage account create -n <storage-account-name> -g <resource-group-name> --location <location> --sku <SKU> --enable-files-aadds true
# Update a new storage account
az storage account update -n <storage-account-name> -g <resource-group-name> --enable-files-aadds true
上記コマンドを実行すると、AADDSを使ったファイル共有のIDベースのアクセスが有効化されていることをAzure Portalから確認できる。その下にも、ADのドメイン参加に関するリンクがあることがわかる。

あとはふつうにAzure Filesをストレージアカウント、ストレージアカウントキーを使って作成する。以下の例ではmyshareという共有を作成している。
STORAGEKEY=$(az storage account keys list \
-g <resource-group-name> \
--account-name $STORAGEACCT \
--query "[0].value" | tr -d '"')
az storage share create \
--account-name $STORAGEACCT \
--account-key $STORAGEKEY \
--name "myshare"
IDにアクセス権限を付与する場合、Azure CLIでは以下のようなコマンドを実行する。この例はビルトインロールを対象のIDに割り当てている。
#Assign the built-in role to the target identity: Storage File Data SMB Share Reader, Storage File Data SMB Share Contributor, Storage File Data SMB Share Elevated Contributor
az role assignment create --role "<role-name>" --assignee <user-principal-name> --scope "/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/fileServices/default/fileshares/<share-name>"
あとは通常のWindows Serverでのファイル共有と同様、NTFSの権限を付与する流れ。