적용 대상:SQL Server
최소 권한의 정보 보안 원칙은 계정 및 애플리케이션에 필요한 데이터 및 작업에 대한 액세스 권한만 부여해야 한다는 사실을 확인합니다. Azure Arc에서 SQL Server를 사용하도록 설정하면 최소 권한으로 에이전트 확장 서비스를 실행할 수 있습니다. 이 문서에서는 최소 권한으로 에이전트 확장 서비스를 실행하는 방법을 설명합니다.
SQL Server용 Azure 확장에 대한 Windows 서비스 계정 및 사용 권한 구성은 에이전트 확장 서비스에 대한 최소 권한 사용 권한을 설명합니다.
최소 권한 설정이 기본적으로 활성화되어 있습니다
최소 권한은 기본적으로 Azure Extension for SQL Server 버전에서 활성화되어 있습니다:
- 버전 1.1.3453.436
- 버전 1.1.3518.465 및 이후 버전
최소 권한은 1.1.3453.436 이전 버전이나 1.1.3464.439, 1.1.3494.451, 1.1.3500.453 버전에서는 기본적으로 활성화되지 않습니다. 이 버전들의 경우, 이 글의 단계를 따라 수동으로 최소 권한 설정을 활성화하세요.
참고
1.1.2859.223 이상 버전을 사용하는 기존 서버에서 자동 업그레이드가 활성화되어 있으면, 자동 업그레이드의 일부로 최소 권한 구성이 최종적으로 적용됩니다. 최소 권한 구성 자동 적용을 방지하기 위해 . 이후 확장 업그레이드를 1.1.2859.223차단하세요.
최소 권한이 활성화되면 SQL Server용 Azure 확장 프로그램이 자동으로 로컬 Windows 서비스 계정과 SQL Server 로그인으로 생성 및 관리 NT SERVICE\SqlServerExtension 합니다:
- 확장 프로그램은 계정에 구성 로그를 읽고 저장하며 쓰는 데 필요한 Windows 권한만 부여합니다.
- 확장 프로그램은 활성화된 기능에 필요한 최소 SQL Server 권한을 로그인에 부여합니다.
- 확장 프로그램은 권한이 더 이상 필요하지 않을 때, 예를 들어 기능을 비활성화하면 해당 권한을 철회합니다.
- 확장 프로그램은 SQL Server용 Azure 확장 기능을 제거하거나 최소 권한을 비활성화하면 계정을 제거합니다.
필수 조건
이 섹션에서는 최소 권한 기능을 활성화하거나 비활성화하는 데 필요한 시스템 요구사항과 도구를 식별합니다.
시스템 요구 사항
최소 권한 설정에는 다음이 필요합니다:
- Windows Server 2016 또는 그 이후 버전.
- SQL Server 2014 (12.x) 또는 그 이후 버전.
- SQL Server 서비스 계정은 sysadmin 고정 서버 역할의 멤버여야 합니다.
- 모든 데이터베이스는 온라인이어야 하며 최신 상태로 유지되어야 합니다.
현재 Linux에서는 최소 권한을 지원하지 않습니다.
도구
이 문서의 단계를 완료하려면 다음 도구가 필요합니다.
- Azure CLI
-
arcdataAzure CLI 확장 버전1.5.9이상 - SQL Server 버전
1.1.2859.223또는 이후 버전용 Azure 확장 기능을 사용해 최소 권한을 수동으로 활성화할 수 있습니다.
최소 권한 활성화 또는 비활성화
Azure CLI로 로그인
az loginarcdata확장 버전을 확인합니다.az extension list -o table결과에 지원되는 버전
arcdata이 포함된 경우 다음 단계로 건너뜁니다.필요하다면
arcdataAzure CLI 확장을 설치하거나 업데이트합니다.확장을 설치하기 위해:
az extension add --name arcdata확장을 업데이트하려면
az extension update --name arcdataAzure CLI를 사용하여 최소 권한을 사용하도록 설정합니다.
최소 권한을 사용하려면
LeastPrivilege기능 플래그를true로 설정합니다. 비활성화하려면 feature flag를 . 로 설정하세요.false이 작업을 완료하려면<machine-name>및<resource-group>에 해당하는 값을 사용하여 다음 명령을 실행하세요.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group <resource-group> --machine-name <machine-name>예를 들어 다음 명령은
myserver로 명명된 리소스 그룹에서myrg라고 이름이 지정된 서버에 대해 최소 권한을 사용하도록 설정합니다.az sql server-arc extension feature-flag set --name LeastPrivilege --enable true --resource-group myrg --machine-name myserver
최소 권한 구성 확인
Azure Arc 지원 SQL Server가 최소 권한으로 실행되도록 구성되어 있는지 확인하려면 다음을 수행합니다.
서비스에서 Microsoft SQL Server 확장 서비스를 찾으세요. 서비스가
NT SERVICE\SqlServerExtension서비스 계정으로 실행되는지 확인하세요.서버에서 작업 스케줄러 를 열어보세요.
Microsoft\SqlServerExtension아래에SqlServerExtensionPermissionProvider라는 이벤트 기반 작업이 있는지 확인합니다.SQL Server Management Studio를 열고
NT SERVICE\SqlServerExtension이름이 지정된 로그인을 검사합니다. 계정에 다음과 같은 기본 권한이 할당되어 있는지 확인하세요:CONNECT SQLVIEW DATABASE STATEVIEW SERVER STATE
다음 쿼리를 사용하여 사용 권한을 확인합니다.
서버 수준 권한을 확인하려면 다음 쿼리를 실행합니다.
EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; SELECT * FROM fn_my_permissions(NULL, 'SERVER'); REVERT;데이터베이스 수준 권한을
<database-name>확인하려면 데이터베이스 중 하나의 이름으로 바꾸고 다음 쿼리를 실행합니다.EXECUTE AS LOGIN = 'NT SERVICE\SqlServerExtension'; USE [<database-name>]; SELECT * FROM fn_my_permissions(NULL, 'database'); REVERT;
선택사항: SQL Server 데이터베이스 엔진 서비스 계정 관리
대부분의 환경에서 기본 서비스 계정 설정을 사용하세요. 확장 작업 사이에 시스템 관리자 고정 서버 역할에서 SQL Server 데이터베이스 엔진 서비스 계정을 제거해야 할 때만 다음 절차를 사용하세요.
최소 권한 모드를 사용하려면 SQL Server 데이터베이스 엔진 서비스 계정이 각 SQL Server 인스턴스의 시스템 관리자 고정 서버 역할의 멤버여야 합니다. 이 회원 자격을 통해 시스템이 권한을 자동으로 부여하거나 취소할 수 있습니다. 기본적으로 SQL Server 데이터베이스 엔진 서비스 계정은 시스템 관리자 고정 서버 역할의 구성원입니다.
SQL Server용 Azure 확장은 다음과 같은 임시 프로세스를 Deployer.exeNT AUTHORITY\SYSTEM 실행합니다:
- 기능을 활성화하거나 비활성화할 수 있습니다
- SQL Server 인스턴스를 추가하거나 제거합니다
- 확장 프로그램을 설치하거나 업그레이드하면 됩니다
Deployer.exe SQL Server에 연결할 때 SQL Server 서비스 계정 역할을 모방합니다. 연결되면 사용하거나 사용하지 않도록 설정된 기능에 따라 서버 및 데이터베이스 역할의 사용 권한을 추가하거나 제거합니다. 이 프로세스를 통해 SQL Server Azure 확장에서 필요한 최소 권한을 사용합니다.
SQL Server 서비스 계정이 항상 sysadmin 고정 서버 역할의 멤버가 되지 않도록 더 많은 제어로 이 프로세스를 관리하려면 다음 단계를 수행합니다.
- 확장 프로그램을 설치하거나 업그레이드하거나, 기능을 활성화하거나 비활성화하거나, SQL Server 인스턴스를 추가하거나 제거하기 전에, 임시로 SQL Server 데이터베이스 엔진 서비스 계정을 시스템 관리자 고정 서버 역할에 추가하세요.
-
Deployer.exe의 사용 권한이 설정되도록 하려면 최소한 한 번 실행하십시오. - sysadmin 고정 서버 역할에서 SQL Server 서비스 계정을 제거합니다.
확장 프로그램을 설치하거나 업그레이드하거나, 기능을 활성화하거나 비활성화하거나, SQL Server 인스턴스를 추가하거나 제거할 때마다 이 과정을 반복하세요. 이 절차는 필요한 최소한의 권한을 부여할 수 있게 해 Deployer.exe 줍니다.
확장 업그레이드마다 이 절차를 반복해야 하므로 자동 업그레이드를 비활성화하는 것을 고려해 보세요. 그 후 스크립트를 사용해 이 단계를 수행하고 확장 기능을 업그레이드할 수 있습니다.
Important
SQL Server에 대한 Azure 확장 Deployer.exe은 NT AUTHORITY\SYSTEM가 CONNECT SQL 모드와 standard 모드 모두에서 least privilege 권한으로 SQL Server에 연결할 수 있어야 합니다. 이 요구 사항은 프로비전 후 확장에서 어떤 서비스 계정을 사용하든지 상관없이 Deployer.exe가 항상 LocalSystem 계정에서 실행되기 때문에 존재합니다.
NT AUTHORITY\SYSTEM SQL Server 연결할 수 없는 경우 Deployer.exeNT SERVICE\SqlServerExtension 로그인을 만들거나 필요한 권한을 부여할 수 없습니다. 최소 권한 모드를 사용하도록 설정하기 전에 NT AUTHORITY\SYSTEMCONNECT SQL 권한이 있는 활성 SQL Server 로그인이 있는지 확인합니다. 확인을 위해 Prerequisites를 참조하세요.
SQL Server 데이터베이스 엔진 서비스 계정에 시스템 관리자 고정 서버 역할이 없으면 적시 권한을 부여할 수 없습니다.
이러한 권한이 언제 사용되는지에 대한 자세한 내용은 SQL Server 확장Windows Azure 서비스 계정 및 권한 설정 항목을 참조하세요.