[アップデート] Amazon FSx for NetApp ONTAPでSVM作成後にマネジメントコンソールからドメイン参加できるようになりました

予期せずSMBサーバーが必要になった時に
2023.08.21

マネジメントコンソールからもドメイン参加させたい

こんにちは、のんピ(@non____97)です。

皆さんはAmazon FSx for ONTAP(以降FSxN)でSVM作成後にマネジメントコンソールからドメイン参加したいなと思ったことはありますか? 私はあります。

以下記事の通り、今まではUpdateStorageVirtualMachine APIのRequest Parametersは以下のようにSelfManagedActiveDirectoryConfigurationで指摘できるのはサービスアカウントの名前やパスワード、DNSサーバーのIPアドレスで、ドメインの指定はできませんでした。

{
   "ActiveDirectoryConfiguration": { 
      "SelfManagedActiveDirectoryConfiguration": { 
         "DnsIps": [ "string" ],
         "Password": "string",
         "UserName": "string"
      }
   },
   "ClientRequestToken": "string",
   "StorageVirtualMachineId": "string",
   "SvmAdminPassword": "string"
}

2023/6ごろに、こちらのAPIが更新されてドメイン参加時に必要なパラメーターを指定できるようになりました。

{
   "ActiveDirectoryConfiguration": { 
      "NetBiosName": "string",
      "SelfManagedActiveDirectoryConfiguration": { 
         "DnsIps": [ "string" ],
         "DomainName": "string",
         "FileSystemAdministratorsGroup": "string",
         "OrganizationalUnitDistinguishedName": "string",
         "Password": "string",
         "UserName": "string"
      }
   },
   "ClientRequestToken": "string",
   "StorageVirtualMachineId": "string",
   "SvmAdminPassword": "string"
}

実際に試してみたので紹介します。

いきなりまとめ

  1. SVM作成後にマネジメントコンソールからドメイン参加できるようになった
  2. 現在もドメイン参加しているかは不明
    • ONTAP CLIからドメイン離脱しても反映されない
  3. ドメイン参加しているSVMをマネジメントコンソール上から別ドメインやワークグループに参加させることはできない
  4. 既にSVM上にSMBサーバーが存在している場合はドメイン参加できない
    • SMBサーバーと同じ名前を指定してもドメイン参加できない
    • ワークグループのSMBサーバーを後からドメイン参加させる場合はONTAP CLIを使おう

やってみた

マネジメントコンソールからドメイン参加させる

早速やってみましょう。

svmというSVMを用意しました。こちらのSVMにはSMBサーバーは存在していません。

::> vserver cifs show
This table is currently empty.

マネジメントコンソールからActive Directory に参加/更新をクリックします。

デフォルトのSVM

SMBサーバーのNetBIOS名やドメイン名などを指定します。

SVM を Active Directory に参加させる

すると、1分後にはドメイン参加が完了していました。

::> cifs show
            Server          Status    Domain/Workgroup Authentication
Vserver     Name            Admin     Name             Style
----------- --------------- --------- ---------------- --------------
svm         SMB             up        CORP             domain

::> cifs show -instance

                                          Vserver: svm
                         CIFS Server NetBIOS Name: SMB
                    NetBIOS Domain/Workgroup Name: CORP
                      Fully Qualified Domain Name: CORP.NON-97.NET
                              Organizational Unit: OU=FSxForONTAP,DC=corp,DC=non-97,DC=net
Default Site Used by LIFs Without Site Membership:
                                   Workgroup Name: -
                             Authentication Style: domain
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: -

マネジメントコンソール上からもドメイン参加できたことが確認できます。

ドメイン参加後のSVM

コンピューターオブジェクトも作成されています。

コンピューターオブジェクトが作成されていることを確認

また、DNSレコードも登録されていました。

DNSレコードも登録されている

ONTAP CLIからもDNS周りの設定を確認します。

::> dns show
                                                    Name
Vserver         Domains                             Servers
--------------- ----------------------------------- ----------------
svm             corp.non-97.net                     10.0.0.139


::> dns show -instance

                        Vserver: svm
                        Domains: corp.non-97.net
                   Name Servers: 10.0.0.139
                 Timeout (secs): 2
               Maximum Attempts: 1

