다음을 통해 공유


Azure Synapse Analytics Apache Spark 풀 스토리지 액세스 문제 해결

적용 대상: Azure Synapse Analytics

Apache Spark는 빅 데이터 분석 애플리케이션의 성능을 향상하기 위해 메모리 내 처리를 지원해주는 병렬 처리 프레임워크입니다. Azure Synapse Analytics의 Apache Spark는 클라우드에서 Apache Spark의 Microsoft 구현 중 하나입니다. Azure Synapse를 사용하면 Azure에서 서버리스 Apache Spark 풀을 쉽게 만들고 구성할 수 있습니다. Azure Synapse의 Spark 풀은 Azure Storage 및 Azure Data Lake 2세대 스토리지와 호환됩니다. 따라서 Spark 풀을 사용하여 Azure에 저장된 데이터를 처리할 수 있습니다.

"403" 오류 또는 Synapse 작업 영역의 실패와 같은 풀 스토리지 액세스 문제가 발생한 경우 제공된 지침을 사용하여 문제를 해결합니다.

지원되지 않는 시나리오

다음 사용 사례는 Synapse Spark 풀에서 Storage 계정에 연결할 때 지원되지 않습니다.

  • ADLS Gen 1 Storage 계정에 연결
  • 사용자가 할당한 관리 ID를 사용하여 ADLS Gen 2 Storage 계정에 연결
  • 다음이 있는 ADLS Gen 2 Storage 계정에 연결
    • 공유 VNET Synapse 작업 영역
    • 방화벽 사용 스토리지 계정

일반적인 문제 및 솔루션

Error 솔루션
"errorMessage":"LSRServiceException은 [{"StatusCode":400,"ErrorResponse":{"code":"LSRLinkedServiceFailure","message":"Linked Service AzureDataLakeStorage1을 찾을 수 없습니다. 이 오류는 Synapse 작업 영역이 Git 리포지토리, Azure DevOps Services 또는 GitHub와 연결된 경우 생성됩니다. Notebook 또는 연결된 서비스와 같은 아티팩트가 게시되지 않은 경우에도 생성됩니다.

협업 분기의 코드 변경 내용을 Synapse 서비스에 수동으로 게시합니다.
stdout: 스레드 "main" org.apache.hadoop.fs.FileAlreadyExistsException의 예외: 작업 실패:"이 엔드포인트는 BlobStorageEvents 또는 SoftDelete를 지원하지 않습니다. 이 엔드포인트를 사용하려는 경우 이러한 계정 기능을 사용하지 않도록 설정합니다.", 409, HEAD, https://< storageaccountname.dfs.core.windows.net/scripts/?upn=false&action=getAccessControl&timeout=90> ADLS Gen 2 스토리지가 기본 스토리지구성되었는지 확인합니다.

SoftDelete를 사용하지 않도록 설정하려면 스토리지 계정에 대한 Blob 일시 삭제 사용 확인란의 선택을 취소합니다.

'403' 문제 해결

스토리지 액세스 및 액세스하는 계정

  • 파이프라인을 통해 스토리지에 쓰기 위해 Synapse 작업 영역 MSI는 스토리지에서 읽기, 쓰기 및 삭제와 같은 모든 작업을 실행하는 보안 주체입니다.
    • 작업 영역 MSI 계정에 모든 작업을 수행할 스토리지 Blob 데이터 기여자 역할이 있는지 확인합니다.
  • Azure Notebooks를 사용하여 스토리지 계정에 액세스하는 경우 연결된 서비스를 통해 스토리지에 액세스하지 않는 한 로그인한 계정을 사용합니다.
    • 로그인한 사용자 계정에는 모든 액세스 권한과 권한이 있는 Storage Blob 데이터 기여자 역할이 있어야 합니다.
  • 스토리지에 연결하려면 연결된 서비스 및 서비스 주체 인증을 사용합니다. 그런 다음, Azure Active에 등록된 애플리케이션에 Azure Storage에 "Storage Blob 데이터 기여자"를 할당해야 합니다.

스토리지에서 RBAC(역할 기반 액세스 제어) 구현의 경우 세부 정보는 컨테이너 수준에서 제어됩니다. 자세한 내용은 Azure Data Lake Storage Gen2의 액세스 제어 모델을 참조하세요.

Azure 역할 기반 Access Control

Azure 역할 기반 액세스 제어는 역할 할당을 사용하여 Microsoft Entra ID의 Synapse 작업 영역 MSI, 로그인한 사용자 또는 애플리케이션 레지스터와 같은 보안 주체에 사용 권한 집합을 적용합니다. 소유자, 기여자, 읽기 권한자 및 스토리지 계정 기여자와 같은 역할은 보안 주체가 스토리지 계정을 관리할 수 있도록 합니다.

액세스 제어 목록

ACL(액세스 제어 목록)을 사용하여 디렉터리 및 파일에 대한 자세한 액세스 수준을 적용합니다.

  • 스토리지 Blob 데이터 판독기 또는 스토리지 Blob 데이터 기여자와 같은 데이터 액세스 역할이 보안 주체에 대해 발견되면 역할에 쓰기, 읽기 및 삭제와 같은 작업을 수행할 수 있는 권한이 있는지 확인하기 위해 검사가 실행됩니다. 이 경우 보안 주체는 컨테이너 역할에 따라 모든 파일 및 폴더에 액세스할 수 있습니다.
    • 파일 또는 폴더에 대한 추가 ACL 검사는 없습니다.
  • 스토리지 컨테이너 수준에서 보안 주체에 대한 데이터 액세스 역할을 찾을 수 없는 경우 ACL 검사는 파일 및 폴더에서 실행됩니다.

리소스