Azure Cognitive Services 보안

보안은 모든 애플리케이션 개발에서 최우선 순위로 간주되어야 하며, 인공 지능 지원 애플리케이션이 성장함에 따라 보안은 더욱 중요해졌습니다. 이 문서에서는 Azure Cognitive Services에 사용할 수 있는 다양한 보안 기능을 간략하게 설명합니다. 각 기능은 특정 책임을 다루므로 동일한 워크플로에서 여러 기능을 사용할 수 있습니다.

Azure 서비스 보안 권장 사항의 전체 목록은 Cognitive Services 보안 기준 문서를 참조하세요.

보안 기능

기능 설명
TLS(전송 계층 보안) HTTP를 통해 노출되는 모든 Cognitive Services 엔드포인트는 TLS 1.2 프로토콜을 적용합니다. 적용된 보안 프로토콜을 사용하여 Cognitive Services 엔드포인트를 호출하려는 소비자는 다음 지침을 따라야 합니다.
- 클라이언트 OS(운영 체제)는 TLS 1.2를 지원해야 합니다.
- HTTP 호출은 요청의 일부로 TLS 1.2를 지정해야 합니다. 언어 및 플랫폼에 따라 TLS 지정은 암시적 또는 명시적으로 수행됩니다.
- .NET 사용자의 경우 전송 계층 보안 모범 사례을 고려합니다.
인증 옵션 인증은 사용자의 ID를 확인하는 동작입니다. 이와 대조적으로 권한 부여는 지정된 ID에 대한 리소스에 대한 액세스 권한 및 권한을 지정하는 것입니다. ID는 보안 주체에 대한 정보의 컬렉션이며 보안 주체는 개별 사용자 또는 서비스일 수 있습니다.

기본적으로 제공된 구독 키를 사용하여 Cognitive Services에 대한 사용자 고유의 호출을 인증합니다. 가장 간단한 방법이지만 가장 안전하지는 않습니다. 가장 안전한 인증 방법은 Azure Active Directory에서 관리되는 역할을 사용하는 것입니다. 이 인증 옵션 및 기타 인증 옵션에 대해 알아보려면 Cognitive Services에 대한 요청 인증을 참조하세요.
키 회전 각 Cognitive Services 리소스에는 비밀 회전을 사용하도록 설정하는 두 개의 API 키가 있습니다. 이는 서비스에 액세스할 수 있는 키를 정기적으로 변경하여 키가 유출될 경우 서비스의 개인 정보를 보호할 수 있는 보안 예방 조치입니다. 이 인증 옵션 및 기타 인증 옵션에 대한 자세한 내용은 키 회전을 참조하세요.
환경 변수 환경 변수는 특정 개발 환경에 저장되는 이름-값 쌍입니다. 코드에서 하드코딩된 값을 사용하는 것보다 더 안전한 대안으로 이러한 방식으로 자격 증명을 저장할 수 있습니다. 그러나 환경이 손상되면 환경 변수도 손상되므로 가장 안전한 방법은 아닙니다.

코드에서 환경 변수를 사용하는 방법에 대한 지침은 환경 변수 가이드를 참조하세요.
CMK(고객 관리형 키) 이 기능은 고객 데이터를 미사용(48시간 이상)으로 저장하는 서비스를 위한 것입니다. 이 데이터는 이미 Azure 서버에서 이중 암호화되어 있지만 사용자는 자신이 관리하는 키를 사용하여 다른 암호화 계층을 추가하여 추가 보안을 얻을 수 있습니다. 서비스를 Azure Key Vault에 연결하고 여기에서 데이터 암호화 키를 관리할 수 있습니다.

CMK를 사용하도록 설정하는 서비스에 대한 E0 SKU를 가져오려면 특별 승인이 필요합니다. 요청 양식을 제출한 후 영업일 기준 3~5일 이내에 요청 상태에 대한 업데이트를 받게 됩니다. 요청에 따라 공간이 확보되면 큐에 배치되고 승인될 수 있습니다. E0 SKU 사용이 승인되면 Azure Portal에서 새 리소스를 만들고 E0을 가격 책정 계층으로 선택해야 합니다. F0에서 새 E0 SKU로 업그레이드할 수 없습니다.

