관리 ID를 사용하여 Azure Stream Analytics 작업에서 Azure SQL Database 또는 Azure Synapse Analytics에 액세스
Azure Stream Analytics는 Azure SQL Database 및 Azure Synapse Analytics 출력 싱크에 대한 관리 ID 인증을 지원합니다. 관리 ID를 사용하면 암호를 변경할 때 재인증해야 하거나 90일마다 사용자 토큰이 만료되는 등의 사용자 기반 인증 방법의 제한이 사라집니다. 수동으로 인증할 필요가 없어지면 Stream Analytics 배포를 완전히 자동화할 수 있습니다.
관리 ID는 지정된 Stream Analytics 작업을 나타내는 Microsoft Entra ID에 등록된 관리되는 애플리케이션입니다. 관리형 애플리케이션은 대상 리소스에 인증하는 데 사용됩니다. 이 문서에서는 Azure Portal을 통해 Stream Analytics 작업의 Azure SQL Database 또는 Azure Synapse Analytics 출력에 관리 ID를 사용하도록 설정하는 방법을 보여 줍니다.
개요
이 문서에서는 관리 ID 인증 모드를 사용하여 Stream Analytics 작업을 Azure SQL Database 또는 Azure Synapse Analytics SQL 풀에 연결하는 데 필요한 단계를 보여 줍니다.
먼저 Stream Analytics 작업에 대한 시스템이 할당한 관리 ID를 만듭니다. Microsoft Entra ID의 작업 ID입니다.
SQL 서버 또는 Synapse 작업 영역에 Active Directory 관리자를 추가하여 해당 리소스에 대해 Microsoft Entra ID(관리 ID) 인증을 사용하도록 설정합니다.
그런 다음 데이터베이스에서 Stream Analytics 작업의 ID를 나타내는 포함된 사용자를 만듭니다. 이 ID는 Stream Analytics 작업이 SQL DB 또는 Synapse SQL DB 리소스와 상호 작용할 때마다 Stream Analytics 작업이 가진 권한을 확인하기 위해 참조하게 되는 ID입니다.
Stream Analytics 작업에 SQL Database 또는 Synapse SQL 풀에 대한 액세스 권한을 부여합니다.
마지막으로 Stream Analytics 작업에서 Azure SQL Database/Azure Synapse Analytics를 출력으로 추가합니다.
필수 조건
이 기능을 사용하려면 다음 항목이 필요합니다.
Azure Stream Analytics 작업
Azure SQL Database 리소스
관리 ID 만들기
먼저 Azure Stream Analytics 작업의 관리 ID를 만듭니다.
Azure Portal에서 Stream Analytics 작업을 엽니다.
왼쪽 탐색 메뉴의 구성 아래에서 관리 ID를 선택합니다. 그런 다음, 시스템 할당 관리 ID 사용 옆에 있는 확인란을 선택하고 저장을 선택합니다.
Stream Analytics 작업 ID에 대한 서비스 주체는 Microsoft Entra ID에 만들어집니다. 새로 생성된 ID의 수명 주기는 Azure에서 관리합니다. Stream Analytics 작업을 삭제하면 연결된 ID(즉, 서비스 주체)는 Azure에서 자동으로 삭제합니다.
사용자 할당 관리 ID로 전환할 수도 있습니다.
구성을 저장하면 서비스 주체의 OID(개체 ID)가 아래와 같이 보안 주체 ID로 나열됩니다.
서비스 주체에는 Stream Analytics 작업과 동일한 이름이 사용됩니다. 예를 들어 작업 이름이 MyASAJob이면 서비스 주체 이름도 MyASAJob이 됩니다.
Active Directory 관리자 선택
관리 ID를 만든 후에는 Active Directory 관리자를 선택합니다.
Azure SQL Database 또는 Azure Synapse Analytics SQL 풀 리소스로 이동하고 리소스를 포함하는 SQL Server 또는 Synapse 작업 영역을 각각 선택합니다. 리소스 개요 페이지의 ‘서버 이름’ 또는 ‘작업 영역 이름’ 옆에서 해당 링크를 찾을 수 있습니다.
설정에서 SQL Server 및 Synapse 작업 영역에 대해 Active Directory 관리자 또는 SQL Active Directory 관리자를 각각 선택합니다. 그런 다음, 관리자 설정을 선택합니다.
Active Directory 관리자 페이지에서 SQL Server의 관리자가 될 사용자 또는 그룹을 검색하고 선택을 클릭합니다. 이 사용자는 다음 섹션에서 포함된 데이터베이스 사용자를 만들 수 있는 사용자입니다.
Active Directory 관리 페이지에 해당 Active Directory에 모든 멤버와 그룹이 표시됩니다. 회색으로 표시된 사용자나 그룹은 Microsoft Entra 관리자로 지원되지 않기 때문에 선택할 수 없습니다. SQL Database 또는 Azure Synapse에서 인증을 위해 Microsoft Entra 인증 사용의 Microsoft Entra 기능 및 제한 사항 섹션에서 지원되는 관리자 목록을 참조하세요.
Active Directory 관리자 페이지에서 저장을 선택합니다. 관리자를 변경하는 프로세스는 몇 분 정도 걸립니다.
포함된 데이터베이스 사용자 만들기
다음으로, Microsoft Entra ID에 매핑되는 포함된 데이터베이스 사용자를 Azure SQL 또는 Azure Synapse 데이터베이스에 만듭니다. 포함된 데이터베이스 사용자는 주 데이터베이스에 로그인할 수 없지만, 데이터베이스와 연결된 디렉터리의 ID에 매핑됩니다. Microsoft Entra ID는 개별 사용자 계정 또는 그룹일 수 있습니다. 이 경우 Stream Analytics 작업에 대한 포함된 데이터베이스 사용자를 만들어야 합니다.
자세한 내용은 Microsoft Entra 통합의 배경을 설명하는 문서인 SQL Database 및 Azure Synapse Analytics에 대한 유니버설 인증(SSMS의 MFA 지원)을 참조하세요.
SQL Server Management Studio를 사용하여 Azure SQL 또는 Azure Synapse 데이터베이스에 연결합니다. 사용자 이름은 모든 사용자 변경 권한이 있는 Microsoft Entra 사용자입니다. SQL Server에서 설정하는 관리자를 예로 들 수 있습니다. MFA를 사용하는 Microsoft Entra ID – Universal 인증을 사용합니다.
서버 이름
<SQL Server name>.database.windows.net
은 지역에 따라 달라질 수 있습니다. 예를 들어 중국 지역은<SQL Server name>.database.chinacloudapi.cn
을 사용해야 합니다.옵션 > 연결 속성 > 데이터베이스에 연결로 이동하여 특정 Azure SQL 또는 Azure Synapse 데이터베이스를 지정할 수 있습니다.
처음으로 연결하면 다음 창이 표시될 수 있습니다.
- 창이 표시되면 Azure Portal에서 SQL Server/Synapse 작업 영역 리소스로 이동합니다. 보안 섹션에서 방화벽 및 가상 네트워크/방화벽 페이지를 엽니다.
- 원하는 규칙 이름을 사용하여 새 규칙을 추가합니다.
- 새 방화벽 규칙 창의 시작 IP 주소를 시작 IP로 사용합니다.
- 새 방화벽 규칙 창의 끝 IP 주소를 끝 IP로 사용합니다.
- 저장을 선택하고 SQL Server Management Studio에서 다시 연결을 시도합니다.
연결되면 포함된 데이터베이스 사용자를 만듭니다. 다음 SQL 명령은 Stream Analytics 작업과 동일한 이름을 사용하는 포함된 데이터베이스 사용자를 만듭니다. ASA_JOB_NAME을 대괄호를 묶어야 합니다. 다음 T-SQL 구문을 사용하여 쿼리를 실행합니다.
CREATE USER [ASA_JOB_NAME] FROM EXTERNAL PROVIDER;
포함된 데이터베이스 사용자를 올바르게 추가했는지 확인하려면 해당 데이터베이스의 SSMS에서 다음 명령을 실행하고 ASA_JOB_NAME이 “이름” 열 아래에 있는지 확인합니다.
SELECT * FROM <SQL_DB_NAME>.sys.database_principals WHERE type_desc = 'EXTERNAL_USER'
Microsoft의 Microsoft Entra ID에서 Stream Analytics 작업이 SQL Database에 액세스했는지 확인하려면 Microsoft Entra에 데이터베이스와 통신할 권한을 부여해야 합니다. 이렇게 하려면 Azure Portal의 “방화벽 및 가상 네트워크”/“방화벽” 페이지로 다시 이동하여 “Azure 서비스 및 리소스가 이 서버/작업 영역에 액세스할 수 있도록 허용”을 사용하도록 설정합니다.
Stream Analytics 작업 권한 부여
이전 섹션에서 설명한 대로 포털에서 포함된 데이터베이스 사용자를 만들고 Azure 서비스에 대한 액세스 권한을 부여하고 나면 Stream Analytics 작업에는 관리 ID를 통해 Azure SQL Database 리소스에 대한 관리 ID의 CONNECT 권한이 포함됩니다. 나중에 Stream Analytics 워크플로에서 필요하므로 Stream Analytics 작업에 대한 SELECT 및 INSERT 권한을 부여하는 것이 좋습니다. SELECT 권한이 있으면 작업에서 Azure SQL Database의 테이블에 대한 연결을 테스트할 수 있습니다. INSERT 권한이 있으면 입력 및 Azure SQL Database 출력을 구성한 후에 엔드투엔드 Stream Analytics 쿼리를 테스트할 수 있습니다.
SQL Server Management Studio를 사용하여 Stream Analytics 작업에 이러한 권한을 부여할 수 있습니다. 자세한 내용은 GRANT(Transact-SQL) 참조를 확인하세요.
데이터베이스의 특정 테이블 또는 개체에만 권한을 부여하려면 다음 T-SQL 구문을 사용하고 쿼리를 실행합니다.
GRANT CONNECT TO ASA_JOB_NAME;
GRANT SELECT, INSERT ON OBJECT::TABLE_NAME TO ASA_JOB_NAME;
또는 SQL Server Management Studio에서 Azure SQL 또는 Azure Synapse 데이터베이스를 마우스 오른쪽 단추로 클릭하고 속성 > 권한을 선택할 수도 있습니다. 권한 메뉴에서 이전에 추가한 Stream Analytics 작업을 볼 수 있으며, 필요에 따라 수동으로 권한을 부여하거나 거부할 수 있습니다.
ASA_JOB_NAME 사용자에게 추가한 모든 권한을 확인하려면 관련 DB의 SSMS에서 다음 명령을 실행합니다.
SELECT dbprin.name, dbprin.type_desc, dbperm.permission_name, dbperm.state_desc, dbperm.class_desc, object_name(dbperm.major_id)
FROM sys.database_principals dbprin
LEFT JOIN sys.database_permissions dbperm
ON dbperm.grantee_principal_id = dbprin.principal_id
WHERE dbprin.name = '<ASA_JOB_NAME>'
Azure SQL Database 또는 Azure Synapse 출력 만들기
참고 항목
MI(SQL Managed Instance)를 참조 입력으로 사용하는 경우 SQL Managed Instance에서 퍼블릭 엔드포인트를 구성해야 합니다. 데이터베이스 속성을 구성할 때 포트를 사용하여 정규화된 도메인 이름을 지정해야 합니다. 예: sampleserver.public.database.windows.net,3342.
관리 ID를 구성했으므로, 이제 Azure SQL Database 또는 Azure Synapse 출력을 Stream Analytics 작업에 추가할 수 있습니다.
적절한 출력 스키마를 사용하여 SQL Database에 테이블을 만들었는지 확인합니다. 이 테이블의 이름은 Stream Analytics 작업에 SQL Database 출력을 추가할 때 작성해야 하는 필수 속성 중 하나입니다. 또한 연결을 테스트하고 Stream Analytics 쿼리를 실행하기 위한 SELECT 및 INSERT 권한이 작업에 있는지 확인합니다. 아직 수행하지 않은 경우 Stream Analytics 작업 권한 부여 섹션을 참조하세요.
Stream Analytics 작업으로 돌아가서 작업 토폴로지에서 출력 페이지로 이동합니다.
추가 > SQL Database를 선택합니다. SQL Database 출력 싱크의 출력 속성 창에서 인증 모드 드롭다운을 클릭하고 관리 ID를 선택합니다.
나머지 속성을 입력합니다. SQL Database 출력을 만드는 방법에 대한 자세한 내용은 Stream Analytics를 사용하여 SQL Database 출력 만들기를 참조하세요. 완료되면 저장을 선택합니다.
저장을 클릭하면 리소스에 대한 연결 테스트가 자동으로 트리거됩니다. 테스트가 성공적으로 완료되면 Stream Analytics 작업이 관리 ID 인증 모드를 사용하여 Azure SQL Database 또는 Synapse SQL Database에 연결되도록 구성한 것입니다.
SQL 참조 데이터에 대한 추가 단계
Azure Stream Analytics를 사용하려면 SQL 참조 데이터를 사용할 때 작업의 스토리지 계정을 구성해야 합니다. 이 스토리지 계정은 SQL 참조 데이터 스냅샷 등의 Stream Analytics 작업과 관련된 콘텐츠를 저장하는 데 사용됩니다.
다음 단계에 따라 연결된 스토리지 계정을 설정합니다.
Stream Analytics 작업 페이지의 왼쪽 메뉴에 있는 구성에서 스토리지 계정 설정을 선택합니다.
스토리지 계정 설정 페이지에서 스토리지 계정 추가를 선택합니다.
지침에 따라 스토리지 계정 설정을 구성합니다.
Important
- 연결 문자열로 인증하려면 스토리지 계정 방화벽 설정을 사용하지 않도록 설정해야 합니다.
- 관리 ID로 인증하려면 Storage Blob 데이터 기여자 역할 및 스토리지 테이블 데이터 기여자 역할에 대한 스토리지 계정의 액세스 제어 목록에 Stream Analytics 작업을 추가해야 합니다. 작업에 대한 액세스 권한을 부여하지 않으면 작업에서 실행할 수 없습니다. 액세스 권한을 부여하는 방법에 대한 자세한 내용은 Azure RBAC를 사용하여 다른 리소스에 관리 ID 액세스 할당을 참조하세요.
사용자 할당 관리 ID를 사용하는 추가 단계
사용자 할당 관리 ID를 선택하여 ASA를 Synapse에 연결한 경우 다음 단계를 반복합니다.
- 포함된 데이터베이스 사용자를 만듭니다. ASA_Job_Name을 사용자 할당 관리 ID로 바꿉니다. 아래 예제를 참조하세요.
CREATE USER [User-Assigned Managed Identit] FROM EXTERNAL PROVIDER;
- 사용자 할당 관리 ID에 권한을 부여합니다. ASA_Job_Name을 사용자 할당 관리 ID로 바꿉니다.
자세한 내용은 위의 섹션을 참조하세요.
관리 ID 제거
Stream Analytics 작업에 대해 생성된 관리 ID는 작업이 삭제된 경우에만 삭제됩니다. 작업을 삭제하지 않고 관리 ID를 삭제할 수는 없습니다. 관리 ID를 더 이상 사용하지 않으려는 경우에는 출력에 대한 인증 방법을 변경할 수 있습니다. 관리 ID는 작업이 삭제될 때까지 계속 존재하며, 관리 ID 인증을 다시 사용하기로 한 경우 사용됩니다.