::> dns dynamic-update show
Vserver         Is-Enabled Use-Secure Vserver FQDN             TTL
--------------- ---------- ---------- ------------------------ -------
svm             true       true       smb.corp.non-97.net      24h

FsxId0a3fea624cfa58381::> dns dynamic-update show -instance

                                Vserver: svm
         Is Dynamic DNS Update Enabled?: true
             Use Secure Dynamic Update?: true
Vserver FQDN to Be Used for DNS Updates: smb.corp.non-97.net

動的更新が有効になっていることが確認できました。

ドメイン参加時にどのような処理が裏側で行われているか確認するために、管理アクティビティの監査ログを確認します。

::> security audit log show -fields timestamp, node, application, vserver, username, input, state, message -application http -state Error|Success -timestamp >"Sat Aug 20 21:00:00 2023"
timestamp                  node                      application vserver                username          input                                                                   state   message
-------------------------- ------------------------- ----------- ---------------------- ----------------- ----------------------------------------------------------------------- ------- -------
"Sun Aug 20 21:19:20 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane GET /api/private/cli/vserver/cifs/check/?fields=status%2Cstatus_details Success -
"Sun Aug 20 21:19:20 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane GET /api/private/cli/vserver/cifs/check/?fields=status%2Cstatus_details Success -
"Sun Aug 20 21:41:14 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane POST /api/name-services/dns/ : {"domains":["corp.non-97.net"],"servers":["10.0.0.139"],"svm":{"uuid":"01acc9e5-3ee3-11ee-98e4-bd127086968e"}}
                                                                                                                                                                                  Success -
"Sun Aug 20 21:41:15 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane POST /api/protocols/cifs/services/ : {"svm":{"uuid":"01acc9e5-3ee3-11ee-98e4-bd127086968e"},"name":"smb","enabled":true,"ad_domain":{"fqdn":"corp.non-97.net","user":"FSxServiceAccount","password":***,"organizational_unit":"OU=FSxForONTAP,DC=corp,DC=non-97,DC=net"}}
                                                                                                                                                                                  Success -
"Sun Aug 20 21:41:25 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane PATCH /api/private/cli/vserver/services/name-service/dns/dynamic-update/?vserver=svm : {"vserver_fqdn":"smb.corp.non-97.net","use_secure":true,"is_enabled":true}
                                                                                                                                                                                  Success -
"Sun Aug 20 21:41:26 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane POST /api/private/cli/vserver/services/name-service/dns/dynamic-update/record/add : {"vserver":"svm","lif":"nfs_smb_management_1"}
                                                                                                                                                                                  Success -
"Sun Aug 20 21:41:26 2023" FsxId0a3fea624cfa58381-01 http        FsxId0a3fea624cfa58381 fsx-control-plane POST /api/private/cli/vserver/cifs/users-and-groups/local-group/add-members : {"vserver":"svm","group_name":"BUILTIN\\Administrators","member_names":["corp.non-97.net\\FSxAdminGroup"]}
                                                                                                                                                                                  Success -
.
.
(以下略)
.
.

以下の処理が行われていることが分かりますね。

  1. DNSの設定
  2. SMBサーバーの作成
  3. DNSの動的更新設定
  4. ローカルグループの追加

SMBサーバーをドメインから離脱させた場合にマネジメントコンソールに反映されるか

再度マネジメントコンソールからActive Directory に参加/更新をクリックすると、NetBIOS名やドメイン名の指定ができず、別ドメインやワークグループに参加させることはできなさそうです。

コンソールからドメインから離脱することはできない

SMBサーバーをドメインから離脱させた場合はマネジメントコンソールに反映されるか確認してみましょう。

SMBサーバーをワークグループに参加させます。

::> cifs modify -vserver svm -cifs-server smb -workgroup workgroup -status-admin down

Warning: To enter workgroup mode, all domain-based features must be disabled and their configuration removed
         automatically by the system, including continuously-available shares and shadow copies. However,
         domain-configured share ACLs such as "CORP.NON-97.NET\userName" will not work properly, but cannot be removed
         by Data ONTAP. Remove these share ACLs as soon as possible using external tools after the command completes.
Do you want to continue? {y|n}: y

