Azure Storage 방화벽 및 가상 네트워크 구성
Azure Storage는 계층화된 보안 모델을 제공합니다. 이 모델을 사용하면 사용하는 네트워크 또는 리소스의 형식과 하위 집합을 기반으로 애플리케이션 및 엔터프라이즈 환경에서 요구하는 스토리지 계정에 대한 액세스 수준을 제어할 수 있습니다.
네트워크 규칙을 구성하면 지정된 네트워크 집합이나 지정된 Azure 리소스 집합을 통해 데이터를 요청하는 애플리케이션만 스토리지 계정에 액세스할 수 있습니다. 지정된 IP 주소, IP 범위, Azure Virtual Network의 서브넷 또는 일부 Azure 서비스의 리소스 인스턴스에서 발생하는 요청으로 스토리지 계정에 대한 액세스를 제한할 수 있습니다.
스토리지 계정에는 인터넷을 통해 액세스할 수 있는 퍼블릭 엔드포인트가 있습니다. 스토리지 계정에 대한 프라이빗 엔드포인트를 만들 수도 있습니다. 프라이빗 엔드포인트를 만들면 가상 네트워크의 개인 IP 주소가 스토리지 계정에 할당됩니다. 프라이빗 링크를 통해 가상 네트워크와 스토리지 계정 간의 트래픽을 보호하는 데 도움이 됩니다.
Azure Storage 방화벽은 스토리지 계정의 퍼블릭 엔드포인트에 대한 액세스 제어 기능을 제공합니다. 또한 프라이빗 엔드포인트를 사용할 때 방화벽을 사용하여 퍼블릭 엔드포인트를 통한 모든 액세스를 차단할 수도 있습니다. 또한 방화벽 구성을 통해 신뢰할 수 있는 Azure 플랫폼 서비스가 스토리지 계정에 액세스할 수 있습니다.
네트워크 규칙이 적용될 때 스토리지 계정에 액세스하는 애플리케이션에는 요청에 대한 적절한 권한 부여가 필요합니다. 권한 부여는 Blob, 테이블, 파일 공유, 큐에 대한 Microsoft Entra 자격 증명, 유효한 계정 액세스 키, SAS(공유 액세스 서명) 토큰을 통해 지원됩니다. 익명 액세스를 위해 Blob 컨테이너를 구성하는 경우 해당 컨테이너의 데이터 읽기 요청에는 권한이 부여될 필요가 없습니다. 방화벽 규칙은 계속 유효하며 익명 트래픽을 차단합니다.
스토리지 계정에 대해 방화벽 규칙을 켜면 기본적으로 Azure Virtual Network 내에서 작동하는 서비스 또는 허용되는 퍼블릭 IP 주소에서 요청하지 않는 한, 들어오는 데이터 요청이 차단됩니다. 차단되는 요청에는 다른 Azure 서비스로부터의 요청, Azure Portal의 요청, 로깅 및 메트릭 서비스로부터의 요청이 포함됩니다.
서비스 인스턴스를 호스팅하는 서브넷의 트래픽을 허용하여 가상 네트워크 내에서 작동하는 Azure 서비스에 대한 액세스 권한을 부여할 수 있습니다. 또한 이 문서에서 설명하는 예외 메커니즘을 통해 제한된 수의 시나리오를 사용하도록 설정할 수도 있습니다. Azure Portal을 통해 스토리지 계정의 데이터에 액세스하려면 설정한 신뢰할 수 있는 경계(IP 또는 가상 네트워크) 내의 컴퓨터에 있어야 합니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
시나리오
스토리지 계정을 보호하려면 먼저 퍼블릭 엔드포인트에서 모든 네트워크(인터넷 트래픽 포함)의 트래픽에 대한 액세스를 거부하도록 규칙을 구성해야 합니다. 그런 다음 특정 가상 네트워크의 트래픽에 대한 액세스 권한을 부여하는 규칙을 구성해야 합니다. 또한 퍼블릭 인터넷 IP 주소 범위의 트래픽에 대한 액세스를 허가하도록 규칙을 구성하여 특정 인터넷 또는 온-프레미스 클라이언트의 연결을 사용하도록 설정할 수도 있습니다. 이 구성은 애플리케이션에 대한 보안된 네트워크 경계를 빌드하는 데 도움이 됩니다.
특정 가상 네트워크의 액세스를 허용하는 방화벽 규칙과 동일한 스토리지 계정의 퍼블릭 IP 주소 범위에서의 액세스를 허용하는 방화벽 규칙을 결합할 수 있습니다. 기존 스토리지 계정에 또는 새 스토리지 계정을 만들 때 스토리지 방화벽 규칙을 적용할 수 있습니다.
스토리지 방화벽 규칙은 스토리지 계정의 퍼블릭 엔드포인트에 적용됩니다. 스토리지 계정의 프라이빗 엔드포인트에 대한 트래픽을 허용하는 방화벽 액세스 규칙은 필요하지 않습니다. 프라이빗 엔드포인트의 생성을 승인하면 프라이빗 엔드포인트를 호스트하는 서브넷의 트래픽에 대해 암시적 액세스 권한이 부여됩니다.
Important
Azure Storage 방화벽 규칙은 데이터 평면 작업에만 적용됩니다. 컨트롤 플레인 작업에는 방화벽 규칙에 지정된 제한 사항이 적용되지 않습니다.
Blob 컨테이너 작업과 같은 일부 작업은 컨트롤 플레인과 데이터 평면 모두를 통해 수행할 수 있습니다. 따라서 Azure Portal에서 컨테이너 나열과 같은 작업을 수행하려고 하면 다른 메커니즘에 의해 차단되지 않는 한 작업이 성공합니다. Azure Storage Explorer와 같은 애플리케이션에서 Blob 데이터에 액세스하려는 시도는 방화벽 제한 사항에 의해 제어됩니다.
데이터 평면 작업 목록은 Azure Storage REST API 참조를 참조하세요. 데이터 평면 작업 목록은 Azure Storage 리소스 공급자 REST API 참조를 참조하세요.
Azure Storage에 대한 네트워크 액세스 구성
네트워크 엔드포인트를 통해 또는 다음을 비롯한 모든 조합의 신뢰할 수 있는 서비스 또는 리소스를 통해 스토리지 계정의 데이터에 대한 액세스를 제어할 수 있습니다.
- 프라이빗 엔드포인트를 사용하여 선택한 가상 네트워크 서브넷에서 액세스를 허용합니다.
- 서비스 엔드포인트를 사용하여 선택한 가상 네트워크 서브넷에서 액세스를 허용합니다.
- 특정 공용 IP 주소 또는 범위에서 액세스를 허용합니다.
- 선택한 Azure 리소스 인스턴스에서 액세스를 허용합니다.
- 신뢰할 수 있는 Azure 서비스에서 액세스를 허용합니다(예외 관리 사용).
- 로깅 및 메트릭 서비스에 대한 예외를 구성합니다.
가상 네트워크 엔드포인트 정보
스토리지 계정에는 두 가지 유형의 가상 네트워크 엔드포인트가 있습니다.
가상 네트워크 서비스 엔드포인트는 퍼블릭이며 인터넷을 통해 액세스할 수 있습니다. Azure Storage 방화벽은 이러한 퍼블릭 엔드포인트를 통해 스토리지 계정에 대한 액세스를 제어하는 기능을 제공합니다. 스토리지 계정에 대한 공용 네트워크 액세스를 사용하도록 설정하면 데이터에 대한 들어오는 모든 요청이 기본적으로 차단됩니다. 스토리지 계정 방화벽 설정에서 구성하는 허용된 원본의 데이터를 요청하는 애플리케이션만 데이터에 액세스할 수 있습니다. 원본에는 클라이언트의 원본 IP 주소나 가상 네트워크 서브넷 또는 클라이언트 또는 서비스가 데이터에 액세스하는 Azure 서비스 또는 리소스 인스턴스가 포함될 수 있습니다. 차단된 요청에는 방화벽 구성에서 명시적으로 액세스를 허용하지 않는 한 다른 Azure 서비스, Azure Portal 및 로깅 및 메트릭 서비스의 요청이 포함됩니다.
프라이빗 엔드포인트는 가상 네트워크의 개인 IP 주소를 사용하여 Microsoft 백본 네트워크를 통해 스토리지 계정에 액세스합니다. 프라이빗 엔드포인트를 사용하면 가상 네트워크와 스토리지 계정 간의 트래픽이 프라이빗 링크를 통해 보안됩니다. 스토리지 방화벽 규칙은 프라이빗 엔드포인트가 아닌 스토리지 계정의 퍼블릭 엔드포인트에만 적용됩니다. 프라이빗 엔드포인트의 생성을 승인하면 프라이빗 엔드포인트를 호스트하는 서브넷의 트래픽에 대해 암시적 액세스 권한이 부여됩니다. 액세스 규칙을 구체화하려는 경우 네트워크 정책을 사용하여 프라이빗 엔드포인트를 통해 트래픽을 제어할 수 있습니다. 프라이빗 엔드포인트만 사용하려는 경우 방화벽을 사용하여 퍼블릭 엔드포인트를 통한 모든 액세스를 차단할 수 있습니다.
환경에서 각 유형의 엔드포인트를 사용할 시기를 결정할 경우 프라이빗 엔드포인트와 서비스 엔드포인트 비교를 참조하세요.
스토리지 계정에 대한 네트워크 보안에 접근하는 방법
스토리지 계정을 보안하고 애플리케이션에 대한 보안 네트워크 경계를 구축하려면 다음을 수행합니다.
먼저 스토리지 계정 방화벽의 공용 네트워크 액세스 설정 아래에서 스토리지 계정에 대한 모든 공용 네트워크 액세스를 사용하지 않도록 설정합니다.
가능한 경우 클라이언트가 있는 가상 네트워크 서브넷의 프라이빗 엔드포인트에서 데이터에 액세스해야 하는 스토리지 계정에 대한 프라이빗 링크를 구성합니다.
클라이언트 애플리케이션에서 퍼블릭 엔드포인트를 통해 액세스해야 하는 경우 공용 네트워크 액세스 설정을 선택한 가상 네트워크 및 IP 주소에서 사용으로 변경합니다. 그런 다음 필요에 따라 다음을 수행합니다.
- 액세스를 허용할 가상 네트워크 서브넷을 지정합니다.
- 온-프레미스 네트워크의 범위와 같이 액세스를 허용하려는 클라이언트의 공용 IP 주소 범위를 지정합니다.
- 선택한 Azure 리소스 인스턴스에서 액세스를 허용합니다.
- 데이터 백업과 같은 작업에 필요한 신뢰할 수 있는 서비스의 액세스를 허용하는 예외를 추가합니다.
- 로깅 및 메트릭에 대한 예외를 추가합니다.
네트워크 규칙을 적용하면 모든 요청에 적용됩니다. 특정 IP 주소에 대한 액세스 권한을 부여하는 SAS 토큰은 토큰 소유자의 액세스를 제한하지만, 구성된 네트워크 규칙 이외의 새 액세스 권한은 부여하지 않습니다.
네트워크 보안 경계(미리 보기)
네트워크 보안 경계 (미리 보기)를 사용하면 조직에서 가상 네트워크 외부에 배포된 PaaS 리소스(예: Azure Blob Storage 및 SQL Database)에 대한 논리적 네트워크 격리 경계를 정의할 수 있습니다. 이 기능은 경계 외부의 PaaS 리소스에 대한 공용 네트워크 액세스를 제한합니다. 그러나 공용 인바운드 및 아웃바운드 트래픽에 대한 명시적 액세스 규칙을 사용하여 액세스를 제외할 수 있습니다. 기본적으로 네트워크 보안 경계 내에서 스토리지 계정에 대한 액세스는 다른 네트워크 액세스 제한보다 우선 순위가 높습니다.
현재 네트워크 보안 경계는 Azure Blob, Azure Files(REST), Azure 테이블 및 Azure 큐에 대한 공개 미리 보기로 제공됩니다. 네트워크 보안 경계로의 전환을 참조 하세요.
네트워크 보안 경계에 온보딩된 서비스 목록은 여기에서 찾을 수 있습니다.
아직 네트워크 보안 경계에 온보딩되지 않았기 때문에 이 목록에 없는 서비스의 경우 액세스를 허용하려는 경우 네트워크 보안 경계에서 구독 기반 규칙을 사용할 수 있습니다. 그러면 해당 구독 내의 모든 리소스에 해당 네트워크 보안 경계에 대한 액세스 권한이 부여됩니다. 구독 기반 액세스 규칙 추가에 대한 자세한 내용은 여기를 참조 하세요.
Important
프라이빗 엔드포인트 트래픽은 매우 안전한 것으로 간주되므로 네트워크 보안 경계 규칙의 적용을 받지 않습니다. 스토리지 계정이 경계와 연결된 경우 신뢰할 수 있는 서비스를 포함한 다른 모든 트래픽에는 네트워크 보안 경계 규칙이 적용됩니다.
제한 사항
이 미리 보기는 스토리지 계정에서 다음 서비스, 작업 및 프로토콜을 지원하지 않습니다.
- Azure Blob Storage에 대한 개체 복제
- Azure Blob Storage에 대한 수명 주기 관리
- Azure Blob Storage를 통한 SFTP(SSH 파일 전송 프로토콜)
- Azure Blob Storage 및 Azure Files를 사용하는 NFS(네트워크 파일 시스템) 프로토콜입니다.
- Azure Files를 사용한 SMB(서버 메시지 블록) 프로토콜은 현재 IP 허용 목록을 통해서만 달성할 수 있습니다.
- Azure Blob 인벤토리
이러한 서비스, 작업 또는 프로토콜을 사용해야 하는 경우 네트워크 보안 경계를 사용하도록 설정하지 않는 것이 좋습니다. 이는 잠재적인 데이터 손실 또는 데이터 반출 위험을 방지하기 위한 것입니다.
Warning
CMK(고객 관리형 키) 시나리오가 작동하려면 네트워크 보안 경계와 연결된 스토리지 계정의 경우 스토리지 계정이 연결된 경계 내에서 Azure Key Vault에 액세스할 수 있는지 확인합니다.
스토리지 계정과 네트워크 보안 경계 연결
네트워크 보안 경계를 스토리지 계정과 연결하려면 모든 PaaS 리소스에 대해 다음과 같은 일반적인 지침을 따릅니다.
제한 사항 및 고려 사항
스토리지 계정에 대한 네트워크 보안을 구현하기 전에 이 섹션에서 설명하는 중요한 제한 사항 및 고려 사항을 살펴보세요.
- Azure Storage 방화벽 규칙은 데이터 평면 작업에만 적용됩니다. 컨트롤 플레인 작업에는 방화벽 규칙에 지정된 제한 사항이 적용되지 않습니다.
- IP 네트워크 규칙에 대한 제한 사항을 살펴보세요.
- Azure Portal, Azure Storage Explorer 및 AzCopy와 같은 도구를 사용하여 데이터에 액세스하려면 네트워크 보안 규칙을 구성할 때 설정한 신뢰할 수 있는 경계 내의 컴퓨터에 있어야 합니다.
- 네트워크 규칙은 REST 및 SMB를 포함해서 Azure Storage에 대한 모든 네트워크 프로토콜에 적용됩니다.
- 네트워크 규칙은 탑재 및 분리 작업 및 디스크 I/O를 포함하여 VM(가상 머신) 디스크 트래픽에 영향을 주지 않지만 페이지 Blob에 대한 REST 액세스를 보호하는 데 도움이 됩니다.
- 예외를 만들어서 VM 백업 및 복원에 적용되는 네트워크 규칙이 있는 스토리지 계정에서 관리되지 않는 디스크를 사용할 수 있습니다. 관리 디스크는 이미 Azure에서 관리하므로 방화벽 예외는 관리 디스크에는 적용되지 않습니다.
- 클래식 스토리지 계정은 방화벽 및 가상 네트워크를 지원하지 않습니다.
- 가상 네트워크 규칙에 포함된 서브넷을 삭제하면 스토리지 계정에 대한 네트워크 규칙에서 제거됩니다. 동일한 이름으로 새 서브넷을 만들면 스토리지 계정에 액세스할 수 없습니다. 액세스를 허용하려면 스토리지 계정에 대한 네트워크 규칙에서 새 서브넷에 명시적으로 권한을 부여해야 합니다.
- 클라이언트 애플리케이션에서 서비스 엔드포인트를 참조하는 경우 캐시된 IP 주소에 대한 종속성을 사용하지 않는 것이 좋습니다. 스토리지 계정 IP 주소는 변경될 수 있으며 캐시된 IP 주소를 사용하면 예기치 않은 동작이 발생할 수 있습니다. 또한 DNS 레코드의 TTL(Time to Live)을 적용하고 재정의하지 않는 것이 좋습니다. DNS TTL을 재정의하면 예기치 않은 동작이 발생할 수 있습니다.
- 기본적으로 신뢰할 수 있는 서비스의 스토리지 계정에 대한 액세스는 다른 네트워크 액세스 제한보다 우선 순위가 높습니다. 공용 네트워크 액세스를 이전에 선택한 가상 네트워크 및 IP 주소에서 사용으로 설정한 후 사용 안 함으로 설정하면 신뢰할 수 있는 서비스 목록의 Azure 서비스가 이 스토리지 계정에 액세스하도록 허용하는 것을 포함하여, 이전에 구성한 리소스 인스턴스 및 예외는 계속 적용됩니다. 그 결과 이러한 리소스 및 서비스에서는 여전히 스토리지 계정에 액세스할 수 있습니다.
Authorization
네트워크 규칙을 통해 액세스가 허가된 클라이언트는 데이터에 액세스하기 위해 스토리지 계정의 인증 요구 사항을 계속 충족해야 합니다. 권한 부여는 Blob 및 큐에 대한 Microsoft Entra 자격 증명, 유효한 계정 액세스 키 또는 SAS(공유 액세스 서명) 토큰을 통해 지원됩니다.
익명 공용 액세스를 위한 Blob 컨테이너를 구성한 경우 해당 컨테이너의 데이터 읽기 요청에 권한을 부여할 필요는 없지만 방화벽 규칙은 계속 유효하며 익명 트래픽을 차단합니다.
기본 네트워크 액세스 규칙 변경
기본적으로 스토리지 계정은 네트워크에 있는 모든 클라이언트로부터의 연결을 허용합니다. 선택한 네트워크에 대한 액세스 제한 또는 모든 네트워크의 트래픽 방지 및 프라이빗 엔드포인트를 통한 액세스만 허용하는 것이 가능합니다.
기본 규칙을 거부로 설정해야 합니다. 그렇지 않으면 네트워크 규칙이 적용되지 않습니다. 그러나 이 설정을 변경하면 애플리케이션이 Azure Storage에 연결하는 기능에 영향을 미칠 수 있습니다. 이 설정을 변경하기 전에 허용된 네트워크에 대한 액세스 권한을 부여하거나 프라이빗 엔드포인트를 통해 액세스를 설정해야 합니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
보안하려는 스토리지 계정으로 이동합니다.
서비스 메뉴의 보안 + 네트워킹에서 네트워킹을 선택합니다.
스토리지 계정의 퍼블릭 엔드포인트를 통해 사용하도록 설정된 네트워크 액세스를 선택합니다.
모든 네트워크에서 사용 또는 선택한 가상 네트워크 및 IP 주소에서 사용 중 하나를 선택합니다. 두 번째 옵션을 선택하면 가상 네트워크 및 IP 주소 범위를 추가하라는 메시지가 표시됩니다.
아웃바운드 액세스를 허용하는 동안 인바운드 액세스를 제한하려면 [사용 안 함]을 선택합니다.
저장을 선택하여 변경 내용을 적용합니다.
가상 네트워크의 액세스 허가
특정 서브넷에서만 액세스를 허용하도록 스토리지 계정을 구성할 수 있습니다. 허용되는 서브넷은 다른 Microsoft Entra 테넌트에 속한 구독을 포함하여 동일한 구독 또는 다른 구독의 가상 네트워크에 속할 수 있습니다. 지역 간 서비스 엔드포인트를 사용하면 허용되는 서브넷이 스토리지 계정과 다른 영역에 있을 수도 있습니다.
가상 네트워크 내에서 Azure Storage에 서비스 엔드포인트를 사용하도록 설정할 수 있습니다. 서비스 엔드포인트는 가상 네트워크의 트래픽을 Azure Storage 서비스에 대한 최적의 경로를 통해 라우팅합니다. 서브넷 및 가상 네트워크의 ID 또한 각 요청과 함께 전송됩니다. 그러면 관리자가 가상 네트워크의 특정 서브넷에서 요청을 받을 수 있도록 스토리지 계정에 대한 네트워크 규칙을 구성할 수 있습니다. 이러한 네트워크 규칙을 통해 액세스가 허용되는 클라이언트에서 데이터에 액세스하려면 스토리지 계정의 권한 부여 요구 사항을 계속 충족해야 합니다.
각 스토리지 계정은 최대 400개의 가상 네트워크 규칙을 지원합니다. 이러한 규칙을 IP 네트워크 규칙과 결합할 수 있습니다.
Important
클라이언트 애플리케이션에서 서비스 엔드포인트를 참조하는 경우 캐시된 IP 주소에 대한 종속성을 사용하지 않는 것이 좋습니다. 스토리지 계정 IP 주소는 변경될 수 있으며 캐시된 IP 주소를 사용하면 예기치 않은 동작이 발생할 수 있습니다.
또한 DNS 레코드의 TTL(Time to Live)을 적용하고 재정의하지 않는 것이 좋습니다. DNS TTL을 재정의하면 예기치 않은 동작이 발생할 수 있습니다.
필요한 사용 권한
가상 네트워크 규칙을 스토리지 계정에 적용하려면 추가되는 서브넷에 대한 적절한 권한이 사용자에게 있어야 합니다. 스토리지 계정 기여자 또는 Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action
Azure 리소스 공급자 작업에 대한 사용 권한을 가지는 사용자는 사용자 지정 Azure 역할을 사용하여 규칙을 적용할 수 있습니다.
액세스할 수 있는 스토리지 계정과 가상 네트워크는 다른 Microsoft Entra 테넌트의 일부인 구독을 포함하여 다른 구독에 있을 수 있습니다.
다른 Microsoft Entra 테넌트의 일부인 가상 네트워크의 서브넷에 대한 액세스 권한을 부여하는 규칙 구성은 현재 PowerShell, Azure CLI 및 REST API를 통해서만 지원됩니다. 이러한 규칙을 Azure Portal에서 볼 수는 있지만 포털을 통해 구성할 수는 없습니다.
Azure Storage 지역 간 서비스 엔드포인트
Azure Storage에 대한 지역 간 서비스 엔드포인트는 2023년 4월에 일반 공급되었습니다. 이러한 엔드포인트는 모든 지역의 가상 네트워크와 스토리지 서비스 인스턴스 간에 작동합니다. 지역 간 서비스 엔드포인트를 사용하면 서브넷은 더 이상 공용 IP 주소를 사용하여 다른 지역의 스토리지 계정을 포함한 모든 스토리지 계정과 통신하지 않습니다. 대신 서브넷에서 스토리지 계정으로 흐르는 모든 트래픽은 개인 IP 주소를 원본 IP로 사용합니다. 따라서 IP 네트워크 규칙을 사용하여 해당 서브넷의 트래픽을 허용하는 스토리지 계정이 더 이상 영향을 주지 않습니다.
쌍을 이루는 지역에서 가상 네트워크와 서비스 인스턴스 간에 서비스 엔드포인트를 구성하는 일은 재해 복구 플랜의 중요한 부분일 수 있습니다. 서비스 엔드포인트를 사용하면 지역별 장애 조치 및 읽기 전용 RA-GRS(지역 중복 스토리지) 인스턴스에 대한 액세스 중에 연속성을 유지할 수 있습니다. 가상 네트워크에서 스토리지 계정으로의 액세스를 허가하는 네트워크 규칙은 모든 RA-GRS 인스턴스에 대한 액세스도 허가합니다.
지역 가동 중단 동안 재해 복구를 계획할 때 쌍을 이루는 지역에서 가상 네트워크를 미리 만들어야 합니다. 이러한 대체 가상 네트워크에서 액세스할 수 있도록 허용하는 네트워크 규칙을 사용하여 Azure Storage에 대한 서비스 엔드포인트를 사용하도록 설정합니다. 그런 다음, 이러한 규칙을 지역 중복 스토리지 계정에 적용합니다.
로컬 및 지역 간 서비스 엔드포인트는 동일한 서브넷에 공존할 수 없습니다. 기존 서비스 엔드포인트를 지역 간 엔드포인트로 바꾸려면 기존 Microsoft.Storage
엔드포인트를 삭제하고 지역 간 엔드포인트(Microsoft.Storage.Global
)로 다시 만듭니다.
가상 네트워크 및 액세스 규칙 관리
Azure Portal, PowerShell 또는 Azure CLI v2를 통해 스토리지 계정에 대한 가상 네트워크 및 액세스 규칙을 관리할 수 있습니다.
다른 Microsoft Entra 테넌트의 가상 네트워크 또는 서브넷에서 스토리지 계정에 대한 액세스를 사용하도록 설정하려면 PowerShell 또는 Azure CLI를 사용해야 합니다. Azure Portal은 다른 Microsoft Entra 테넌트의 서브넷을 표시하지 않습니다.
가상 네트워크 및 액세스 규칙을 구성하려는 스토리지 계정으로 이동합니다.
서비스 메뉴의 보안 + 네트워킹에서 네트워킹을 선택합니다.
선택한 가상 네트워크 및 IP 주소에서 공용 네트워크 액세스를 사용하도록 선택했는지 확인합니다.
새 네트워크 규칙을 사용하여 가상 네트워크에 대한 액세스 권한을 부여하려면 가상 네트워크에서 기존 가상 네트워크 추가를 선택합니다. 가상 네트워크 및 서브넷 옵션을 선택한 다음, 추가를 선택합니다. 새 가상 네트워크를 만들고 거기에 액세스 권한을 부여하려면 새 가상 네트워크 추가를 선택합니다. 새 가상 네트워크를 만들기 위한 필수 정보를 입력하고 만들기를 선택합니다. 현재 동일한 Microsoft Entra 테넌트에 속한 가상 네트워크만 규칙을 만드는 동안 선택 영역으로 나타납니다. 다른 테넌트에 속한 가상 네트워크의 서브넷에 대한 액세스 권한을 부여하려면 PowerShell, Azure CLI 또는 REST API를 사용합니다.
가상 네트워크 또는 서브넷 규칙을 제거하려면 줄임표(...)를 선택해 가상 네트워크 또는 서브넷 바로 가기 메뉴를 열고 제거를 선택합니다.
저장을 선택하여 변경 내용을 적용합니다.
Important
네트워크 규칙에 포함되어 있는 서브넷을 삭제하면 스토리지 계정에 대한 네트워크 규칙에서 제거됩니다. 동일한 이름으로 새 서브넷을 만들면 스토리지 계정에 액세스할 수 없습니다. 액세스를 허용하려면 스토리지 계정에 대한 네트워크 규칙에서 새 서브넷에 명시적으로 권한을 부여해야 합니다.
인터넷 IP 범위의 액세스 허가
IP 네트워크 규칙을 이용해 IP 네트워크 규칙을 만들어서 특정 퍼블릭 인터넷 IP 주소 범위에서만 액세스를 허용할 수 있습니다. 각 스토리지 계정은 최대 400개의 규칙을 지원합니다. 이러한 규칙은 특정 인터넷 기반 서비스 및 온-프레미스 네트워크의 액세스 권한을 부여하고 일반 인터넷 트래픽을 차단합니다.
IP 네트워크 규칙에 대한 제한 사항
IP 주소 범위에는 다음과 같은 제한 사항이 적용됩니다.
IP 네트워크 규칙은 퍼블릭 인터넷 IP 주소에만 허용됩니다.
사설망에 예약된 IP 주소 범위(RFC 1918에 정의된 대로)는 IP 규칙에서 허용되지 않습니다. 프라이빗 네트워크에는 10, 172.16~172.31 및 192.168로 시작하는 주소가 포함됩니다.
16.17.18.0/24 형식의 CIDR 표기법을 사용해 허용되는 인터넷 주소 범위를 제공하거나 16.17.18.19와 같은 개별 IP 주소로 제공해야 합니다.
/31 또는 /32 접두사 크기를 사용하는 작은 주소 범위는 지원되지 않습니다. 해당 범위는 개별 IP 주소 규칙을 사용하여 구성합니다.
스토리지 방화벽 규칙의 구성에는 IPv4 주소만 지원됩니다.
Important
다음과 같은 경우에는 IP 네트워크 규칙을 사용할 수 없습니다.
- 스토리지 계정과 동일한 Azure 지역에 있는 클라이언트에 대한 액세스를 제한할 때. IP 네트워크 규칙이 스토리지 계정과 동일한 Azure 지역에서 시작하는 요청에 영향을 주지 않습니다. 동일한 지역 요청을 허용하려면 가상 네트워크 규칙을 사용하세요.
- 서비스 엔드포인트가 있는 가상 네트워크의 쌍을 이루는 지역에 있는 클라이언트에 대한 액세스를 제한할 경우.
- 스토리지 계정과 동일한 지역에 배포된 Azure 서비스에 대한 액세스를 제한할 때. 스토리지 계정과 동일한 영역에 배포된 서비스는 통신을 위해 전용 Azure IP 주소를 사용합니다. 따라서 퍼블릭 아웃바운드 IP 주소 범위에 따라 특정 Azure 서비스에 대한 액세스를 제한할 수 없습니다.
온-프레미스 네트워크에서의 액세스 구성
IP 네트워크 규칙을 사용하여 온-프레미스 네트워크에서 스토리지 계정으로의 액세스 권한을 부여하려면 네트워크에서 사용되는 인터넷 연결 IP 주소를 식별해야 합니다. 네트워크 관리자에게 도움을 요청합니다.
프레미스에서 Azure ExpressRoute를 사용하는 경우 Microsoft 피어링에 사용되는 NAT IP 주소를 식별해야 합니다. 서비스 공급자 또는 고객이 NAT IP 주소를 제공합니다.
서비스 리소스에 대한 액세스를 허용하려면 리소스 IP에 대한 방화벽 설정에서 이러한 공용 IP 주소를 허용해야 합니다.
IP 네트워크 규칙 관리
Azure Portal, PowerShell 또는 Azure CLI v2를 통해 스토리지 계정에 대한 IP 네트워크 규칙을 관리할 수 있습니다.
IP 네트워크 규칙을 관리하려는 스토리지 계정으로 이동합니다.
서비스 메뉴의 보안 + 네트워킹에서 네트워킹을 선택합니다.
선택한 가상 네트워크 및 IP 주소에서 공용 네트워크 액세스를 사용하도록 선택했는지 확인합니다.
인터넷 IP 범위에 대한 액세스 권한을 부여하려면 방화벽>주소 범위 아래에서 IP 주소 또는 주소 범위(CIDR 형식)를 입력합니다.
IP 네트워크 규칙을 제거하려면 주소 범위 옆에 있는 삭제 아이콘()을 선택합니다.
저장을 선택하여 변경 내용을 적용합니다.
Azure 리소스 인스턴스에서 액세스 권한 부여
경우에 따라 애플리케이션은 가상 네트워크 또는 IP 주소 규칙을 통해 격리할 수 없는 Azure 리소스에 종속될 수 있습니다. 그러나 계속 애플리케이션의 Azure 리소스에 대해서만 스토리지 계정 액세스를 보안하고 제한하고 싶을 수도 있습니다. 리소스 인스턴스 규칙을 만들어 신뢰할 수 있는 Azure 서비스의 특정 리소스 인스턴스에 대한 액세스를 허용하도록 스토리지 계정을 구성할 수 있습니다.
리소스 인스턴스의 Azure 역할 할당으로 리소스 인스턴스가 스토리지 계정 데이터에서 수행할 수 있는 작업의 유형이 결정됩니다. 리소스 인스턴스는 스토리지 계정과 동일한 테넌트에 있어야 하지만 테넌트의 모든 구독에 포함될 수 있습니다.
Azure Portal에서 리소스 네트워크 규칙을 추가하거나 제거할 수 있습니다.
Azure Portal에 로그인합니다.
스토리지 계정을 찾아 계정 개요를 표시합니다.
서비스 메뉴의 보안 + 네트워킹에서 네트워킹을 선택합니다.
선택한 가상 네트워크 및 IP 주소에서 공용 네트워크 액세스를 사용하도록 선택했는지 확인합니다.
아래로 스크롤하여 리소스 인스턴스를 찾습니다. 리소스 종류 드롭다운 목록에서 리소스 인스턴스의 리소스 종류를 선택합니다.
인스턴스 이름 드롭다운 목록에서 리소스 인스턴스를 선택합니다. 현재 테넌트, 구독 또는 리소스 그룹에 모든 리소스 인스턴스를 포함하도록 선택할 수도 있습니다.
저장을 선택하여 변경 내용을 적용합니다. 리소스 인스턴스는 네트워크 설정 페이지의 리소스 인스턴스 섹션에 나타납니다.
리소스 인스턴스를 제거하려면 리소스 인스턴스 옆에 있는 삭제 아이콘()을 선택합니다.
신뢰할 수 있는 Azure 서비스에 액세스 권한 부여
일부 Azure 서비스는 네트워크 규칙에 포함할 수 없는 네트워크에서 작동합니다. 다른 앱에 적용되는 네트워크 규칙을 그대로 유지하면서 이러한 신뢰할 수 있는 Azure 서비스의 하위 집합에 스토리지 계정의 액세스 권한을 부여할 수 있습니다. 그러면 이러한 신뢰할 수 있는 서비스는 강력한 인증을 사용하여 스토리지 계정에 연결합니다.
네트워크 규칙 예외를 만들어 신뢰할 수 있는 Azure 서비스에 액세스 권한을 부여할 수 있습니다. 이 문서의 예외 관리 섹션에서 단계별 안내를 제공합니다.
Microsoft Entra 테넌트에 등록된 리소스에 대한 신뢰할 수 있는 액세스
일부 서비스의 리소스는 로그 작성 또는 백업 실행과 같은 선택한 작업을 위해 스토리지 계정에 액세스할 수 있습니다. 이러한 서비스는 스토리지 계정과 동일한 Microsoft Entra 테넌트에 있는 구독에 등록되어 있어야 합니다. 다음 표에서는 각 서비스와 허용되는 작업에 대해 설명합니다.
서비스 | 리소스 공급자 이름 | 허용되는 작업 |
---|---|---|
Azure Backup | Microsoft.RecoveryServices |
IaaS(Infrastructure as a Service) 가상 머신(관리 디스크에 필요하지 않음)에서 비관리 디스크의 백업 및 복원을 실행합니다. 자세히 알아보기. |
Azure Data Box | Microsoft.DataBox |
Azure로 데이터를 가져옵니다. 자세히 알아보기. |
Azure DevTest Labs | Microsoft.DevTestLab |
사용자 지정 이미지를 만들고 아티팩트를 설치합니다. 자세히 알아보기. |
Azure Event Grid | Microsoft.EventGrid |
Azure Blob Storage 이벤트 게시를 사용하도록 설정하고 스토리지 큐에 게시를 허용합니다. |
Azure Event Hubs | Microsoft.EventHub |
Event Hubs 캡처를 사용하여 데이터를 보관합니다. 자세한 내용을 알아보십시오. |
Azure 파일 동기화 | Microsoft.StorageSync |
온-프레미스 파일 서버를 Azure 파일 공유용 캐시로 변환합니다. 이 기능을 통해 다중 사이트 동기화, 빠른 재해 복구 및 클라우드 쪽 백업을 수행할 수 있습니다. 자세히 알아보기. |
Azure HDInsight | Microsoft.HDInsight |
새 HDInsight 클러스터에 대한 기본 파일 시스템의 초기 콘텐츠를 프로비저닝합니다. 자세히 알아보기. |
Azure Import/Export | Microsoft.ImportExport |
Azure Storage로 데이터를 가져오거나 Azure Storage에서 데이터를 내보냅니다. 자세히 알아보기. |
Azure Monitor | Microsoft.Insights |
리소스 로그, 엔드포인트용 Microsoft Defender 데이터, Microsoft Entra 로그인 및 감사 로그 및 Microsoft Intune 로그를 포함하여 보안 스토리지 계정에 모니터링 데이터를 씁니다. 자세히 알아보기. |
Azure 네트워킹 서비스 | Microsoft.Network |
Azure Network Watcher 및 Azure Traffic Manager 서비스를 포함한 네트워크 트래픽 로그를 저장하고 분석합니다. 자세히 알아보기. |
Azure Site Recovery | Microsoft.SiteRecovery |
방화벽 지원 캐시, 원본 또는 대상 스토리지 계정을 사용하는 경우 Azure IaaS 가상 머신의 재해 복구를 위해 복제를 사용하도록 설정합니다. 자세히 알아보기. |
관리 ID 기반의 신뢰할 수 있는 액세스
다음 표에서는 해당 서비스의 리소스 인스턴스에 적절한 권한이 있는 경우 스토리지 계정 데이터에 액세스할 수 있는 서비스를 나열합니다.
서비스 | 리소스 공급자 이름 | 목적 |
---|---|---|
Azure FarmBeats | Microsoft.AgFoodPlatform/farmBeats |
스토리지 계정에 액세스할 수 있습니다. |
Azure API Management | Microsoft.ApiManagement/service |
정책을 통해 방화벽 뒤의 스토리지 계정에 액세스할 수 있습니다. 자세히 알아보기. |
Microsoft 자율 시스템 | Microsoft.AutonomousSystems/workspaces |
스토리지 계정에 액세스할 수 있습니다. |
Azure Cache for Redis | Microsoft.Cache/Redis |
스토리지 계정에 액세스할 수 있습니다. 자세히 알아보기. |
Azure AI 검색 | Microsoft.Search/searchServices |
인덱싱, 처리 및 쿼리를 위해 스토리지 계정에 액세스할 수 있습니다. |
Azure AI 서비스 | Microsoft.CognitiveService/accounts |
스토리지 계정에 액세스할 수 있습니다. 자세히 알아보기. |
Azure Container Registry | Microsoft.ContainerRegistry/registries |
ACR Tasks 기능 모음을 통해 컨테이너 이미지를 빌드할 때 스토리지 계정에 액세스할 수 있습니다. |
Microsoft Cost Management | Microsoft.CostManagementExports |
방화벽 뒤에 있는 스토리지 계정으로 내보낼 수 있도록 합니다. 자세히 알아보기. |
Azure Databricks | Microsoft.Databricks/accessConnectors |
스토리지 계정에 액세스할 수 있습니다. |
Azure Data Factory | Microsoft.DataFactory/factories |
Data Factory 런타임을 통해 스토리지 계정에 액세스할 수 있습니다. |
Azure Backup 자격 증명 모음 | Microsoft.DataProtection/BackupVaults |
스토리지 계정에 액세스할 수 있습니다. |
Azure Data Share | Microsoft.DataShare/accounts |
스토리지 계정에 액세스할 수 있습니다. |
Azure Database for PostgreSQL | Microsoft.DBForPostgreSQL |
스토리지 계정에 액세스할 수 있습니다. |
Azure IoT Hub | Microsoft.Devices/IotHubs |
IoT Hub의 데이터를 Blob 스토리지에 쓸 수 있습니다. 자세히 알아보기. |
Azure DevTest Labs | Microsoft.DevTestLab/labs |
스토리지 계정에 액세스할 수 있습니다. |
Azure Event Grid | Microsoft.EventGrid/domains |
스토리지 계정에 액세스할 수 있습니다. |
Azure Event Grid | Microsoft.EventGrid/partnerTopics |
스토리지 계정에 액세스할 수 있습니다. |
Azure Event Grid | Microsoft.EventGrid/systemTopics |
스토리지 계정에 액세스할 수 있습니다. |
Azure Event Grid | Microsoft.EventGrid/topics |
스토리지 계정에 액세스할 수 있습니다. |
Microsoft Fabric | Microsoft.Fabric |
스토리지 계정에 액세스할 수 있습니다. |
Azure Healthcare API | Microsoft.HealthcareApis/services |
스토리지 계정에 액세스할 수 있습니다. |
Azure Healthcare API | Microsoft.HealthcareApis/workspaces |
스토리지 계정에 액세스할 수 있습니다. |
Azure IoT Central | Microsoft.IoTCentral/IoTApps |
스토리지 계정에 액세스할 수 있습니다. |
Azure Key Vault 관리형 HSM | Microsoft.keyvault/managedHSMs |
스토리지 계정에 액세스할 수 있습니다. |
Azure Logic Apps | Microsoft.Logic/integrationAccounts |
논리 앱을 사용하여 스토리지 계정에 액세스할 수 있습니다. 자세히 알아보기. |
Azure Logic Apps | Microsoft.Logic/workflows |
논리 앱을 사용하여 스토리지 계정에 액세스할 수 있습니다. 자세히 알아보기. |
Azure Machine Learning 스튜디오 | Microsoft.MachineLearning/registries |
권한 있는 Azure Machine Learning 작업 영역에서 실험 출력, 모델 및 로그를 Blob Storage에 쓰고 데이터를 읽을 수 있도록 합니다. 자세히 알아보기. |
Azure Machine Learning | Microsoft.MachineLearningServices |
권한 있는 Azure Machine Learning 작업 영역에서 실험 출력, 모델 및 로그를 Blob Storage에 쓰고 데이터를 읽을 수 있도록 합니다. 자세히 알아보기. |
Azure Machine Learning | Microsoft.MachineLearningServices/workspaces |
권한 있는 Azure Machine Learning 작업 영역에서 실험 출력, 모델 및 로그를 Blob Storage에 쓰고 데이터를 읽을 수 있도록 합니다. 자세히 알아보기. |
Azure Media Services | Microsoft.Media/mediaservices |
스토리지 계정에 액세스할 수 있습니다. |
Azure Migrate | Microsoft.Migrate/migrateprojects |
스토리지 계정에 액세스할 수 있습니다. |
Azure ExpressRoute | Microsoft.Network/expressRoutePorts |
스토리지 계정에 액세스할 수 있습니다. |
Microsoft Power Platform | Microsoft.PowerPlatform/enterprisePolicies |
스토리지 계정에 액세스할 수 있습니다. |
Microsoft Project Arcadia | Microsoft.ProjectArcadia/workspaces |
스토리지 계정에 액세스할 수 있습니다. |
Azure Data Catalog | Microsoft.ProjectBabylon/accounts |
스토리지 계정에 액세스할 수 있습니다. |
Microsoft Purview | Microsoft.Purview/accounts |
스토리지 계정에 액세스할 수 있습니다. |
Azure Site Recovery | Microsoft.RecoveryServices/vaults |
스토리지 계정에 액세스할 수 있습니다. |
Security Center | Microsoft.Security/dataScanners |
스토리지 계정에 액세스할 수 있습니다. |
Singularity | Microsoft.Singularity/accounts |
스토리지 계정에 액세스할 수 있습니다. |
Azure SQL Database | Microsoft.Sql |
방화벽 뒤에 있는 스토리지 계정에 감사 데이터를 쓸 수 있습니다. |
Azure SQL Servers | Microsoft.Sql/servers |
방화벽 뒤에 있는 스토리지 계정에 감사 데이터를 쓸 수 있습니다. |
Azure Synapse Analytics | Microsoft.Sql |
(전용 풀에서) COPY 문 또는 PolyBase를 통해 또는 서버리스 풀에서 openrowset 함수와 외부 테이블을 통해 특정 SQL 데이터베이스에서 데이터를 가져오고 내보낼 수 있습니다. 자세히 알아보기. |
Azure Stream Analytics | Microsoft.StreamAnalytics |
스트리밍 작업의 데이터를 Blob Storage에 쓸 수 있습니다. 자세히 알아보기. |
Azure Stream Analytics | Microsoft.StreamAnalytics/streamingjobs |
스트리밍 작업의 데이터를 Blob Storage에 쓸 수 있습니다. 자세히 알아보기. |
Azure Synapse Analytics | Microsoft.Synapse/workspaces |
Azure Blob Storage의 데이터에 액세스할 수 있습니다. |
Azure Video Indexer | Microsoft.VideoIndexer/Accounts |
스토리지 계정에 액세스할 수 있습니다. |
계정에 계층 구조 네임스페이스 기능을 사용하도록 설정하지 않은 경우 각 리소스 인스턴스의 관리 ID에 명시적으로 Azure 역할을 할당하여 권한을 부여할 수 있습니다. 이 경우 인스턴스에 대한 액세스 범위는 관리 ID에 할당된 Azure 역할에 해당합니다.
계층 구조 네임스페이스 기능이 사용하도록 설정된 계정에 대해 동일한 방법을 사용할 수 있습니다. 그러나 스토리지 계정에 포함된 디렉터리 또는 Blob의 ACL(액세스 제어 목록)에 관리 ID를 추가하는 경우에는 Azure 역할을 할당할 필요가 없습니다. 이 경우 인스턴스의 액세스 범위는 관리 ID가 액세스할 수 있는 디렉터리나 파일에 해당합니다.
Azure 역할과 ACL을 결합하여 액세스 권한을 부여할 수도 있습니다. 자세한 정보는 Azure Data Lake Storage의 액세스 제어 모델을 참조하세요.
리소스 인스턴스 규칙을 사용하여 특정 리소스에 액세스 권한을 부여하는 것이 좋습니다.
예외 관리
스토리지 분석처럼, 경우에 따라 네트워크 경계 밖에서 리소스 로그 및 메트릭을 읽을 수 있는 권한이 필요합니다. 스토리지 계정에 액세스하기 위한 신뢰할 수 있는 서비스를 구성하는 경우, 네트워크 규칙 예외를 만들어서 로그 파일, 메트릭 테이블 또는 양쪽 다에 대하여 읽기 액세스를 허용할 수 있습니다. Azure Portal, PowerShell 또는 Azure CLI v2를 통해 네트워크 규칙 예외를 관리할 수 있습니다.
스토리지 분석 작업에 대한 자세한 내용은 Azure Storage 분석을 사용하여 로그 및 메트릭 데이터 수집을 참조하세요.
예외를 관리하려는 스토리지 계정으로 이동합니다.
서비스 메뉴의 보안 + 네트워킹에서 네트워킹을 선택합니다.
선택한 가상 네트워크 및 IP 주소에서 공용 네트워크 액세스를 사용하도록 선택했는지 확인합니다.
예외 아래에서 권한을 부여할 예외를 선택합니다.
저장을 선택하여 변경 내용을 적용합니다.
다음 단계
- Azure 네트워크 서비스 엔드포인트에 대한 자세한 내용.
- Azure Blob Storage에 대한 보안 권장 사항을 자세히 살펴봅니다.