Azure Files の転送時の暗号化を構成する

この記事では、Azure Files の転送中の暗号化を必須にして使用する方法について説明します。 各プロトコルには独自の暗号化機構と設定があります:

  • SMB:SMB 3.xチャネル暗号化。 SMBを参照してください。
  • NFS:AzNFSマウントヘルパーによるTLS暗号化。 NFSを参照してください。
  • FileREST: TLS 対応の HTTPS。 FileRESTを参照してください。

各プロトコルの暗号化イントランジットの概要については、Azure Filesのネットワークに関する考慮事項を参照してください。 Microsoft.FileShares のファイル共有では、各ファイル共有で転送中の暗号化の要件を設定します。 「ファイル共有の作成」および「ファイル共有の修正」を参照してください。 Microsoft.FileSharesはFileRESTをサポートしていません。

通信中の暗号化設定

クラシックなファイル共有は、各プロトコルごとに個別の「転送中の暗号化」設定を持っています。 「Secure Transfer required」は3つのプロトコルすべての元の設定でした。 後方互換性のために、そのプロトコルの設定を構成するまでは、引き続きSMBやNFSの暗号化を制御します。

Setting Protocol 設定が選択されていない場合
SMBの輸送中暗号化を義務付ける SMB 安全な転送が必要で SMB 暗号化を制御します。
NFSの輸送中に暗号化を義務付ける NFS 安全な転送が必須で NFS 暗号化を制御します。
安全な転送が必須 FileREST。 この設定は、Blob、Queue、Table の各要求を含む、ストレージ アカウントへのすべての HTTPS 要求に適用されます(HDD の従量課金ストレージ アカウントのみ)。 適用されません。

SMBおよびNFSの設定は、次の項目で未選択になっています:

  • 既存のストレージアカウント。
  • Azure PowerShell、Azure CLI、またはAzure StorageリソースプロバイダーのREST APIを使って作成されたストレージアカウント。

Azureポータルを使って作成されたストレージアカウントでは、両方の設定がデフォルトで有効になっています。

SMB や NFS の設定を設定した後は、その設定はそのプロトコルの「安全な転送が必須」より優先されます。 設定は有効と無効に切り替えられますが、選択されていない状態に戻すことはできません。

SMB

Azure FilesはSMB 3.xチャネル暗号化を用いてSMBトラフィックを暗号化します。 SMB の「Require Encryption in Transit for SMB」設定は、Azure Files がストレージ アカウント内のファイル共有への SMB アクセスに暗号化を要求するかどうかを制御します。 この設定を有効にすると、Azure Filesはチャネル暗号化を使用するSMB 3.xマウントのみを許可します。 Azure Filesは、チャネル暗号化付きのSMB 3.xをサポートしていないクライアントからのマウントを拒否します。 SMB 2.1は暗号化をサポートしていないため、Azure FilesはSMB 2.1のマウントをすべて拒否します。 既定値およびこの設定が 「セキュリティで保護された転送が必要」 とどのように連携するかについては、転送中の暗号化設定を参照してください。

対応するSMBチャネル暗号化アルゴリズムおよびその他のSMBセキュリティ設定については、 SMBセキュリティ設定を参照してください。

Azureポータルを使ってRequire Encryption in Transit for SMBを設定するには、以下の手順に従ってください:

  1. ストレージ アカウントに移動します。

  2. サービス メニューから、 データ ストレージ>Classic ファイル共有を選択します。

  3. Classicファイル共有設定で、セキュリティに関連付けられた値を選択します。

    ストレージアカウントのClassicファイル共有設定セクションのスクリーンショットで、セキュリティ値がハイライトされています。

  4. SMB の転送中の暗号化を必須にする では、有効 または 無効 を選択してください。

    クラシックファイル共有用のセキュリティペインのスクリーンショットで、「SMBの転送中の暗号化が必要」設定がハイライトされています。

  5. 保存 を選択します。

ストレージ アカウントを作成するときに、「詳細」 タブで 「SMB の転送中の暗号化を必須にする」 を設定することもできます。

NFS

Azure Files NFSv4.1 ファイル共有は、TLS トンネルを介した転送中の暗号化をサポートします。 TLSは、転送中のデータを傍受(中間者攻撃を含む)から守ります。 AzNFSマウントヘルパーのインストールおよび転送中の暗号化を使用したファイル共有のマウントについては、Linux での NFS Azure ファイル共有のマウントをご覧ください。

通信中の暗号化の仕組み

Azure Filesは、NFSクライアントとAzure Files間のTCP接続を暗号化するために、オープンソースのTLSラッパーであるstunnelを使用しています。 AzNFSマウントヘルパーでは、接続にTLS 1.2またはTLS 1.3を使用し、AES-256-GCMで暗号化します。 KerberosやActive Directoryのような外部認証システムは必要ありません。

