Amazon FSx for Windows File Server における DNS エイリアスと SPN 登録の挙動検証

記事タイトルとURLをコピーする

FSx for Windows File ServerのDNSエイリアス:SPN未登録でもアクセスできるが、Kerberos認証は使われない

はじめに

クラウドリライアビリティ2課 シノハラです。

Amazon FSx for Windows File Server で DNS エイリアスを使用する際、CNAME レコードの作成に加えて SPN(Service Principal Name)の登録が必要です。

本記事では、SPN未登録でもアクセスできてしまうが、実際にはNTLM認証にフォールバックしている挙動を検証し、Kerberos認証を有効化するための手順を整理します。

検証環境

  • AWS Managed Microsoft AD(Standard Edition)
    • ドメイン名: corp.example.com
  • FSx for Windows File Server
    • FSx NetBIOS 名: AMZNFSXABCD1234
  • Windows EC2インスタンス: ドメイン参加済み
  • DNSエイリアス: fileserver.corp.example.com

検証内容

  1. SPN未登録の状態でFSxにアクセスできるか
  2. どの認証方式が使われるか(NTLM / Kerberos)
  3. SPN登録後、認証方式はどう変わるか

検証結果

1. SPN未登録の状態でアクセステスト

CNAMEレコードのみ作成し、SPNは未登録の状態でアクセスしました。

# CNAMEレコード確認:実行コマンド
Resolve-DnsName fileserver.corp.example.com -Type CNAME

# 出力結果
Name                           Type   TTL   Section    NameHost
----                           ----   ---   -------    --------
fileserver.corp.example.com    CNAME  3600  Answer     amznfsxabcd1234.corp.example.com
# FSxにアクセス:実行コマンド
net use Z: \\fileserver.corp.example.com\share

# 出力結果
The command completed successfully.
# Kerberosチケット確認:実行コマンド
klist | Select-String -Pattern "fileserver|cifs"

# 出力結果
(何も表示されない)

結果:

  • ✅ アクセス成功
  • ❌ FSx用のKerberosチケットなし
  • 結論: NTLM認証にフォールバックしている

2. SPN登録後の動作確認

SPNを手動登録し、再度アクセスしました。

# SPN登録①:実行コマンド
setspn -S "HOST/fileserver.corp.example.com" AMZNFSXABCD1234

# 出力結果
Checking domain DC=corp,DC=example,DC=com

Registering ServicePrincipalNames for CN=AMZNFSXABCD1234,OU=FSx,OU=AWS Reserved,DC=corp,DC=example,DC=com
        HOST/fileserver.corp.example.com
Updated object

# SPN登録②:実行コマンド
setspn -S "HOST/fileserver" AMZNFSXABCD1234

# 出力結果
Checking domain DC=corp,DC=example,DC=com

Registering ServicePrincipalNames for CN=AMZNFSXABCD1234,OU=FSx,OU=AWS Reserved,DC=corp,DC=example,DC=com
        HOST/fileserver
Updated object
# 確認:実行コマンド
setspn -L AMZNFSXABCD1234 | Select-String "fileserver"

# 出力結果
HOST/fileserver
HOST/fileserver.corp.example.com
# ネットワークドライブの接続解除:実行コマンド
net use Z: /delete

# 出力結果
Z: was deleted successfully.

# 認証キャッシュ(Kerberosチケット)のクリア:実行コマンド
klist purge

# 出力結果
Current LogonId is 0:0x2a37dd
        Deleting all tickets:
        Ticket(s) purged!

# FSxに再アクセス:実行コマンド
net use Z: \\fileserver.corp.example.com\share

# 出力結果
The command completed successfully.
# Kerberosチケット確認
klist | Select-String -Pattern "fileserver|cifs" -Context 2,3

# 出力結果
  #1>   Client: Admin @ CORP.EXAMPLE.COM
