Azure Data Factory에서 데이터 이동을 위한 보안 고려 사항
적용 대상: Azure Data Factory Azure Synapse Analytics
팁
기업용 올인원 분석 솔루션인 Microsoft Fabric의 Data Factory를 사용해 보세요. Microsoft Fabric은 데이터 이동부터 데이터 과학, 실시간 분석, 비즈니스 인텔리전스 및 보고에 이르기까지 모든 것을 다룹니다. 무료로 새 평가판을 시작하는 방법을 알아봅니다!
이 문서에서는 Azure Data Factory의 데이터 이동 서비스가 데이터를 보호하는 데 사용하는 기본 보안 인프라에 대해 설명합니다. Data Factory 관리 리소스는 Azure 보안 인프라를 기반으로 하며 Azure가 제공하는 모든 가능한 보안 수단을 사용합니다.
Data Factory 솔루션에서 하나 이상의 데이터 파이프라인를 만듭니다. 파이프라인은 함께 작업을 수행하는 활동의 논리적 그룹화입니다. 이 파이프라인은 데이터 팩터리가 작성된 지역에 상주합니다.
Data Factory가 몇몇 지역에서만 지원되더라도 데이터 이동 서비스는 전역적으로 지원되며 데이터 준수, 효율성 및 네트워크 송신 비용 감소를 보장합니다.
Azure Integration Runtime(IR)과 자체 호스팅 IR(통합 런타임)을 포함하는 Azure Data Factory는 인증서로 암호화된 클라우드 데이터 저장소와 연결된 서비스 자격 증명을 제외하고 모든 임시 데이터, 캐시 데이터 또는 로그를 저장하지 않습니다. Data Factory를 사용하면 데이터 기반 워크플로를 만들어서 지원되는 데이터 저장소 간의 데이터 이동을 조율하고 다른 지역 또는 온-프레미스 환경에서 컴퓨팅 서비스를 사용하여 데이터의 처리를 조율할 수 있습니다. 또한 SDK 및 Azure Monitor를 사용하여 워크플로를 모니터링하고 관리할 수 있습니다.
Data Factory는 다음에 대해 인증을 받았습니다.
CSA STAR 인증 |
---|
ISO 20000-1:2011 |
ISO 22301:2012 |
ISO 27001:2013 |
ISO 27017:2015 |
ISO 27018:2014 |
ISO 9001:2015 |
SOC 1, 2, 3 |
HIPAA BAA |
HITRUST |
Azure 규정 준수 및 Azure의 자체 인프라 보안 방법에 관심이 있다면 Microsoft 보안 센터를 방문해 보세요. 모든 Azure 규정 준수 제품에 대한 최신 목록은 https://aka.ms/AzureCompliance를 확인하세요.
이 문서에서는 다음 두 가지 데이터 이동 시나리오에서 보안 고려 사항을 검토합니다.
- 클라우드 시나리오: 이 시나리오에서는 원본과 대상 모두 인터넷을 통해 공개적으로 액세스할 수 있습니다. 여기에는 Azure Storage, Azure Synapse Analytics, Azure SQL Database, Azure Data Lake Store, Amazon S3, Amazon Redshift와 같은 관리형 클라우드 스토리지 서비스, Salesforce와 같은 SaaS 서비스, FTP, OData와 같은 웹 프로토콜 등이 포함됩니다. 지원되는 데이터 원본의 전체 목록은 지원되는 데이터 저장소 및 형식에서 확인하세요.
- 하이브리드 시나리오: 이 시나리오에서는 원본 또는 대상 중 하나는 온-프레미스 회사 네트워크 내부 또는 방화벽 뒤에 있습니다. 또는 데이터 저장소는 프라이빗 네트워크 또는 가상 네트워크(가장 자주 원본)에 있으며 공개적으로 액세스할 수 없습니다. 가상 머신에서 호스팅되는 데이터베이스 서버도 이 시나리오에 해당합니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
클라우드 시나리오
데이터 저장소 자격 증명 보안
- Azure Data Factory 관리 저장소에 암호화된 자격 증명을 저장합니다. Data Factory는 Microsoft에서 관리하는 인증서로 암호화하여 데이터 저장소 자격 증명을 보호합니다. 이러한 인증서는 2년마다 갱신됩니다(인증서 갱신 및 자격 증명 마이그레이션 포함). Azure Storage 보안에 대한 자세한 내용은 Azure Storage 보안 개요를 참조하세요.
- Azure Key Vault에 자격 증명을 저장합니다. 또한 데이터 저장소의 자격 증명을 Azure Key Vault에 저장할 수 있습니다. Data Factory는 활동을 실행하는 동안 자격 증명을 검색합니다. 자세한 내용은 Azure Key Vault에 자격 증명 저장을 참조하세요.
Azure Key Vault에 애플리케이션 비밀을 중앙 집중식으로 스토리지하면 배포를 제어할 수 있습니다. Key Vault를 사용하면 비밀이 우발적으로 유출될 가능성이 대폭 감소합니다. 연결 문자열을 앱 코드에 저장하는 대신 Key Vault에 안전하게 저장할 수 있습니다. 애플리케이션은 URI를 사용하여 필요한 정보에 안전하게 액세스할 수 있습니다. 이러한 URI를 사용하면 애플리케이션이 특정 버전의 비밀을 검색할 수 있습니다. Key Vault에 저장된 비밀 정보를 보호하기 위해 사용자 지정 코드를 작성할 필요가 없습니다.
전송 중 암호화
클라우드 데이터 저장소가 HTTPS 또는 TLS를 지원하는 경우 Data Factory의 데이터 이동 서비스와 클라우드 데이터 저장소 간의 모든 데이터 전송은 보안 채널 HTTPS 또는 TLS를 통해 이루어집니다.
참고 항목
Azure SQL Database와 Azure Synapse Analytics에 대한 모든 연결은 데이터를 데이터베이스로 또는 데이터베이스로부터 전송 시 암호화(SSL/TLS)해야 합니다. JSON을 사용하여 파이프라인을 작성하는 동안 암호화 속성을 추가하고 연결 문자열에서 true로 설정합니다. Azure Storage의 경우 연결 문자열에 HTTPS를 사용할 수 있습니다.
참고 항목
Oracle에서 데이터를 이동하면서 전송 중에 암호화를 사용하려면 아래 옵션 중 하나를 따르세요.
- Oracle 서버에서 OAS(Oracle Advanced Security)로 이동하여 3DES(Triple-DES Encryption) 및 AES(Advanced Encryption Standard)를 지원하는 암호화 설정을 구성합니다. 자세한 내용은 여기를 참조하세요. ADF는 Oracle에 대한 연결을 설정할 때 OAS에서 구성한 암호화 방법을 사용하도록 해당 암호화 방법을 자동으로 협상합니다.
- ADF에서는 연결 문자열에 EncryptionMethod=1을 추가할 수 있습니다(연결된 서비스). 이렇게 하면 SSL/TLS가 암호화 방법으로 사용됩니다. 이를 사용하려면 암호화 충돌을 방지하기 위해 Oracle 서버 쪽의 OAS에서 비SSL 암호화 설정을 사용하지 않도록 설정해야 합니다.
참고 항목
사용된 TLS 버전은 1.2입니다.
저장 데이터 암호화
일부 데이터 저장소가 미사용 데이터 암호화를 지원합니다. 이러한 데이터 저장소에 데이터 암호화 메커니즘을 사용하는 것이 좋습니다.
Azure Synapse Analytics
Azure Synapse Analytics의 TDE(투명한 데이터 암호화)는 미사용 데이터에 대한 실시간 암호화 및 암호 해독을 수행하여 악의적인 활동의 위협으로부터 보호합니다. 이 동작은 클라이언트에 대해 투명합니다. 자세한 내용은 Azure Synapse Analytics의 데이터베이스 보안을 참조하세요.
Azure SQL Database
Azure SQL Database는 애플리케이션을 변경할 필요 없이 실시간으로 데이터 암호화 및 암호 해독을 수행하여 악의적인 활동의 위협으로부터 보호하는 TDE(투명한 데이터 암호화)도 지원합니다. 이 동작은 클라이언트에 대해 투명합니다. 자세한 내용은 SQL Database 및 Data Warehouse를 위한 투명한 데이터 암호화를 참조하세요.
Azure Data Lake Storage
또한 Azure Data Lake Store는 계정에 저장된 데이터에 대한 암호화를 제공합니다. 사용할 경우 Data Lake Store는 자동으로 데이터를 영구 저장하기 전에 데이터를 암호화하고, 검색하기 전에 데이터를 해독하므로 데이터에 액세스하는 클라이언트는 투명합니다. 자세한 내용은 Azure Data Lake Store의 데이터 보안을 참조하세요.
Azure Blob Storage 및 Azure Table Storage
Azure Blob Storage 및 Azure Table Storage는 자동으로 스토리지에 영구히 저장하기 전에 데이터를 암호화하고 검색하기 전에 데이터를 해독하는 SSE(저장소 서비스 암호화)를 지원합니다. 자세한 내용은 미사용 데이터에 대한 Azure Storage 서비스 암호화를 참조하세요.
Amazon S3
Amazon S3은 미사용 데이터의 클라이언트 및 서버 암호화를 모두 지원합니다. 자세한 내용은 암호화를 사용하여 데이터 보호를 참조하세요.
Amazon Redshift
Amazon Redshift는 미사용 데이터에 대한 클러스터 암호화를 지원합니다. 자세한 내용은 Amazon Redshift 데이터베이스 암호화를 참조하세요.
Salesforce
Salesforce는 모든 파일, 첨부 파일 및 사용자 정의 필드의 암호화를 허용하는 Shield Platform Encryption을 지원합니다. 자세한 내용은 웹 서버 OAuth 인증 흐름 이해를 참조하세요.
하이브리드 시나리오
하이브리드 시나리오에서는 자체 호스팅 통합 런타임을 온-프레미스 네트워크, 가상 네트워크(Azure) 또는 가상 프라이빗 클라우드(Amazon) 내부에 설치해야 합니다. 자체 호스팅 통합 런타임에서 로컬 데이터 저장소에 액세스할 수 있어야 합니다. 자체 호스팅 통합 런타임에 대한 자세한 내용은 자체 호스팅 통합 런타임을 만들고 구성하는 방법을 참조하세요.
명령 채널은 Data Factory의 데이터 이동 서비스와 자체 호스팅 통합 런타임 간의 통신을 허용합니다. 통신에는 활동과 관련된 정보가 들어 있습니다. 데이터 채널은 온-프레미스 데이터 저장소와 클라우드 데이터 저장소 간에 데이터를 전송하는 데 사용됩니다.
온-프레미스 데이터 저장소 자격 증명
자격 증명은 데이터 팩터리 내에 저장하거나 Azure Key Vault로부터 런타임 중 데이터 팩터리에서 참조할 수 있습니다. 데이터 팩터리 내에 자격 증명을 저장하는 경우, 상시 암호화된 형태로 자체 호스팅 통합 런타임에 저장됩니다.
자격 증명을 로컬로 저장합니다. JSON에서 연결 문자열 및 자격 증명 인라인과 함께 AzDataFactoryV2LinkedService 설정하기 cmdlet을 직접 사용하는 경우 연결된 서비스는 자체 호스팅 통합 런타임에 암호화되어 저장됩니다. 이 경우 자격 증명은 매우 안전한 Azure 백 엔드 서비스를 통해 자체 호스팅 통합 머신에 전달되며 이 머신에서 마지막으로 암호화되어 저장됩니다. 자체 호스팅 통합 런타임은 Windows DPAPI를 사용하여 중요한 데이터 및 자격 증명 정보를 암호화합니다.
Azure Key Vault에 자격 증명을 저장합니다. 또한 데이터 저장소의 자격 증명을 Azure Key Vault에 저장할 수 있습니다. Data Factory는 활동을 실행하는 동안 자격 증명을 검색합니다. 자세한 내용은 Azure Key Vault에 자격 증명 저장을 참조하세요.
Azure 백 엔드를 통해 자격 증명을 자체 호스팅 통합 런타임으로 전달하지 않고 로컬에 저장합니다. 데이터 팩터리 백 엔드를 통해 자격 증명을 전달하지 않고, 자체 호스팅 통합 런타임에서 로컬에 암호화하여 저장하려면, Azure Data Factory에서 온-프레미스 데이터 저장소에 대한 자격 증명 암호화 단계를 따르세요. 모든 커넥터가 이 옵션을 지원합니다. 자체 호스팅 통합 런타임은 Windows DPAPI를 사용하여 중요한 데이터 및 자격 증명 정보를 암호화합니다.
New-AzDataFactoryV2LinkedServiceEncryptedCredential cmdlet을 사용하여 연결된 서비스 자격 증명 및 연결된 서비스 내의 중요한 세부 정보를 암호화합니다. 그런 다음 반환된 JSON(연결 문자열의 EncryptedCredential 요소)을 사용하여 Set-AzDataFactoryV2LinkedService cmdlet으로 연결된 서비스를 만들 수 있습니다.
자체 호스팅 통합 런타임에서 연결된 서비스를 암호화하는 동안 사용되는 포트
기본적으로 인트라넷에서 원격 액세스를 사용하도록 설정하면 PowerShell은 보안 통신을 위해 자체 호스팅 통합 런타임을 사용하는 머신에 대해 8060 포트를 사용합니다. 필요한 경우 설정 탭의 Integration Runtime Configuration Manager에서 이 포트를 변경할 수 있습니다.
전송 중 암호화
모든 데이터 전송은 보안 채널 HTTPS 및 TLS over TCP를 통해 Azure 서비스와의 통신 중 man-in-the-middle 공격을 방지합니다.
또한 IPSec VPN 또는 Azure ExpressRoute를 사용하여 온-프레미스 네트워크와 Azure 사이의 통신 채널을 더욱 안전하게 보호할 수 있습니다.
Azure Virtual Network는 클라우드의 사용자 네트워크를 논리적으로 나타내는 표현입니다. IPSec VPN(사이트 간) 또는 ExpressRoute(프라이빗 피어링)를 설정하여 온-프레미스 네트워크를 가상 네트워크에 연결할 수 있습니다.
다음 표는 하이브리드 데이터 이동을 위한 원본 및 대상 위치의 다양한 조합에 따라 네트워크 및 자체 호스팅 통합 런타임 구성 권장 사항을 요약한 것입니다.
원본 | 대상 | 네트워크 구성 | 통합 런타임 설정 |
---|---|---|---|
온-프레미스 | 가상 네트워크에 배포된 가상 머신 및 클라우드 서비스 | IPSec VPN(지점 및 사이트 간 또는 사이트 간) | 자체 호스팅 통합 런타임은 가상 네트워크의 Azure 가상 머신에 설치할 수 있습니다. |
온-프레미스 | 가상 네트워크에 배포된 가상 머신 및 클라우드 서비스 | ExpressRoute(프라이빗 피어링) | 자체 호스팅 통합 런타임은 가상 네트워크의 Azure 가상 머신에 설치할 수 있습니다. |
온-프레미스 | 공개 엔드포인트가 있는 Azure 기반 서비스 | ExpressRoute(Microsoft 피어링) | 자체 호스팅 통합 런타임은 온-프레미스 또는 Azure 가상 머신에 설치할 수 있습니다. |
다음 이미지는 ExpressRoute 및 IPSec VPN(Azure Virtual Network 사용)을 사용하여 온-프레미스 데이터베이스와 Azure 서비스 간에 데이터를 이동시키기 위한 자체 호스팅 통합 런타임의 사용법을 보여 줍니다.
Express 경로
IPSec VPN
IP 주소에 대한 방화벽 구성 및 허용 목록 설정
참고 항목
각 데이터 원본에서 요구하는 대로 기업용 방화벽 수준에서 도메인 허용 목록을 설정해야 할 수도 있습니다. 이 테이블에서는 Azure SQL Database, Azure Synapse Analytics 및 Azure Data Lake Store만을 예제로 사용합니다.
참고 항목
Azure Data Factory를 통한 데이터 액세스 전략에 대한 자세한 내용은 이 문서를 참조하세요.
온-프레미스/개인 네트워크에 대한 방화벽 요구 사항
기업에서는 기업 방화벽이 중앙 라우터에서 실행됩니다. Windows 방화벽은 자체 호스팅 통합 런타임이 설치된 로컬 컴퓨터에서 디먼으로 실행됩니다.
다음 표는 아웃바운드 포트 및 회사 방화벽에 대한 도메인 요구 사항을 제공합니다.
도메인 이름 | 아웃바운드 포트 | 설명 |
---|---|---|
*.servicebus.windows.net |
443 | 대화형 작성을 위해 자체 호스팅 통합 런타임에 필요합니다. |
{datafactory}.{region}.datafactory.azure.net 또는 *.frontend.clouddatahub.net |
443 | 자체 호스팅 통합 런타임에서 Data Factory 서비스에 연결하는 데 필요합니다. 새로 만든 Data Factory의 경우 {datafactory}.{region}.datafactory.azure.net 형식의 자체 호스팅 통합 런타임 키에서 FQDN을 확인하세요. 이전 Data Factory의 경우 FQDN이 자체 호스팅 통합 키에 표시되지 않으면 *.frontend.clouddatahub.net을 대신 사용하세요. |
download.microsoft.com |
443 | 업데이트를 다운로드하기 위해 자체 호스팅 통합 런타임에서 필요합니다. 자동 업데이트를 사용하지 않도록 설정한 경우 이 도메인 구성을 건너뛸 수 있습니다. |
*.core.windows.net |
443 | 단계 복사 기능을 사용할 때 자체 호스팅 통합 런타임에서 Azure Storage 계정에 연결하는 데 사용됩니다. |
*.database.windows.net |
1433 | Azure SQL Database 또는 Azure Synapse Analytics에서 복사하는 경우에만 필요하며, 그렇지 않은 경우 선택 사항입니다. 준비된 복사 기능을 사용하여 1433 포트를 열지 않고 데이터를 SQL Database 또는 Azure Synapse Analytics에 복사합니다. |
*.azuredatalakestore.net login.microsoftonline.com/<tenant>/oauth2/token |
443 | Azure Data Lake Store에서 복사하는 경우에만 필요하며, 그렇지 않은 경우 선택 사항입니다. |
참고 항목
각 데이터 원본에서 요구하는 대로 기업용 방화벽 수준에서 도메인 허용 목록을 설정해야 할 수도 있습니다. 이 테이블에서는 Azure SQL Database, Azure Synapse Analytics 및 Azure Data Lake Store만을 예제로 사용합니다.
다음 표에서는 Windows 방화벽에 대한 인바운드 포트 요구 사항을 제공합니다.
인바운드 포트 | 설명 |
---|---|
8060(TCP) | 자체 호스팅 통합 런타임에서 온-프레미스 데이터 저장소에 대한 자격 증명을 안전하게 설정하기 위해 Azure Data Factory의 온-프레미스 데이터 저장소에 대한 자격 증명 암호화에 설명된 대로 PowerShell Encryption cmdlet에서, 그리고 자격 증명 관리자 애플리케이션에서 필요합니다. |
데이터 저장소에서 IP 구성 및 허용 목록 설정
클라우드의 일부 데이터 저장소는 저장소에 액세스하는 컴퓨터의 IP 주소를 허용해야 합니다. 자체 호스팅 통합 런타임 컴퓨터의 IP 주소가 방화벽에서 제대로 허용되거나 구성되어 있는지 확인합니다.
다음 클라우드 데이터 저장소에는 자체 호스팅 통합 런타임 컴퓨터의 IP 주소를 허용해야 합니다. 해당 데이터 저장소 중 일부는 기본적으로 허용 목록을 요구하지 않을 수 있습니다.
자주 묻는 질문
자체 호스팅 통합 런타임을 다른 데이터 팩터리에서 공유할 수 있습니까?
예. 자세한 내용은 여기를 참조하세요.
자체 호스팅 통합 런타임 작동에 필요한 포트 요구 사항은 무엇입니까?
자체 호스팅 통합 런타임은 HTTP 기반 연결을 만들어서 인터넷에 액세스하게 합니다. 자체 호스팅 통합 런타임에서 이 연결을 만들려면 아웃바운드 포트 443이 열려야 합니다. 자격 증명 관리자 애플리케이션의 경우 컴퓨터 수준(회사 방화벽 수준이 아님)에서만 인바운드 포트 8060을 엽니다. Azure SQL Database 또는 Azure Synapse Analytics를 원본 또는 대상으로 사용하는 경우, 1433 포트를 함께 열어야 합니다. 자세한 내용은 방화벽 구성 및 IP 주소에 대한 허용 목록 설정 섹션을 참조하세요.
관련 콘텐츠
Azure Data Factory 복사 활동 성능에 대한 자세한 내용은 복사 활동 성능 및 조정 가이드를 참조하세요.