Azure Files의 전송 중 암호화 구성

이 글에서는 Azure Files에서 전송 시 암호화를 요구하고 사용하는 방법을 설명합니다. 각 프로토콜은 고유한 암호화 메커니즘과 설정을 가지고 있습니다:

  • SMB: SMB 3.x 채널 암호화. SMB를 참조하세요.
  • NFS: AzNFS 마운트 헬퍼를 통한 TLS 암호화입니다. NFS를 참고하세요.
  • FileREST: TLS가 적용된 HTTPS. FileREST를 참조하세요.

각 프로토콜의 전송 시 암호화에 대한 개요는 Azure Files 네트워킹 고려사항을 참조하세요. Microsoft.FileShares 파일 공유의 경우 각 파일 공유에 대해 전송 중 암호화 요구 사항을 설정합니다. 파일 공유 만들기 및 파일 공유 수정을 참조하세요. Microsoft. FileShares는 FileREST를 지원하지 않습니다.

전송 설정에서의 암호화

클래식 파일 공유는 각 프로토콜별로 별도의 전송 시 암호화 설정을 가지고 있습니다. 세 프로토콜 모두에 대해 원래 설정은 안전한 전송 필요였습니다. 하위 호환성을 위해, 해당 프로토콜 설정을 설정하기 전까지는 SMB와 NFS 암호화를 계속 제어합니다.

Setting Protocol 설정이 선택되지 않았을 때
SMB에 대한 전송 시 암호화 요구 SMB 보안 전송 필요는 SMB 암호화를 제어합니다.
NFS를 위해 전송 시 암호화 요구하기 NFS 보안 전송 필요는 NFS 암호화를 제어합니다.
보안 전송 필요 FileREST. 이 설정은 Blob, Queue, Table 요청을 포함한 모든 HTTPS 요청(HDD Pay-as-you-go 스토리지 계정만)에 적용됩니다. 적용할 수 없습니다.

SMB와 NFS 설정은 다음에 대해 선택되지 않음 으로 시작합니다:

  • 기존 스토리지 계정.
  • Azure PowerShell, Azure CLI 또는 Azure Storage 리소스 제공자 REST API를 사용하여 생성한 스토리지 계정.

Azure 포털을 통해 생성된 스토리지 계정의 경우 두 설정 모두 기본적으로 활성화되어 있습니다.

SMB 또는 NFS 설정을 설정한 후에는 해당 프로토콜에 대해 보안 전송 필요보다 우선 적용됩니다. 활성화와 비활성화 사이로 바꿀 수는 있지만, 선택되지 않음으로 돌릴 수는 없습니다.

SMB

Azure Files는 SMB 3.x 채널 암호화를 사용하여 SMB 트래픽을 암호화합니다. 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 포털을 사용하여 SMB에 대해 전송 중 암호화 필요를 구성하려면 다음 단계를 따르세요:

  1. 스토리지 계정으로 이동합니다.

  2. 서비스 메뉴에서 Data Storage>클래식 파일 공유를 선택합니다.

  3. 클래식 파일 공유 설정에서 보안과 연관된 값을 선택하세요.

    보안 값이 강조된 스토리지 계정의 클래식 파일 공유 설정 섹션 스크린샷입니다.

  4. SMB에 대한 전송 시 암호화 요구를 위해 활성화 또는 비활성화를 선택하세요.

    클래식 파일 공유의 보안 창 스크린샷과 'SMB에 대한 전송 시 암호화 요구' 설정이 강조되어 있습니다.

  5. 저장을 선택합니다.

스토리지 계정을 만들 때 고급 탭에서 SMB용 전송 중 암호화 필요 설정도 가능합니다.

NFS

Azure Files NFSv4.1 파일 공유는 TLS 터널을 통한 전송 시 암호화를 지원합니다. TLS는 전송 중인 데이터를 가로채기로부터 보호하며, 여기에는 중간자 공격도 포함됩니다. AzNFS 마운트 헬퍼를 설치하고 전송 중 암호화를 사용하여 파일 공유를 마운트하려면 Linux에서 NFS Azure 파일 공유 마운트를 참조하세요.

전송 중 암호화의 작동 원리

Azure Files는 오픈소스 TLS 래퍼인 stunnel을 사용하여 NFS 클라이언트와 Azure Files 간의 TCP 연결을 암호화합니다. AzNFS 마운트 보조 도구를 사용할 때 연결은 AES-256-GCM 암호화를 사용하는 TLS 1.2 또는 TLS 1.3을 사용합니다. Kerberos나 Active Directory 같은 외부 인증 시스템은 필요하지 않습니다.

AzNFS 마운트 헬퍼 패키지는 클라이언트에 stunnel을 설치하고 설정합니다. AzNFS는 packages.microsoft.com 에서 이용 가능합니다. 암호화된 연결을 통해 NFS 클라이언트 요청을 전달하는 로컬 엔드포인트를 생성합니다. AzNFS는 다음과 같은 구성 요소를 포함합니다:

  • AzNFS 마운트 헬퍼: NFSv4.1 파일 공유를 TLS 터널을 통해 마운트합니다.

  • 스터널 프로세스: 각 스토리지 계정마다 하나의 프로세스. 로컬 포트에서 NFS 클라이언트 트래픽을 모니터링하고 TLS를 통해 트래픽을 Azure Files로 전달합니다.

  • AzNFS 워치독: stunnel 프로세스를 계속 실행하고, 종료된 터널을 재시작하며, 관련된 모든 NFS 마운트가 언마운트된 후 사용하지 않는 프로세스를 제거하는 백그라운드 서비스입니다.

전송 중 암호화 적용

NFS에 대한 전송 중 암호화 요구(Require Encryption in Transit for NFS) 설정은 Azure Files가 스토리지 계정 내 파일 공유에 대한 NFS 액세스에 암호화를 요구하는지 여부를 제어합니다. 같은 스토리지 계정에 TLS와 비TLS 마운트를 모두 허용하려면 설정을 비활성화하세요. 기본 값과 이 설정이 보안 전송 필요와 함께 작동하는 방식에 대해서는 전송 중 암호화 설정을 참조하세요.

Azure 포털을 사용하여 NFS용 전송 시 암호화 요구를 설정하려면 다음 단계를 따르세요:

  1. 스토리지 계정으로 이동합니다.

  2. 서비스 메뉴에서 Data Storage>클래식 파일 공유를 선택합니다.

  3. 클래식 파일 공유 설정에서 보안과 연관된 값을 선택하세요.

    보안 값이 강조된 스토리지 계정의 클래식 파일 공유 설정 섹션 스크린샷입니다.

  4. NFS에 대해 전송 시 암호화 요구(Require Encryption in Transit)에서 활성화 또는 비활성화를 선택하세요.

    NFS에 대한 전송 중 암호화 필요 설정이 강조 표시된 클래식 파일 공유의 보안 창 스크린샷.

  5. 저장을 선택합니다.

스토리지 계정을 생성할 때 고급 탭에서 NFS 전송 중 암호화 필요 설정도 가능합니다.

FileREST

FileREST 요청은 HTTPS를 사용해 전송 중인 데이터를 암호화합니다. 두 가지 스토리지 계정 설정은 클래식 파일 공유의 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을 지원하면 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. 저장을 선택합니다.