>       Server: cifs/fileserver.corp.example.com @ CORP.EXAMPLE.COM
        KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96
        Ticket Flags 0x40a10000 -> forwardable renewable pre_authent name_canonicalize
        Start Time: 5/12/2026 8:36:26 (local)
  • ✅ Kerberosチケット発行
  • ✅ Kerberos認証が使われている
  • ✅ AES-256暗号化

比較表

状態 アクセス 認証方式 Kerberosチケット 暗号化
SPN未登録 ✅ 成功 NTLM ❌ なし MD4/MD5ベース
SPN登録後 ✅ 成功 Kerberos ✅ あり AES-256

NTLM認証とKerberos認証の違い

AWS公式の推奨

AWS公式ドキュメントより:

Amazon FSx との転送中に、Kerberos ベースの認証と暗号化を使用することをお勧めします。Kerberos は、ファイルシステムにアクセスするクライアントに対して最も安全な認証を提供します。

出典: DNS エイリアスを使用したデータへのアクセス - Amazon FSx for Windows File Server

(原文: "We recommend that you use Kerberos-based authentication and encryption in transit with Amazon FSx. Kerberos provides the most secure authentication for clients accessing your file system.")

検証で確認できた違い

項目 NTLM認証 Kerberos認証
暗号化 MD4/MD5ベース AES-256
チケット発行 なし あり(klistで確認可能)
AWS推奨 - ✅ 推奨

重要なポイント

「アクセスできる = 正しく設定されている」ではない

SPN未登録でもFSxにアクセスできてしまうため、以下のような誤解が生じやすいです:

  • ❌ 「アクセスできたから設定完了」
  • ❌ 「エラーが出ないから問題ない」
  • ❌ 「動いているから大丈夫」

実際には:

  • ⚠️ NTLM認証にフォールバックしている
  • ⚠️ AWS推奨のKerberos認証が使われていない

確認方法

Kerberos認証が使われているか確認する方法:

# 接続後、Kerberosチケットを確認
klist | Select-String -Pattern "cifs/エイリアス名"
  • チケットあり: ✅ Kerberos認証
  • チケットなし: ⚠️ NTLM認証(SPN未登録の可能性)

SPN登録手順

1. FSxコンピューターアカウント名を確認

Get-ADComputer -Filter "Name -like '*fsx*'" | Select-Object Name, DNSHostName

2. SPNを登録

# 変数設定
$FSxComputerName = "AMZNFSXABCD1234"  # 手順1で確認した名前
$AliasName = "fileserver.corp.example.com"  # DNSエイリアス名
$AliasShortName = $AliasName.Split('.')[0]  # 短縮名

# SPN登録
setspn -S "HOST/$AliasName" $FSxComputerName
setspn -S "HOST/$AliasShortName" $FSxComputerName

3. 確認

# SPN登録確認
setspn -L $FSxComputerName | Select-String "fileserver"

# Kerberos認証確認
net use Z: /delete
klist purge
net use Z: \\fileserver.corp.example.com\share
klist | Select-String -Pattern "cifs/fileserver"

まとめ

検証で分かったこと

  1. SPN未登録でもアクセス可能

    • しかし、NTLM認証にフォールバック
    • Kerberosチケットは発行されない
  2. SPN登録でKerberos認証が有効化

    • AES-256暗号化が使用される
    • AWS公式も推奨
  3. 「アクセスできる」だけでは不十分

    • Kerberosチケットの発行を確認する必要がある
    • 設定漏れに気づきにくい

推奨事項

DNSエイリアスを使用する場合は、以下を実施することを推奨します:

  1. CNAMEレコードを作成
  2. SPNを登録
  3. Kerberosチケットの発行を確認

チェックリスト

  • CNAMEレコードが作成されている
  • SPNが登録されている(setspn -Lで確認)
  • FSxにアクセスできる
  • Kerberosチケットが発行されているklistで確認)

最後のチェック項目が最も重要です。これを確認しないと、NTLM認証にフォールバックしていることに気づけません。

参考資料

篠原 佑弥

エンタープライズクラウド部 クラウドリライアビリティ課

1日10,000歩、1,000kcal消費が日課