Azure Synapse Analytics 보안 백서: 액세스 제어

참고 항목

이 문서는 Azure Synapse Analytics 보안 백서 문서 시리즈의 일부를 구성합니다. 이 시리즈에 대한 개요는 Azure Synapse Analytics 보안 백서를 참조하세요.

데이터가 모델링 및 저장되는 방식에 따라 데이터 거버넌스 및 액세스 제어를 위해 개발자와 보안 관리자는 강력한 보안 기반을 구현하기 위해 다양한 접근 방식 또는 기술 조합을 사용해야 할 수도 있습니다.

Azure Synapse는 데이터에 액세스할 수 있는 사용자를 제어하는 다양한 기능을 지원합니다. 이러한 기능은 다음을 포함한 일련의 고급 액세스 제어 기능을 기반으로 합니다.

개체 수준 보안

전용 SQL 풀의 모든 개체에는 보안 주체에 부여할 수 있는 관련 권한이 있습니다. 사용자 및 서비스 계정의 컨텍스트에서 이것이 개별 테이블, 뷰, 저장 프로시저, 함수를 보호하는 방식입니다. SELECT와 같은 개체 권한은 사용자 계정(SQL 로그인, Microsoft Entra 사용자 또는 그룹)과 데이터베이스 역할에 부여할 수 있으므로 데이터베이스 관리자에게 유연성을 제공합니다. 또한 테이블 및 뷰에 부여된 사용 권한을 열 수준 보안, 행 수준 보안 및 동적 데이터 마스킹과 같은 다른 액세스 제어 메커니즘(아래에 설명됨)과 결합할 수 있습니다.

Azure Synapse에서 모든 권한은 데이터베이스 수준 사용자 및 역할에 부여됩니다. 또한 작업 영역 수준에서 기본 제공 Synapse 관리자 RBAC 역할이 부여된 모든 사용자에게는 모든 전용 SQL 풀에 대한 전체 액세스 권한이 자동으로 부여됩니다.

Azure Synapse에서 SQL 테이블을 보호하는 것 외에도 전용 SQL 풀(이전의 SQL DW), 서버리스 SQL 풀 및 Spark 테이블도 보호할 수 있습니다. 기본적으로 작업 영역에 연결된 데이터 레이크의 Storage Blob 데이터 기여자 역할에 할당된 사용자는 사용자가 Notebook에서 코드를 대화형으로 실행할 때 모든 Spark 생성 테이블에 대한 READ, WRITE 및 EXECUTE 권한을 갖습니다. 이를 Microsoft Entra 통과라고 하며 작업 영역에 연결된 모든 데이터 레이크에 적용됩니다. 하지만 동일한 사용자가 파이프라인을 통해 동일한 Notebook을 실행하는 경우 작업 영역 MSI(관리 서비스 ID)가 인증에 사용됩니다. 따라서 파이프라인이 작업 영역 MSI를 성공적으로 실행하려면 액세스되는 데이터 레이크의 Storage Blob 데이터 기여자 역할에도 속해야 합니다.

행 수준 보안

행 수준 보안을 통해 보안 관리자는 쿼리를 실행하는 사용자(또는 프로세스)의 프로필을 기반으로 특정 테이블 행에 대한 세분화된 액세스를 설정하고 제어할 수 있습니다. 프로필 또는 사용자 특성은 그룹 멤버 자격 또는 실행 컨텍스트를 참조할 수 있습니다. 행 수준 보안은 사용자가 동일한 테이블에서 데이터를 쿼리하지만 다른 데이터 하위 집합을 확인해야 하는 경우 무단 액세스를 방지하는 데 도움이 됩니다.

참고 항목

행 수준 보안은 Azure Synapse 및 전용 SQL 풀(이전의 SQL DW)에서 지원되지만 Apache Spark 풀 및 서버리스 SQL 풀에서는 지원되지 않습니다.

열 수준 보안

열 수준 보안을 통해 보안 관리자는 테이블의 중요한 열에 액세스할 수 있는 사용자를 제한하는 권한을 설정할 수 있습니다. 데이터베이스 수준에서 설정되며 데이터 모델 또는 애플리케이션 계층의 디자인을 변경할 필요 없이 구현할 수 있습니다.

참고 항목

열 수준 보안은 Azure Synapse, 서버리스 SQL 풀 뷰 및 전용 SQL 풀(이전의 SQL DW)에서 지원되지만 서버리스 SQL 풀 외부 테이블 및 Apache Spark 풀에는 지원되지 않습니다. 서버리스 SQL 풀 외부 테이블의 경우 외부 테이블 위에 보기를 만들어 해결 방법을 적용할 수 있습니다.

동적 데이터 마스킹

동적 데이터 마스킹을 사용하면 보안 관리자가 읽기 시 권한이 없는 사용자에게 중요한 데이터를 마스킹하여 노출을 제한할 수 있습니다. 관리자가 쿼리 시 데이터가 표시되는 방식을 결정할 수 있도록 하여 중요한 데이터에 대한 무단 액세스를 방지하는 데 도움이 됩니다. SQL 풀에서 인증된 사용자의 ID 및 해당 그룹 할당을 기반으로 쿼리는 마스킹되거나 마스킹되지 않은 데이터를 반환합니다. 마스킹은 데이터가 테이블에서 직접 액세스되는지 또는 뷰 또는 저장 프로시저를 사용하여 액세스되는지 여부에 관계없이 항상 적용됩니다.

참고 항목

동적 데이터 마스킹은 Azure Synapse 및 전용 SQL 풀(이전 SQL DW)에서 지원되지만 Apache Spark 풀 및 서버리스 SQL 풀에서는 지원되지 않습니다.

Synapse 역할 기반 액세스 제어

Azure Synapse에는 Synapse Studio의 다양한 측면을 관리하는 Synapse RBAC(역할 기반 액세스 제어) 역할도 포함되어 있습니다. 이러한 기본 제공 역할을 활용하여 사용자, 그룹 또는 기타 보안 주체에게 권한을 할당하여 다음을 수행할 수 있는 사용자를 관리합니다.

  • 코드 아티팩트를 게시하고 게시된 코드 아티팩트를 나열하거나 액세스합니다.
  • Apache Spark 풀 및 통합 런타임에서 코드를 실행합니다.
  • 자격 증명으로 보호되는 연결된(데이터) 서비스에 액세스합니다.
  • 작업 실행을 모니터링하거나 취소하고, 작업 출력 및 실행 로그를 검토합니다.

다음 단계

이 백서 시리즈의 다음 문서에서는 인증에 대해 알아봅니다.