AzNFSのマウントヘルパーパッケージはクライアント上でstunnelをインストールし設定します。 AzNFSは packages.microsoft.com から入手可能です。 NFSクライアントのリクエストを暗号化された接続上で転送するローカルエンドポイントを作成します。 AzNFSには以下の構成要素があります:

  • AzNFSマウントヘルパー:TLSトンネルを通じてNFSv4.1ファイルシェアをマウントします。

  • Stunnelプロセス:ストレージアカウントごとに1つのプロセスです。 ローカルポートでNFSクライアントのトラフィックをリスニングし、TLS経由でAzure Filesに転送します。

  • AzNFSウォッチドッグ:ストンネルプロセスを稼働させ、終了したトンネルを再起動し、関連するすべてのNFSマウントがアンマウントされた後に未使用のプロセスを削除するバックグラウンドサービスです。

転送中の暗号化を適用する

「Require Encryption in Transit for NFS」設定は、Azure Filesがストレージ アカウント内のファイル共有へのNFSアクセスに暗号化を必要とするかどうかを制御します。 同じストレージアカウント上でTLSと非TLSの両方のマウントを許可するには、設定を無効にしてください。 既定値およびこの設定が 「セキュリティで保護された転送が必要」 とどのように連携するかについては、転送中の暗号化設定を参照してください。

Azureポータルを使ってNFSの「Require Encryption in Transit」を設定するには、以下の手順に従ってください:

  1. ストレージ アカウントに移動します。

  2. サービス メニューから、 データ ストレージ>Classic ファイル共有を選択します。

  3. Classicファイル共有設定で、セキュリティに関連付けられた値を選択します。

    ストレージアカウントのClassicファイル共有設定セクションのスクリーンショットで、セキュリティ値がハイライトされています。

  4. 「NFSの転送中の暗号化を要求」では、「有効」または「無効」を選択してください。

    クラシックファイル共有のセキュリティペインのスクリーンショットで、「Require Encryption in Transit for NFS」設定がハイライトされています。

  5. 保存 を選択します。

ストレージ アカウントの作成時に、「Advanced」 タブで 「Require Encryption in Transit for NFS」 を設定することもできます。

FileREST

FileRESTリクエストはHTTPSを使って転送中のデータを暗号化します。 2つのストレージアカウント設定で、クラシックファイル共有のFileREST暗号化を制御します:

  • 安全な転送が必要です:この設定を有効にすると、ストレージアカウントはHTTP経由でのFileRESTリクエストを拒否します。 新しいストレージアカウントはこの設定がデフォルトで有効になっています。 このまま有効にします。 HTTPを使ってストレージアカウント内の他のデータにアクセスする古いアプリケーションとの後方互換性のために、それを無効にするオプションがあります。 SMBやNFSの設定が存在する前は、セキュリティで保護された転送が必要を無効にすることが、暗号化されていないSMBやNFSへのアクセスを可能にする唯一の方法でした。 今すぐ暗号化されていないSMBやNFSへのアクセスを許可するには、代わりにそのプロトコル用の設定を無効にしてください。 転送中の暗号化設定を参照してください。
  • 最低TLSバージョン:Azure FilesはHTTPSでTLS 1.2とTLS 1.3を受け入れています。 Azure StorageはもはやHTTPSリクエストにTLS 1.0またはTLS 1.1を受け入れていないため、TLS 1.2が設定可能な最低バージョンです。 TLS 1.3を最低値に設定することはできません。 最小バージョンより古いTLSを使用しているFileRESTリクエストは、HTTPステータスコード400(Bad Request)で失敗します。 クライアントは、TLS 1.3 をサポートしている場合にネゴシエートします。

Azure Policy には、ストレージ アカウントのこれらの設定を監査または必須にする組み込みのポリシー定義があります。 ストレージセクションをAzure Policyの組み込みポリシー定義で参照してください。

現在のAzure Storageクライアントライブラリ、Azure PowerShell、Azure CLIはTLS 1.2以降を使用しています。 古いバージョンの.NETフレームワークを対象としたアプリケーションが接続できない場合は、.NETフレームワークのトランスポート層セキュリティ(TLS)ベストプラクティスを参照してください。

FileREST の暗号化設定を構成

以下の手順ではセキュアトランスファーが必要で、ストレージアカウントのTLS最低バージョンをTLS 1.2に設定します。

Azureポータルを使ってこれらの設定を設定するには、以下の手順に従ってください:

  1. ストレージ アカウントに移動します。

  2. サービスメニューから 設定>構成を選択します。

  3. 「安全な転送が必要」 で 「有効」 を選択してください。

    ストレージアカウントの設定ページのスクリーンショットで、「安全な転送が必要」設定がハイライトされています。

  4. 最小TLSバージョンについては、バージョン1.2を選択してください。

    ストレージアカウントの設定ページのスクリーンショットで、最小TLSバージョン設定がハイライトされています。

  5. 保存 を選択します。