일부 서비스만 CMK를 사용할 수 있습니다. 고객 관리형 키 페이지에서 서비스를 찾습니다.
가상 네트워크 가상 네트워크를 사용하면 리소스에 대한 API 호출을 수행할 수 있는 엔드포인트를 지정할 수 있습니다. Azure 서비스는 네트워크 외부 디바이스의 API 호출을 거부합니다. 허용된 네트워크의 수식 기반 정의를 설정하거나 허용할 엔드포인트의 전체 목록을 정의할 수 있습니다. 이는 다른 보안 계층과 함께 사용할 수 있는 또 다른 보안 계층입니다.
데이터 손실 방지 데이터 손실 방지 기능을 통해 관리자는 Azure 리소스가 입력으로 사용할 수 있는 URI 형식을 결정할 수 있습니다(URI를 입력으로 사용하는 API 호출의 경우). 이는 중요한 회사 데이터의 유출 가능성을 방지하기 위해 수행할 수 있습니다. 회사가 URL 매개 변수에 중요한 정보(예: 고객의 프라이빗 데이터)를 저장하는 경우 해당 회사 내부의 악의적인 작업자가 회사 외부에 해당 데이터를 표시하는 Azure 서비스에 중요한 URL을 제출할 수 있습니다. 데이터 손실 방지를 사용하면 도착 시 특정 URI 형식을 거부하도록 서비스를 구성할 수 있습니다.
고객 Lockbox 고객 Lockbox 기능은 고객이 데이터 액세스 요청을 검토하고 승인하거나 거부할 수 있는 인터페이스를 제공합니다. 지원 요청 시 Microsoft 엔지니어가 고객 데이터에 액세스해야 하는 경우에 사용됩니다. 나중에 검토 및 감사를 위해 고객 Lockbox 요청을 시작, 추적 및 저장하는 방법에 대한 자세한 내용은 고객 Lockbox 가이드를 참조하세요.

고객 Lockbox는 다음 서비스에 사용할 수 있습니다.
- Translator
- 대화 언어 이해
- 사용자 지정 텍스트 분류
- 명명된 사용자 지정 항목 인식
- 오케스트레이션 워크플로

마찬가지로 다음 서비스는 E0 계층(이 요청 양식으로 액세스)을 제공하며 Microsoft 엔지니어는 해당 계층의 고객 데이터에 액세스하지 않습니다.
- Language Understanding
- Face
- Content Moderator
- Personalizer
BYOS(사용자 고유의 스토리지 가져오기) Speech Service는 현재 고객 Lockbox를 지원하지 않습니다. 그러나 BYOS(사용자 고유의 스토리지 가져오기)를 사용하여 서비스별 데이터를 고유한 스토리지 리소스에 저장할 수 있습니다. BYOS를 사용하면 고객 Lockbox와 유사한 데이터 제어를 달성할 수 있습니다. Speech Service 데이터는 Speech 리소스가 생성된 Azure 지역에서 유지되고 처리됩니다. 이는 미사용 데이터와 전송 중인 데이터에 적용됩니다. Custom Speech 및 Custom Voice와 같은 사용자 지정 기능의 경우 모든 고객 데이터는 Speech Services 리소스 및 BYOS 리소스(사용되는 경우)가 있는 동일한 지역에서 전송, 저장 및 처리됩니다.

BYOS를 Speech와 함께 사용하려면 미사용 데이터의 음성 암호화 가이드를 따릅니다.

Microsoft는 고객 데이터를 사용하여 음성 모델을 개선하지 않습니다. 또한 엔드포인트 로깅이 사용하지 않도록 설정되고 사용자 지정이 사용되지 않은 경우에는 음성으로 고객 데이터가 저장되지 않습니다.

다음 단계