🐙

Storage Account(Blob)のNFS・SFTP利用の確認

2024/01/07に公開

はじめに

Storage Account(Blob)の設計を行っていた時に、操作方法がAzure CLI・Portal・Storage Explorerしかないと思っていたが、SFTPやNFSも利用できるということを知ったため試した。
勉強不足…
ドキュメント

試してみた

リソースの作成手順は割愛する。階層型名前空間と呼ばれる、Data Lake Storageに付随する機能を有効化する必要がある。(別サービスが登場するので、ここでてっきりBlobではサポートされていないと思った理由。)

SFTP

  • 接続用のSFTPユーザを作成する。
    SFTPユーザ作成
  • 作成後は「接続文字列」に従ってSFTPログインをする。
    Powershell_SFTPログイン

WinSCPを使う場合は、接続文字列が以下のように変化する。

ホスト名 ユーザ名 パスワード
「接続文字列」の@以下 「接続文字列」の@手前 変化なし

ホーム(ランディング)ディレクトリが指定できる。
例えば、コンテナ内のディレクトリをホームディレクトリとしたい場合には、<コンテナ名>/<ディレクトリ名>でSFTPログインユーザを作成できる。

参考手順

https://learn.microsoft.com/ja-jp/azure/storage/blobs/secure-file-transfer-protocol-support-how-to?tabs=azure-portal

NFS

Linux で実施した。

  • nfs-utilsのインストール
  • マウント(試すだけなら-tは不要)
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name>  /nfsdata

コンテナのACLに合わせて、マウント時の権限も反映されるようである。(コンテナ名→右の三点リーダーからACL設定が可能)
ストレージアカウントACL
例えば全てのチェックを外した状態にすると、サーバでマウントしたときには、権限表示は「d---------」になる。

参考手順

https://learn.microsoft.com/ja-jp/azure/storage/blobs/network-file-system-protocol-support

サポートされている機能の差異

いわゆる通常のBlobとの機能差異はある。例えば、Blobのバージョン管理はサポートされていない。
https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-feature-support-in-storage-accounts

他の人の試してみたドキュメント

https://blog.nextscape.net/archives/2021/12/06/azure-blob-sftp

Discussion