Azure Files SMBアクセスのIDベース認証設定手順

 このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、Azure CLI、Terraformなど)まで、分かりやすく解説します。

この記事では、Azure FilesへのSMBアクセスにおけるIDベース認証の設定について、リスクと対策を解説します。

ポリシーの説明

Azure FilesのIDベース認証は、ユーザーがActive Directory(AD)またはAzure AD/Microsoft Entra IDの資格情報を使用してファイル共有にアクセスできるようにする機能です。これにより、ストレージアカウントキーを使用する代わりに、Kerberosベースの認証を通じてSMBアクセスが可能になり、既存のIDプロバイダーとの統合、Windows ACL(アクセス制御リスト)を使用した詳細なアクセス制御、シングルサインオン(SSO)が実現できます。

IDベース認証の主要な利点

  • ゼロトラストセキュリティ: すべてのアクセスをIDベースで検証
  • 詳細な権限管理: ファイル/フォルダレベルでNTFS権限を設定
  • 監査証跡: ユーザーレベルでのアクセスログ記録
  • パスワードレス認証: Windows統合認証によるシームレスなアクセス
  • 条件付きアクセス: Entra IDの条件付きアクセスポリシーを適用可能

修復方法

コンソールでの修復手順

Azure コンソールを使用して、Azure FilesのSMBアクセスにIDベース認証を設定します。

前提条件

  1. 必要な権限
    • Azure サブスクリプション: Contributor以上
    • Entra ID: Global Administrator または Cloud Application Administrator
    • オンプレミスAD: Domain Admins(AD DS統合の場合)
  2. ネットワーク要件
    • SMBポート445が開放されていること
    • DNS解決が正しく構成されていること
    • Kerberosポート88(TCP/UDP)が利用可能
  3. クライアント要件
    • Windows 10 バージョン 1809以降
    • Windows Server 2019以降
    • macOS Big Sur以降(限定サポート)

