Azure Functions에서 보안 스토리지 계정을 사용하는 방법
이 문서에서는 함수 앱을 보안 스토리지 계정에 연결하는 방법을 보여 줍니다. 인바운드 및 아웃바운드 액세스 제한이 있는 함수 앱을 만드는 방법에 대해 자세히 알아보려면 가상 네트워크 통합 자습서를 참조하세요. Azure Functions 및 네트워킹에 대해 자세히 알아보려면 Azure Functions 네트워킹 옵션을 참조하세요.
가상 네트워크에 대한 스토리지 계정 제한
함수 앱을 만들 때 새 스토리지 계정을 만들거나 기존 스토리지 계정에 연결합니다. 현재 Azure Portal, ARM 템플릿 배포, Bicep 배포만 기존 보안 스토리지 계정으로 함수 앱 만들기를 지원합니다.
참고 항목
보안 스토리지 계정은 전용(App Service) 플랜 및 탄력적 프리미엄 플랜의 모든 계층에 대해 지원됩니다. Flex 사용량 플랜에서도 지원됩니다. 소비 계획은 가상 네트워크를 지원하지 않습니다.
스토리지 계정에 대한 모든 제한 사항 목록은 스토리지 계정 요구 사항을 참조하세요.
함수 앱을 만드는 동안 스토리지 보호
가상 네트워크로 보호되는 새 스토리지 계정과 함께 함수 앱을 만들 수 있습니다. 다음 섹션에서는 Azure Portal을 사용하거나 배포 템플릿을 사용하여 이러한 리소스를 만드는 방법을 보여 줍니다.
프리미엄 플랜의 함수 앱 만들기 단계를 완료하세요. 가상 네트워킹 자습서의 이 섹션에서는 프라이빗 엔드포인트를 통해 스토리지에 연결하는 함수 앱을 만드는 방법을 설명합니다.
참고 항목
Azure Portal에서 함수 앱을 만들 때 스토리지 탭에서 기존 보안 스토리지 계정을 선택할 수도 있습니다. 그러나 스토리지 계정을 보호하는 데 사용되는 가상 네트워크를 통해 연결할 수 있도록 함수 앱에서 적절한 네트워킹을 구성해야 합니다. 네트워킹을 구성할 권한이 없거나 네트워크를 완전히 준비하지 않은 경우 네트워킹 탭에서 네트워킹 만들기 후 구성을 선택하세요. Portal의 설정>네트워킹에서 새 함수 앱에 대한 네트워킹을 구성할 수 있습니다.
기존 함수 앱에 대한 보안 스토리지
기존 함수 앱이 있는 경우 앱에서 사용하는 스토리지 계정에서 네트워킹을 직접 구성할 수 있습니다. 그러나 이 프로세스로 인해 네트워킹을 구성하는 동안, 그리고 함수 앱이 다시 시작되는 동안 함수 앱이 중단됩니다.
가동 중지 시간을 최소화하기 위해 새 보안 스토리지 계정을 기존 스토리지 계정과 교체할 수 있습니다.
1. 가상 네트워크 통합 사용
필수 조건으로 함수 앱에 가상 네트워크 통합을 사용하도록 설정해야 합니다.
서비스 엔드포인트 또는 프라이빗 엔드포인트가 사용하도록 설정되지 않은 스토리지 계정이 있는 함수 앱을 선택합니다.
함수 앱을 가상 네트워크 통합을 사용하도록 설정합니다.
2. 보안 스토리지 계정 만들기
함수 앱에 대한 보안 스토리지 계정을 설정합니다.
두 번째 스토리지 계정을 만듭니다. 이 스토리지 계정은 원래의 보호되지 않은 스토리지 계정 대신 함수 앱에서 사용할 보안 스토리지 계정입니다. Functions에서 아직 사용하지 않는 기존 스토리지 계정을 사용할 수도 있습니다.
나중에 사용할 수 있도록 이 스토리지 계정의 연결 문자열을 저장하세요.
새 스토리지 계정에서 파일 공유를 만듭니다. 편의를 위해 원래 스토리지 계정의 파일 공유 이름과 동일한 이름을 사용할 수 있습니다. 그러지 않고 새 파일 공유 이름을 사용하는 경우 앱 설정을 업데이트해야 합니다.
다음 방법 중 하나로 새 스토리지 계정을 보호합니다.
프라이빗 엔드포인트 만들기 프라이빗 엔드포인트 연결을 설정할 때
file
및blob
하위 리소스에 대한 프라이빗 엔드포인트를 만듭니다. Durable Functions의 경우 프라이빗 엔드포인트를 통해queue
및table
하위 리소스에 액세스할 수 있도록 해야 합니다. 사용자 지정 또는 온-프레미스 DNS(Domain Name System) 서버를 사용하는 경우 새 프라이빗 엔드포인트를 확인하도록 DNS 서버를 구성합니다.특정 서브넷으로 트래픽을 제한합니다. 함수 앱이 허용된 서브넷과 네트워크 통합되어 있고 서브넷에
Microsoft.Storage
에 대한 서비스 엔드포인트가 있는지 확인합니다.
파일 및 Blob 콘텐츠를 함수 앱에서 사용되는 현재 스토리지 계정에서 새 보안 스토리지 계정 및 파일 공유로 복사합니다. AzCopy 및 Azure Storage Explorer는 일반적인 방법입니다. Azure Storage Explorer를 사용하는 경우 스토리지 계정의 방화벽에 대한 클라이언트 IP 주소 액세스를 허용해야 할 수 있습니다.
이제 새로 보안된 스토리지 계정과 통신하도록 함수 앱을 구성할 준비가 되었습니다.
3. 애플리케이션 및 구성 라우팅 사용
참고 항목
이러한 구성 단계는 탄력적 프리미엄 및 전용(App Service) 호스팅 플랜에만 필요합니다. 유연한 사용량 계획에는 네트워킹을 구성하는 데 사이트 설정이 필요하지 않습니다.
이제 가상 네트워크를 통과하도록 함수 앱의 트래픽을 라우팅할 준비가 되었습니다.
애플리케이션 라우팅을 활성화하여 앱의 트래픽을 가상 네트워크로 라우팅합니다.
함수 앱에서 설정을 확장한 다음 네트워킹을 선택합니다. 네트워킹 페이지의 아웃바운드 트래픽 구성 아래에서 가상 네트워크 통합과 연결된 서브넷을 선택합니다.
새 페이지의 애플리케이션 라우팅에서 아웃바운드 인터넷 트래픽을 선택합니다.
콘텐츠 공유 라우팅을 사용하도록 설정하여 함수 앱이 가상 네트워크를 통해 새 스토리지 계정과 통신할 수 있도록 합니다. 이전 단계와 동일한 페이지의 구성 라우팅에서 콘텐츠 스토리지를 선택합니다.
참고 항목
동일한 플랜에서 여러 함수 앱이 공유하는 스토리지 계정의 콘텐츠 공유로 라우팅할 때는 특별히 주의해야 합니다. 자세한 내용은 스토리지 고려 사항 문서에서 가상 네트워크를 통한 일관된 라우팅을 참조하세요.
4. 애플리케이션 설정 업데이트
마지막으로 새 보안 스토리지 계정을 가리키도록 애플리케이션 설정을 업데이트해야 합니다.
함수 앱에서 설정을 확장한 다음 환경 변수를 선택합니다.
앱 설정 탭에서 각 설정을 선택하고 편집한 다음 적용을 선택하여 다음 설정을 업데이트합니다.
설정 이름 값 설명 AzureWebJobsStorage
스토리지 연결 문자열 이전에 저장해 둔 새 보안 스토리지 계정의 연결 문자열을 사용합니다. WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
스토리지 연결 문자열 이전에 저장해 둔 새 보안 스토리지 계정의 연결 문자열을 사용합니다. WEBSITE_CONTENTSHARE
파일 공유 프로젝트 배포 파일이 있는 보안 스토리지 계정에 생성된 파일 공유의 이름을 사용합니다. 적용을 선택한 다음 확인을 눌러 함수 앱에 새 애플리케이션 설정을 저장합니다.
함수 앱이 다시 시작됩니다.
함수 앱의 다시 시작이 완료되면 보안 스토리지 계정에 연결됩니다.