Azure의 클라우드 규모 분석에 대한 인증
인증은 사용자 또는 애플리케이션의 ID를 확인하는 프로세스입니다. ID 관리 및 인증을 처리하는 단일 원본 ID 공급자를 사용하는 것이 좋습니다. 이 공급자를 디렉터리 서비스라고 합니다. 디렉터리 데이터를 저장하고 네트워크 사용자 및 관리자가 이 데이터를 사용할 수 있는 방법을 제공합니다.
모든 데이터 레이크 솔루션은 기존 디렉터리 서비스를 사용하고 통합해야 합니다. 대부분의 조직에서 모든 ID 관련 서비스에 대한 디렉터리 서비스는 Active Directory입니다. 모든 서비스 및 사용자 계정에 대한 기본 및 중앙 집중식 데이터베이스입니다.
클라우드에서 Microsoft Entra ID는 중앙 집중식 ID 공급자이며 ID 관리를 위한 기본 설정 원본입니다. Microsoft Entra ID에 대한 인증 및 권한 부여를 위임하면 사용자가 특정 위치에 있어야 하는 조건부 액세스 정책과 같은 시나리오를 사용할 수 있습니다. 액세스 보안 수준을 높이기 위해 다단계 인증을 지원합니다. 가능하면 데이터 서비스를 Microsoft Entra ID 통합으로 구성해야 합니다.
Microsoft Entra ID를 지원하지 않는 데이터 서비스의 경우 액세스 키 또는 토큰을 사용하여 인증을 수행해야 합니다. Azure Key Vault와 같은 키 관리 저장소에 액세스 키를 저장해야 합니다.
클라우드 규모 분석에 대한 인증 시나리오는 다음과 같습니다.
- 사용자 인증: 사용자가 자격 증명을 사용하여 Microsoft Entra ID를 통해 인증합니다.
- 애플리케이션-서비스 인증: 애플리케이션은 서비스 주체를 사용하여 인증합니다.
- 서비스 대 서비스 인증: Azure 리소스는 Azure에서 자동으로 관리되는 관리 ID를 사용하여 인증합니다.
인증 시나리오
사용자 인증
데이터 서비스 또는 리소스에 연결하는 사용자는 자격 증명을 제공해야 합니다. 이 자격 증명은 사용자가 자신이 주장하는 사람임을 증명합니다. 그러면 해당 사용자가 서비스 또는 리소스에 액세스할 수 있습니다. 인증을 사용하면 서비스에서 사용자의 ID도 알 수 있습니다. 서비스에서 ID를 확인한 후 사용자가 보고 수행할 수 있는 작업을 결정합니다.
Azure Data Lake Storage Gen2, Azure SQL Database, Azure Synapse Analytics 및 Azure Databricks는 Microsoft Entra ID 통합을 지원합니다. 대화형 사용자 인증 모드를 사용하려면 사용자가 대화 상자에서 자격 증명을 제공해야 합니다.
Important
인증을 위해 애플리케이션에 사용자 자격 증명을 하드 코딩하지 마세요.
서비스 간 인증
서비스가 사용자 상호 작용 없이 다른 서비스에 액세스하는 경우에도 유효한 ID를 제공해야 합니다. 이 ID는 서비스의 신뢰성을 증명하여 액세스된 서비스가 허용된 작업을 결정할 수 있도록 합니다.
서비스 간 인증의 경우, Azure 서비스를 인증하는 선호되는 방법은 관리 ID입니다. Azure 리소스에 대한 관리 ID는 명시적 자격 증명 없이 Microsoft Entra 인증을 지원하는 모든 서비스에 대한 인증을 허용합니다. 자세한 내용은 Azure 리소스에 대한 관리 ID란?을 참조하세요.
관리 ID는 Azure 리소스에서만 사용할 수 있는 서비스 주체입니다. 예를 들어 Azure Data Factory 인스턴스에 대해 직접 관리 ID를 만들 수 있습니다. Microsoft Entra ID를 개체로 등록한 이 관리 ID는 Data Factory 인스턴스를 나타냅니다. 그런 다음 이 ID를 사용하여 코드의 자격 증명 없이 Data Lake Storage와 같은 모든 서비스에 인증할 수 있습니다. Azure는 서비스 인스턴스에서 사용되는 자격 증명을 처리합니다. ID는 Azure Data Lake Storage의 폴더와 같은 Azure 서비스 리소스에 대한 권한을 부여할 수 있습니다. 이 Data Factory 인스턴스를 삭제하면 Azure는 Microsoft Entra ID의 ID를 정리합니다.
관리 ID를 사용할 경우의 이점
관리 ID는 다른 Azure 서비스 또는 리소스에 대해 Azure 서비스를 인증하는 데 사용해야 합니다. 다음과 같은 이점을 제공합니다.
- 관리 ID는 이 ID가 만들어져 사용되는 서비스를 나타냅니다. 관리 ID는 대화형 사용자를 나타내지 않습니다.
- 관리 ID 자격 증명은 Microsoft Entra ID에 유지 관리되고 저장됩니다. 사용자가 유지할 암호가 없습니다.
- 관리 ID를 사용하면 클라이언트 서비스에서 암호를 사용하지 않습니다.
- 서비스 인스턴스가 삭제되면 시스템 할당 관리 ID가 삭제됩니다.
이러한 이점은 자격 증명이 더 잘 보호되고 보안 손상 가능성이 적다는 것을 의미합니다.
애플리케이션-서비스 인증
또 다른 액세스 시나리오에는 모바일 또는 웹 애플리케이션과 같은 애플리케이션이 Azure 서비스에 액세스하는 작업이 포함됩니다. 애플리케이션은 ID를 제공해야 하며, 이를 확인해야 합니다.
Azure 서비스 프린시펄은 관리 ID를 지원하지 않는 애플리케이션 및 서비스가 Azure 리소스에 인증하는 대안입니다. 애플리케이션, 호스트된 서비스 및 자동화된 도구에서 Azure 리소스에 액세스하기 위해 특별히 만든 ID입니다. 서비스 주체에 할당된 역할은 해당 액세스를 제어합니다. 보안상의 이유로, 사용자 식별자로 로그인할 수 있도록 허용하기보다는 자동화된 도구나 애플리케이션에서 서비스 주체를 사용하는 것이 좋습니다. 자세한 내용은 Microsoft Entra ID의 애플리케이션 및 서비스 주체 개체를 참조하세요.
관리 ID와 서비스 주체 간의 차이점
서비스 주체 | 관리 ID |
---|---|
특정 Azure 리소스에 액세스하기 위해 애플리케이션, 서비스 및 도구에서 사용하기 위해 Microsoft Entra ID로 수동으로 만든 보안 ID입니다. | 특수한 유형의 서비스 주체입니다. Azure 서비스를 만들 때 생성되는 자동 ID입니다. |
모든 애플리케이션 또는 서비스에서 사용되며 특정 Azure 서비스에 연결되지 않습니다. | Azure 서비스 인스턴스 자체를 나타냅니다. 다른 Azure 서비스를 나타내는 데 사용할 수 없습니다. |
독립적인 수명 주기가 있습니다. 명시적으로 삭제해야 합니다. | Azure 서비스 인스턴스가 삭제되면 자동으로 삭제됩니다. |
암호 기반 또는 인증서 기반 인증입니다. | 인증을 위해 제공할 명시적 암호가 없습니다. |
참고 항목
관리 ID와 서비스 주체는 모두 Microsoft Entra ID에서만 만들어지고 유지 관리됩니다.
클라우드 규모 분석의 인증 모범 사례
클라우드 규모 분석에서 강력하고 안전한 인증 사례를 보장하는 것이 가장 중요합니다. 데이터베이스, 스토리지 및 분석 서비스를 비롯한 다양한 계층에서 인증을 위한 모범 사례입니다. 조직은 Microsoft Entra ID를 사용하여 MFA(다단계 인증) 및 조건부 액세스 정책과 같은 기능을 사용하여 보안을 강화할 수 있습니다.
층 | 서비스 | 권장 사항 |
---|---|---|
데이터베이스 | Azure SQL DB, SQL MI, Synapse, MySQL, PostgreSQL 등 | PostgreSQL, Azure SQL및 MySQL같은 데이터베이스로 인증하려면 Microsoft Entra ID를 사용합니다. |
보관 | ADLS(Azure Data Lake Storage) | MFA(다단계 인증) 및 조건부 액세스 정책을 지원하여 보안을 강화할 수 있으므로 공유 키 또는 SAS를 통해 ADLS를 사용하여 보안 주체(사용자, 그룹, 서비스 주체 또는 관리 ID)에 대한 인증에 Microsoft Entra ID를 사용합니다. |
보관 | Azure Databricks의 ADLS | 관리 ID |
분석 | Azure Databricks | SCIM을 사용하여 Microsoft Entra ID에서 사용자 및 그룹을 |
Important
Azure Databricks 사용자가 ADLS에 대한 스토리지 수준 액세스를 직접 허용하면 액세스 제어 및 모니터링을 비롯한 Unity 카탈로그의 권한, 감사 및 보안 기능이 무시됩니다. 데이터를 완전히 보호하고 제어하려면 Azure Databricks 작업 영역 사용자를 위해 ADLS에 저장된 데이터에 대한 액세스를 Unity 카탈로그를 통해 관리해야 합니다.