方法1: Microsoft Entra ID Kerberosを使用(ハイブリッドIDに推奨)

  1. ストレージアカウントでMicrosoft Entra ID Kerberosを有効化
    • Azure Portal (https://portal.azure.com) にログイン
    • 対象のストレージアカウントに移動
    • 左メニューから「データストレージ」→「ファイル共有」を選択
    • 上部メニューの「Active Directory」をクリック
    • 「設定の構成」をクリック
    • 認証方法の選択:
      • 「Microsoft Entra Kerberos」を選択
      • 「Microsoft Entra ID でのKerberos認証を有効にする」にチェック
    • 構成の確認:
      • ドメイン名: 自動的に設定される
      • ドメインGUID: 自動的に生成される
    • 「保存」をクリックして設定を適用
  2. ストレージアカウントの共有レベル権限を構成
    • ストレージアカウントの「アクセス制御 (IAM)」に移動
    • 「+ 追加」→「ロールの割り当てを追加」をクリック
    • 利用可能なロール:
      • Storage File Data SMB Share Elevated Contributor: フルコントロール(管理者用)
      • Storage File Data SMB Share Contributor: 読み取り/書き込み/削除
      • Storage File Data SMB Share Reader: 読み取り専用
    • 割り当て手順:
      • 適切なロールを選択して「次へ」
      • アクセスの割り当て先: 「ユーザー、グループ、またはサービスプリンシパル」
      • 「+ メンバーを選択する」をクリック
      • Entra IDグループまたはユーザーを検索して選択
      • 「レビューと割り当て」をクリック
  3. クライアントマシンの構成

    A. グループポリシー(ドメイン参加済みマシン):

    グループポリシー管理エディターを開く:
    1. コンピューターの構成 → 管理用テンプレート → システム → Kerberos
    2. 「CloudKerberosTicketRetrievalを許可する」を有効化
    3. gpupdate /force を実行して即座に適用
    

     

    B. Intune(クラウド管理デバイス):

    • Microsoft Endpoint Manager admin centerにログイン
    • 「デバイス」→「構成プロファイル」→「+ プロファイルの作成」
    • プラットフォーム: Windows 10以降
    • プロファイルの種類: 設定カタログ
    • 設定を追加:
      Administrative Templates > System > Kerberos
      Enable CloudKerberosTicketRetrievalEnabled = Enabled
      

       

    C. レジストリ(手動設定):

    reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1 /f
    

     

  4. ファイル共有のマウントと確認

    マウントコマンド(資格情報不要):

    # ドライブレターでマウント
    net use Z: \\storageaccount.file.core.windows.net\sharename /persistent:yes
    
    # マウント状態の確認
    net use
    
    # Kerberos チケットの確認
    klist
    

     

    トラブルシューティング:

    # DNS解決の確認
    nslookup storageaccount.file.core.windows.net
    
    # ポート445の接続確認
    Test-NetConnection -ComputerName storageaccount.file.core.windows.net -Port 445
    
    # Kerberosチケットのリフレッシュ
    klist purge
    klist get krbtgt
    

     

方法2: オンプレミスActive Directory Domain Services (AD DS)を使用

  1. AzFilesHybridモジュールのセットアップ

    モジュールのダウンロードとインストール:

    # 管理者権限でPowerShellを起動
    
    # TLS 1.2を有効化
    [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
    
    # AzFilesHybridモジュールをダウンロード
    Invoke-WebRequest -Uri <https://github.com/Azure-Samples/azure-files-samples/releases/latest/download/AzFilesHybrid.zip> -OutFile AzFilesHybrid.zip
    
    # 展開
    Expand-Archive -Path .\AzFilesHybrid.zip -DestinationPath .\AzFilesHybrid
    
    # モジュールのインポート
    cd .\AzFilesHybrid
    .\CopyToPSPath.ps1
    Import-Module -Name AzFilesHybrid -Force
    

     

  2. ストレージアカウントをADドメインに参加
    # Azureに接続
    Connect-AzAccount
    Select-AzSubscription -SubscriptionId "<your-subscription-id>"
    
    # ドメイン情報の確認
    $DomainName = (Get-ADDomain).DNSRoot
    $DomainGuid = (Get-ADDomain).ObjectGUID.ToString()
    $DomainSid = (Get-ADDomain).DomainSID.Value
    $ForestName = (Get-ADForest).Name
    $NetBiosDomainName = (Get-ADDomain).NetBIOSName
    
    # ストレージアカウントをADに参加
    Join-AzStorageAccountForAuth `
        -ResourceGroupName "your-rg" `
        -StorageAccountName "yourstorageaccount" `
        -DomainAccountType "ComputerAccount" `
        -OrganizationalUnitDistinguishedName "OU=AzureStorage,OU=Servers,DC=domain,DC=com" `
        -EncryptionType "AES256,RC4"
    
    # 設定の確認
    $storageAccount = Get-AzStorageAccount -ResourceGroupName "your-rg" -Name "yourstorageaccount"
    $storageAccount.AzureFilesIdentityBasedAuth
    
    # ADコンピューターアカウントの確認
    Get-ADComputer -Filter {Name -like "yourstorageaccount*"}
    

     

  3. 共有レベルとNTFS権限の構成

    A. Azure Portalで共有レベル権限を設定:

    • ストレージアカウント → ファイル共有 → 対象の共有を選択
    • 「アクセス制御 (IAM)」→「+ 追加」→「ロールの割り当てを追加」
    • ADグループにロールを割り当て:
      • Domain\FileAdmins → Storage File Data SMB Share Elevated Contributor
      • Domain\FileUsers → Storage File Data SMB Share Contributor
      • Domain\FileReaders → Storage File Data SMB Share Reader
  4. NTFS権限の詳細設定

    初期マウント(管理者権限):

    # ストレージアカウントキーを取得(初回のみ)
    $storageKey = (Get-AzStorageAccountKey -ResourceGroupName "your-rg" -Name "yourstorageaccount")[0].Value
    
    # 管理者権限でマウント
    $secureKey = ConvertTo-SecureString -String $storageKey -AsPlainText -Force
    $credential = New-Object System.Management.Automation.PSCredential -ArgumentList "Azure\yourstorageaccount", $secureKey
    New-PSDrive -Name X -PSProvider FileSystem -Root "\\yourstorageaccount.file.core.windows.net\sharename" -Credential $credential -Persist
    

     

    NTFS権限の設定:

    # フォルダ構造の作成
    New-Item -Path "X:\Departments" -ItemType Directory
    New-Item -Path "X:\Departments\Finance" -ItemType Directory
    New-Item -Path "X:\Departments\HR" -ItemType Directory
    
    # NTFS権限の設定例
    # Finance部門のみアクセス可能
    icacls "X:\Departments\Finance" /inheritance:r
    icacls "X:\Departments\Finance" /grant "Domain\Finance-Users:(OI)(CI)M"
    icacls "X:\Departments\Finance" /grant "Domain\Finance-Admins:(OI)(CI)F"
    icacls "X:\Departments\Finance" /grant "Domain\Domain Admins:(OI)(CI)F"
    
    # HR部門のみアクセス可能
    icacls "X:\Departments\HR" /inheritance:r
    icacls "X:\Departments\HR" /grant "Domain\HR-Users:(OI)(CI)M"
    icacls "X:\Departments\HR" /grant "Domain\HR-Admins:(OI)(CI)F"
    icacls "X:\Departments\HR" /grant "Domain\Domain Admins:(OI)(CI)F"
    
    # 権限の確認
    icacls "X:\Departments\Finance"
    icacls "X:\Departments\HR"
    

     

    設定後のクリーンアップ:

    # 管理用ドライブの削除
    Remove-PSDrive -Name X -Force
    
    # 今後はAD認証でアクセス
    net use Y: \\yourstorageaccount.file.core.windows.net\sharename /persistent:yes
    

     

重要な考慮事項

環境別の推奨設定

環境タイプ推奨認証方式理由
ハイブリッドIDMicrosoft Entra KerberosシームレスなSSO、条件付きアクセス対応
完全オンプレミスAD DS既存AD環境との完全統合
クラウドオンリーAzure AD DS管理オーバーヘッドの削減
開発/テストMicrosoft Entra Kerberos簡単なセットアップ、低コスト

最後に

この記事では、Azure FilesへのSMBアクセスにおけるIDベース認証の設定について、リスクと対策を解説しました。

IDベース認証を実装することで、以下の重要なメリットが得られます:

  1. セキュリティの強化: ストレージアカウントキーの露出リスクを完全に排除
  2. コンプライアンス準拠: GDPR、HIPAA、PCI-DSS等の規制要件を満たす
  3. 運用効率の向上: 既存のAD/Entra IDインフラを活用した統合管理
  4. 監査性の向上: ユーザーレベルでの詳細なアクセスログ
  5. ゼロトラスト実現: IDベースの継続的な検証とアクセス制御

特に以下のシナリオでは、IDベース認証の実装が強く推奨されます:

  • 機密データを扱うファイル共有
  • 複数部門で共有するストレージ
  • 規制対象となるデータの保管
  • リモートワーク環境でのファイルアクセス

この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。

CSPMについてはこちらで解説しております。併せてご覧ください。

参考情報

この記事をシェアする

クラウドセキュリティ対策実践集一覧へ戻る

貴社の利用状況に合わせた見積もりを作成します。

料金プランを詳しく見る