Alibaba Cloud NASを使ってみる #2 SMB編

この記事は Alibaba Cloud の日本サイト の環境(ドキュメントやアカウント、そのアカウントでの検証結果)に基づいて記載しています。 日本サイトと国際サイトでは各プロダクトごとに提供機能が一部異なることがあります(そのほとんどは国際サイトの方が日本サイトよりも多機能になっている)。記事の内容は適宜最新化する予定です。

NASをSMBサーバとして構成し、Windows Serverからアクセスしてみます。 SMBサーバの利用シーンとしては以下でしょうか。

  • 複数のWebフロントエンドで設定ファイル、静的コンテンツの共有
  • Windowsサーバのバックアップ先としての利用
  • 複数ユーザからのいわゆるファイルサーバ利用

最初に結論

  • アクセス制限は接続元のIPアドレスまたはサブネットの指定のみ
  • ユーザやグループを指定しての制御はできません
  • もちろんActive Directoryとの連携も出来ません
  • 共有名は”myshare”固定
  • 上記3点からバックアップデータの保存先や少人数・小規模でのファイルサーバ利用、複数のフロントエンドサーバでのデータ共有などに向いている
  • 個人やグループで制限をかけたい企業、組織のファイルサーバは不向き
  • マルチゾーンでの冗長化には未対応(マルチゾーンにWebフロントエンドを配置しNASで共有したい場合は、各ゾーンにNASインスタンスを購入し、ECS上で同期する仕組みの構築が必要)

NASインスタンスの購入

コンソールのNASの管理画面から”ファイルシステムの作成”をクリックします。

プロトコルタイプにSMB(2.0以降)を選択します。 公式ドキュメントを見る限り3系は一部機能のサポートです。

プロトコルタイプ”SMB”のNASインスタンスが出来ました。

マウントポイントの追加

マウントポイント数が”0”です。マウントポイントを追加しましょう。 

必要な設定は、共有を提供するVPCの指定とVSwitchを指定し、権限グループでこの共有にアクセス出来る”ネットワーク”を指定します。 いわゆるACL、NTFSでいえばDACLの概念がありません。  つまり、NASのSMBの共有ドライブへのアクセス制限は接続元のIPアドレスないしサブネットの指定だけとなります。

マウントポイントを追加したので、”1”に変わりました。

次にマウントアドレスを確認します。 いわゆるUNCパスや共有名です。

マウントアドレスにカーソルを合わせると、親切にネットワークドライブのマウントのコマンドを例示してくれます。 共有名は”myshare”固定です。



NASインスタンスが立ち上がり、SMBでアクセスできる状態になりました。

アクセス制御の設定

コンソールのNASの管理画面の左メニューで権限グループをクリックします。すべて許可されている”VPCのデフォルトの権限グループ”が既定で存在していることがわかります。

試しに権限グループを作ってみましょう。”権限グループ作成”をクリックします。

権限グループで指定するのはリージョンとVPCと名前だけです。この画面では具体的な権限の設定は行えません。

作成した権限グループの”管理”をクリックします。

”ルールの追加”をクリックします。

ルールの追加画面では以下の設定が可能です。

  • 接続元のIP、セグメント (権限付与アドレス)
  • 読み取り/書き込み
  • ユーザー権限(root許可、root_squash、すべて不許可)※SMBでこの設定がどのように動作するかは要確認。 POSIX というかUNIX/Linux的なroot(UID=0)に相当する概念がNTFSには存在しないですし、仮にAdministratorがroot相当だとして、既定でroot=administratorなどとIDマッピングがされているかもこの時点では不明。
  • 優先順位

Windowsからのアクセス

アクセス制限はIPアドレス、サブネットでしか行えないこと、共有名はmyshare固定であることなどNAS特有の仕様がわかってきました。 実際に利用する場合利用者からはどのように見えるかテストします。

再度、UNCパスを確認しておきます。 マウントポイントのマウントアドレスにカーソルを合わせるとnet useコマンドの実行例が表示されます。

今回のテストでは” net use z: \\25432e480da-rel85.ap-northeast-1.nas.aliyuncs.com\myshare ”となっています。

同じVPC上にWindows Server 2016のECSインスタンスを1台追加します。(手順は省略)

まずはこのWindows ServerからPingで応答があることを確認します。

名前解決も正常に行われ、応答も1ms以下と問題なさそうですね。 また、名前解決したIPアドレスからは購入時にしたVPCのVSwtichに配備されたことがわかります。

次に、共有名(myshare)を意図的に削除したUNCパスでアクセスしてみます。

おや、失敗しますね。

共有名(myshare)を含めたUNCパスで再度アクセスしてみます。

アクセスできました。

試しにフォルダとファイルを作ってみます。 マルチバイト文字も問題なさそうです。

次にアクセス権を確認します。 共有タブやセキュリティタブが非表示です。 ”アクセス権の読み取り”権限を与えらていないようです。

DACLにおけるアクセス権の読み取りとは具体的に以下の2項目です。

Windows標準のicaclsコマンドでアクセス権を確認することにします。まあ、先ほどのGUIのテスト結果から、”アクセス権の読み取り”の権限を与えられていないことはわかっているのですが。

z:ドライブにマウントします。 エクスプローラで見えていた2つのフォルダ、2つのファイルは正常に認識できています。

icaclsを実行します。予想通りアクセス権を読み取る権限がありませんでした。

アクセス権を読み取る権限を与えられている場合の実行例も紹介します。AdministratorのプロファイルにあるVideosフォルダをicaclsの引数としています。AdminitratorとAdministrators、SYSTEMにFull Controllの権限が与えられていることがわかります。

参考までにWindows Serverでパケットキャプチャした結果です。 プロトコルはSMB2となっていますね。 Windows Server 2016なのでSMB3にNASが対応していればSMB3を選ばれるかと予想したのですが原因は不明です。そもそもWiresharkがSMB3をどう認識するかを未確認です。。。

非サポート機能

公式ドキュメントにある非サポート機能を紹介します。

パブリッククラウド環境と従来のエンタープライズ環境は、特にクライアントの多様性と複雑さの点で異なります。いくつかの SMB 機能がサポートされていません。これらのサポートされていない機能は、ほとんどのアプリケーションの動作に影響を与えません。次の機能が非サポートです。

・Linux クライアントによるアクセス
・NFS と SMB の両方から同じファイルシステムへのアクセス、および WAN 経由で SMB ファイルシステムへの直接アクセス
・ファイルとディレクトリの ACL (ファイルシステムの ACL はサポート)
・拡張ファイル属性および Oplock、ならびにリースベースのクライアントキャッシュ
・スパースファイル、ファイル圧縮、NIC ステータスクエリ、リパーズポイントその他の IOCTL/FSCTL 操作
・代替データストリーム
・SMB ダイレクト、SMB マルチチャネル、SMB ディレクトリリース、永続ファイルハンドルその他、SMB 3.0 以降のバージョンで提供されるプロトコル機能

https://jp.alibabacloud.com/help/doc-detail/67161.htm

以上