Successfully queued CIFS Server Modify job [id: 59] for CIFS server "SMB". To view the status of the job, use the "job
show -id <jobid>" command.

::> cifs show -instance

                                          Vserver: svm
                         CIFS Server NetBIOS Name: SMB
                    NetBIOS Domain/Workgroup Name: WORKGROUP
                      Fully Qualified Domain Name: -
                              Organizational Unit: -
Default Site Used by LIFs Without Site Membership: -
                                   Workgroup Name: WORKGROUP
                             Authentication Style: workgroup
                CIFS Server Administrative Status: up
                          CIFS Server Description:
                          List of NetBIOS Aliases: -

このまま2時間以上待ちましたがマネジメントコンソール上には反映されませんでした。AWS CLIからの結果も同じく変わりありませんでした。

ということで、マネジメントコンソール上でドメイン参加しているように表示されているからといって、現在もドメイン参加しているかは不明です。ONTAP CLIから確認するようにしましょう。

既にSMBサーバーがある状態でドメイン参加させる

既にSMBサーバーが存在する状態でドメイン参加しようとするとどのような挙動をするのでしょうか。

先ほどの管理アクティビティの監査ログの様子からだと、SMBサーバーを作成する際にドメイン参加をするためのパラメーターを渡しいました。内部的にcifs modifyの様な動作が走るのか気になります。

svm2というSVMにsmb2というSMBサーバーを作成しました。

::> vserver show
                               Admin      Operational Root
Vserver     Type    Subtype    State      State       Volume     Aggregate
----------- ------- ---------- ---------- ----------- ---------- ----------
svm         data    default    running    running     svm_root   aggr1
svm2        data    default    running    running     svm2_root  aggr1
2 entries were displayed.

::> cifs create -vserver svm2 -cifs-server smb2 -workgroup workgroup

Notice: SMB1 protocol version is obsolete and considered insecure. Therefore it is deprecated and disabled on this CIFS server. Support for SMB1 might be removed in a future
release. If required, use the (privilege: advanced) "vserver cifs options modify -vserver svm2 -smb1-enabled true" to enable it.

::> cifs show
            Server          Status    Domain/Workgroup Authentication
Vserver     Name            Admin     Name             Style
----------- --------------- --------- ---------------- --------------
svm         SMB             up        WORKGROUP        workgroup
svm2        SMB2            up        WORKGROUP        workgroup

smb2というNetBIOS名でマネジメントコンソール上からドメイン参加させます。

SMB2の作成

すると、`Amazon FSx is unable to establish a connection to your Active Directory. This is because the SVM is already joined to a domain. To join this SVM to a different domain, you can use the ONTAP CLI or REST API to unjoin this SVM from Active Directory. Then reattempt to join your SVM to your Active Directory. For more information, please see the Amazon FSx user guide: https://docs.aws.amazon.com/fsx/latest/ONTAPGuide/troubleshooting.html`と既にドメイン参加しているというメッセージが出力されました。

Amazon FSx is unable to establish a connection to your Active Directory.

ということで、メッセージにも書いてあるとおり別ドメインに参加させたり、既にワークグループのSMBサーバーを後からドメインに参加させたりする場合はONTAP CLIを使うことになりそうですね。

ちなみにsmb3という存在しないSMBサーバーを指定した場合も同様のメッセージが出力されました。1つのSVMには1つのSMBサーバーしか作成できないので当然です。

別NetBIOS名にしても変わらず

予期せずSMBサーバーが必要になった時に

Amazon FSx for NetApp ONTAPでSVM作成後にマネジメントコンソールからドメイン参加できるようになったアップデートを紹介しました。

既存のSMBサーバーはONTAP CLIからでなければドメイン参加できないところから、マネジメントコンソールからSVM作成後にドメイン参加するシチュエーションとしては予期せずSMBサーバーが必要になった時や、仮でSVMを作成した場面なのかなと考えます。

ONTAP CLIを使うことのハードルが高いと感じられる方が多いと思うので、この調子でマネジメントコンソールから操作できる項目が増えると嬉しいです。

この記事が誰かの助けになれば幸いです。

以上、AWS事業本部 コンサルティング部の のんピ(@non____97)でした!