Azure AI Search 솔루션의 보안 관리
조직은 검색 솔루션의 보안을 신뢰할 수 있어야 합니다. Azure AI Search를 사용하면 검색하는 데이터를 보호하는 방법을 제어할 수 있습니다.
여기서는 검색 솔루션을 보호하는 방법을 살펴보겠습니다. 데이터가 암호화되는 위치와 인바운드 및 아웃바운드 데이터 흐름을 보호하는 방법에 초점을 맞춥니다. 마지막으로, 특정 사용자 또는 그룹에 대한 검색 결과에 대한 액세스를 제한하는 방법을 확인할 수 있습니다.
보안 방법 개요
AI Search 보안은 Azure의 기존 네트워크 보안 기능을 기반으로 합니다. 검색 솔루션 보안을 고려하면 다음 세 가지 영역에 집중할 수 있습니다.
- 사용자가 검색 솔루션에 대해 수행한 인바운드 검색 요청
- 문서를 인덱싱하기 위해 검색 솔루션에서 다른 서버로의 아웃바운드 요청
- 사용자 검색 요청당 문서 수준에서 액세스 제한
데이터 암호화
모든 Azure 서비스와 마찬가지로 Azure AI Search 서비스는 미사용 데이터에 저장되는 데이터를 서비스 관리형 키로 암호화합니다. 이 암호화에는 인덱스, 데이터 원본, 동의어 맵, 기술 세트, 인덱서 정의도 포함됩니다.
전송 중인 데이터는 포트 443을 통해 표준 HTTPS TLS 1.3 암호화를 사용하여 암호화됩니다.
자체 암호화 키를 사용하려는 경우 ACS는 Azure Key Vault 사용을 지원합니다. 사용자 고유의 고객 관리형 키를 사용하는 것의 이점은 사용자 지정 키를 사용하는 모든 개체에서 이중 암호화를 사용하도록 설정된다는 것입니다.
팁
암호화에 고객 관리형 키를 사용하는 방법에 대한 자세한 단계는 Azure AI Search에서 데이터 암호화에 대한 고객 관리형 키 구성을 참조 하세요.
인바운드 트래픽 보호
인터넷 또는 앱에서 외부적으로 검색 솔루션에 액세스할 수 있는 경우 공격 노출 영역을 줄일 수 있습니다. Azure AI Search를 사용하면 방화벽을 사용하여 공용 엔드포인트에 대한 액세스를 무료로 제한하여 특정 IP 주소의 액세스를 허용할 수 있습니다.
검색 서비스가 온-프레미스 리소스에서만 사용되는 경우 ExpressRoute 회로, Azure Gateway, App Service를 사용하여 보안을 강화할 수 있습니다. Azure 프라이빗 링크를 사용하도록 퍼블릭 엔드포인트를 변경하는 옵션도 있습니다. 또한 Azure 가상 네트워크 및 기타 리소스를 설정해야 합니다. 프라이빗 엔드포인트를 사용하는 것이 가장 안전한 솔루션이지만 Azure 플랫폼에서 호스팅해야 하는 서비스를 사용하는 추가 비용이 함께 제공됩니다.
팁
프라이빗 엔드포인트에 대한 자세한 내용은 Azure AI Search에 대한 보안 연결을 위한 프라이빗 엔드포인트 만들기를 참조하세요.
검색 솔루션에 대한 요청 인증
검색 솔루션의 공격 노출 영역을 줄이기 위한 인프라를 사용하면 사용자 및 앱의 검색 요청을 인증하는 방법에 초점을 맞출 수 있습니다.
ACS를 만들 때 기본 옵션은 키 기반 인증입니다. 두 가지 종류의 키가 있습니다.
- 관리 키 - 쓰기 권한 및 시스템 정보를 쿼리할 수 있는 권한 부여(검색 서비스당 최대 2개의 관리자 키를 만들 수 있음)
- 쿼리 키 - 읽기 권한 부여 및 사용자 또는 앱에서 인덱스를 쿼리하는 데 사용됨(검색 서비스당 최대 50개의 쿼리 키를 만들 수 있음)
중요
데이터 평면 작업에 대한 역할 기반 액세스 제어는 현재 미리 보기 상태이며 추가 사용 약관에 따라 제공됩니다. 역할은 Azure 퍼블릭 클라우드에서만 사용할 수 있으며 역할을 사용하면 검색 요청의 대기 시간을 늘릴 수 있습니다.
RBAC(역할 기반 액세스 제어)는 Azure 플랫폼에서 리소스에 대한 액세스를 제어하는 전역 시스템으로 제공됩니다. 다음과 같은 방법으로 Azure AI Search에서 RBAC를 사용할 수 있습니다.
- 역할에 서비스를 관리할 수 있는 액세스 권한을 부여할 수 있습니다.
- 인덱스를 만들고, 로드하고, 쿼리할 수 있는 액세스 권한이 있는 역할 정의
Azure AI Search 서비스를 관리하기 위해 할당할 수 있는 기본 제공 역할은 다음과 같습니다.
- 소유자 - 모든 검색 리소스에 대한 모든 액세스 권한
- 기여자 - 위와 동일하지만 역할을 할당하거나 권한 부여를 변경할 수 없음
- 읽기 권한자 - 부분 서비스 정보 보기
검색 인덱스 또는 데이터 원본과 같은 데이터 평면을 관리할 수 있는 역할이 필요한 경우 다음 역할 중 하나를 사용합니다.
- 검색 서비스 기여자 - 검색 서비스 관리자(위의 기여자 역할과 동일한 액세스) 및 콘텐츠(인덱스, 인덱서, 데이터 원본, 기술 세트)를 위한 역할
- 검색 인덱스 데이터 기여자 - 인덱스의 문서 컬렉션을 가져오거나 새로 고치거나 쿼리할 개발자 또는 인덱스 소유자를 위한 역할
- 인덱스 데이터 판독기 검색 - 쿼리만 실행해야 하는 앱 및 사용자를 위한 읽기 전용 액세스 역할
팁
RBAC 를 사용하여 인증하는 방법에 대한 자세한 내용은 Azure AI Search에서 Azure RBAC(Azure 역할 기반 액세스 제어) 사용을 참조하세요.
아웃바운드 트래픽 보호
일반적으로 아웃바운드 트래픽은 원본 데이터를 인덱싱하거나 AI(인공 지능)를 사용하여 보강합니다. Microsoft Entra ID를 사용할 수 있는 경우 아웃바운드 연결은 키 기반 인증, 데이터베이스 로그인 또는 Microsoft Entra 로그인 사용을 지원합니다.
데이터 원본이 Azure 플랫폼에서 호스트되는 경우 시스템 또는 사용자 할당 관리 ID를 사용하여 연결을 보호할 수도 있습니다.
Azure 서비스는 방화벽을 사용하여 액세스를 제한할 수 있습니다. Azure AI Search 서비스의 IP 주소만 허용하도록 방화벽을 구성할 수 있습니다. AI를 사용하여 인덱스를 보강하는 경우 AzureCognitiveSearch 서비스 태그의 모든 IP 주소도 허용해야 합니다.
인덱서가 사용하는 공유 프라이빗 링크 뒤에서 원본 데이터를 보호하도록 선택할 수 있습니다.
중요
공유 프라이빗 링크에는 텍스트 기반 인덱싱을 위한 기본 계층 또는 기술 기반 인덱싱을 위한 표준 2(S2) 계층이 필요합니다. 가격 책정에 대한 자세한 내용은 Azure Private Link 가격 책정을 참조하세요.
문서 수준에서 데이터 보호
Azure AI Search를 구성하여 다른 사용자가 검색할 수 있는 문서를 제한할 수 있습니다. 예를 들어 계약 PDF를 법률 부서의 사용자로 검색하도록 제한할 수 있습니다.
문서 수준에서 액세스할 수 있는 사용자를 제어하려면 검색 인덱스의 각 문서를 업데이트해야 합니다. 액세스할 수 있는 사용자 또는 그룹 ID가 포함된 모든 문서에 새 보안 필드를 추가해야 합니다. 필드에서 검색 결과를 필터링할 수 있도록 보안 필드를 필터링할 수 있어야 합니다.
이 필드를 배치하고 허용된 사용자 또는 그룹으로 채우면 search.in
필터를 모든 검색 쿼리에 추가하여 결과를 제한할 수 있습니다. HTTP POST 요청을 사용하는 경우 본문은 다음과 같습니다.
{
"filter":"security_field/any(g:search.in(g, 'user_id1, group_id1, group_id2'))"
}
이렇게 하면 이 사용자가 속한 사용자 ID 및 그룹에 대해 반환된 검색 결과가 필터링됩니다. 애플리케이션에서 Microsoft Entra ID를 사용할 수 있는 경우 해당 위치에서 사용자의 ID 및 그룹 멤버 자격을 사용할 수 있습니다.
팁
Microsoft Entra ID를 사용하는 방법에 대한 단계별 가이드는 Active Directory ID를 사용하여 Azure AI Search 결과를 트리밍하기 위한 보안 필터를 참조 하세요.