Amazon FSx for Windows のTips

先日、構築方法を記事にしたAmazon FSx for Windows について、実際に運用していくにあたりデフォルト設定からチューニングすることがあると思いますので、役立ちそうな設定のTipsを紹介します。ご参考までにd（`・ω・’）

# 前提条件
- FSx は構築済み
　※構築が完了済みでない場合は[こちら](https://qiita.com/u-bayashi/items/fcace66d58030d77a471)を元に構築してみください
- FSxを操作するコントローラとして、FSxと同じVPCにEC2(Windows OS)をデプロイする
- FSxを結合したADの管理者ユーザのユーザID/PWを利用できる

# Tips①　"￥Share"配下以外に共有フォルダを作成する
FSxの共有フォルダは初期設定では“¥¥amznfsxxxxxxx.domain.internal¥share"のような形で￥shareから始まるフォルダ階層になっており、FSxの管理コンソール画面で「アタッチ」をクリックすると以下のようなマウントのコマンドが表示されます。
![デフォルトマウント.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/11b3eb99-5cc0-c753-cd2a-04b4fcc5dea1.png)


実際の運用では共有フォルダを￥Shareではなく、別の名前のフォルダ階層で作りたいということが多々あると思います。そんなときの設定です。
### 設定方法
①FSxと同一VPCにEC2をデプロイし、ドメイン参加させておく
②ファイル共有設定画面へ接続し、新しい共有の設定
③新しく設定した共有をネットワークマウント
④フォルダアクセス権を設定

まず①ですがWindows OSのEC2をデプロイします。ここは特に変わった設定はないので割愛します。
とりあえず、デプロイしたEC2へRDPでき、ドメイン参加出来ているようならOKです。

次に②ですが、EC2へRDPして、スタートボタンを右クリック-[コンピュータの管理]を選択-一番上の[コンピュータの管理]で右クリックして、[別のコンピュータへ接続（C）]を選択します。
![別のコンピュータへ接続.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/060eb461-aa8c-cd74-ad18-60e7ae6b0a95.png)

どのコンピュータへ接続するか入力する画面が出てくるので、[別のコンピュータ（A)]を選択し、FSxコンソール画面のDNS名の値を入力してください。
![DNS名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/9a63c368-9ddc-5894-a5f4-364900554a05.png)
　※Windows Remote Powershellエンドポイントの値ではありません！

しばらくしてこんな感じのメッセージが表示されますが、無視してOKです。
![エラーメッセージ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/1195df79-35aa-54c5-976e-9e075612f1c1.png)


共有設定画面が表示されたら、[共有フォルダ]下の[共有]を右クリックし、[新しい共有(S)]を選択してください。
![新しい共有設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/8761b786-03c5-e1f5-1990-ea7e889f8dcc.png)

あとはどの階層に新しい共有フォルダを作成するか選択していき、設定が完了すると以下の画面が表示されます。今回は新しい共有の名前を「共有フォルダ」にしています。
![修正2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/80093610-ba95-01e6-c4a0-568a9323e699.png)



共有設定の画面からも新しく作成した共有の「共有フォルダ」が確認できます。
![設定後画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/58775efc-21da-d9b0-9dd8-daee93cc176a.png)


これで②は完了なので、あとは③のネットワークマウントを行います。
最初にも書きましたがデフォルトではマウントコマンドが

    net use Z:¥¥amznfsxxxxxxx.domain.xxx¥share

 となっています。
このマウントコマンドの後ろを変えて

    net use Z:¥¥amznfsxxxxxxx.domain.xxx¥共有フォルダ

としてやれば、[共有フォルダ]から始まる共有フォルダ階層を設定することができます。

④最後にフォルダアクセス権を設定してあげましょう。
あたらしく作成した共有だと初期設定で権限があるのはFSxのAdministators だけでDomain Adminユーザにも権限がついていないので...
図ではとりあえずEveryoneの権限設定にしています。
![権限設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/0f5d5d22-8362-977f-b150-37181b73fe5e.png)



# Tips②　シャドウコピー機能の設定
シャドウコピー機能とはフォルダを右クリックして、プロパティの中にある「以前のバージョン」で、指定した日時の状態に復元できるようにする、あの機能のことです。
FSxでの設定はPowershellでの操作になります。
シャドウコピーの設定は[以前に記事](https://qiita.com/u-bayashi/items/fcace66d58030d77a471)にしたことがあり、設定方法はそれと同じですので割愛します。
リンク先記事の一番最後におまけのところでコマンド類を記載していますので、ご参考までに。



# Tips③　Windows ABE機能（access-based enumeration）の設定
ABE機能とはアクセス権のないフォルダを見えなくする設定です。例えばDomain admins グループにしかアクセス権を割り当ててないフォルダは一般ユーザには表示もされないので、存在自体を秘匿することができます。FSxではローカルフォルダ（共有設定されていないフォルダ）を作ることができないので、ABEを設定しないとフォルダの存在自体はユーザに見えてしまいます。コンプライアンスの都合とかで、どうして見せれないフォルダがあるときに便利な機能です。

シャドウーコピーのときと同じくGUIでは設定できないので、同一VPC/ドメイン上のEC2からPowershellで設定していきます。
### 設定方法
①FSxと同一VPCにEC2をデプロイし、ドメイン参加させておく
②EC2上でPowershell を管理者権限で起動させて、コマンド実行
③フォルダアクセス権を設定

最初の①は割愛しますので、②から進めていきます。

    #日本語版AMIのEC2からだとコマンドを受付けないため、セッションの言語を英語指定にします
    $usSession = New-PSSessionOption -Culture en-US -UICulture en-US

    #ビルトインのセキュリティグループ FSxRemoteAdminのユーザ権限でセッション開始します
    enter-pssession -ComputerName "Windows Remote PowerShell Endpoint" -SessionOption $usSession -ConfigurationName FsxRemoteAdmin

    #現状の共有設定を確認します。
    Get-FSxSmbShare

    #上記のコマンドで表示された共有フォルダに対してABE機能を有効にします
     今回は共有名[共有フォルダ]に対してABE機能を有効化します
    set-FSxSmbShare -name 共有フォルダ -FolderEnumerationMode AccessBased -Confirm:$false


コマンド実行後にアクセス権を付与して、実際の画面で確認してみましょう。
![ABE1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/0edc8911-0c42-1bd2-5b19-e6940cef3b9c.png)

![ABE2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/259fb3dd-a9e2-7de5-22d5-868f0ed4b1bd.png)




ちなみにコマンド実行した実際のPowerShellの画面はこんな感じです。
![powershell_スクショ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/943c840d-9eac-bc70-5a19-46fbdddf6284.png)

# ハマったところ
①GUIから操作するときにWindows Remote Powershell　エンドポイント でアクセスできない
　→別のブログなどで Windows Remote Powershell　エンドポイントを入力するという旨の記事もありますがAWS公式情報によるとFSx管理コンソールにあるDNS名を使います。　AWSサポートもそうおっしゃっております。※なぜか構築直後は接続できた記憶がありますが...

![DNS名.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/1ff875e5-481f-3b44-3a3f-d7868b75796b.png)

②[共有フォルダ]で右クリックするとフリーズする
![フリーズする.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655033/30ba7903-125f-445f-3d93-535df0d6840e.png)
　→原因は分かりません... ちゃんと下の[共有]で右クリックしましょう！

# 参考にしたページ
https://virtual-oji.hatenablog.com/entry/2020/09/04/123000
https://itnews.jp/?p=13200
https://docs.aws.amazon.com/ja_jp/fsx/latest/WindowsGuide/managing-file-shares.html#shared-folders-tool

# 最後に
マネージドサービスなので、仕様については結構ブラックボックスなところがあります。特にセキュリティについては開示してもらえないのでよく分からないんですよね～。
マネージドサービスだから「サーバOSにログインできない」＝「セキュリティソフト」のインストール不可なので、アンチウィルスの部分でもう少し安心感を与えてくれると私みたいな単純人間は顧客にホイホイ提案してしまいます（笑）。