Azure Front Door에서 Azure Web Application Firewall을 사용하여 Azure OpenAI 보호

Azure OpenAI API를 사용하는 기업이 늘어나고, 웹 애플리케이션에 대한 보안 공격의 수와 복잡성은 지속적으로 진화하고 있습니다. 다양한 웹 애플리케이션 공격으로부터 Azure OpenAI API를 보호하려면 강력한 보안 전략이 필요합니다.

WAF(Azure Web Application Firewall)는 다양한 OWASP 상위 10개 웹 공격, CVE(Common Vulnerabilities and Exposures) 및 악성 봇 공격으로부터 웹 애플리케이션 및 API를 보호하는 Azure 네트워킹 제품입니다.

이 문서에서는 Azure Front Door에서 Azure WAF(Azure Web Application Firewall)를 사용하여 Azure OpenAI 엔드포인트를 보호하는 방법을 설명합니다.

필수 조건

Azure 구독이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

gpt-35-turbo 모델을 사용하여 Azure OpenAI 인스턴스 만들기

먼저 OpenAI 인스턴스를 만듭니다.

  1. Azure OpenAI 서비스 리소스 만들기 및 배포를 사용하여 Azure OpenAI 인스턴스를 만들고 gpt-35-turbo 모델을 배포합니다.

  2. Azure OpenAI 엔드포인트 및 API 키를 식별합니다.

    Azure OpenAI 스튜디오를 열고 플레이그라운드 아래에서 채팅 옵션을 엽니다. 코드 보기 옵션을 사용하여 엔드포인트와 API 키를 표시합니다. Screenshot showing Azure AI Studio Chat playground.

    Screenshot showing Azure OpenAI sample code with Endpoint and Key.

  3. Postman을 사용하여 Azure OpenAI 호출의 유효성을 검사합니다. 이전 단계에서 찾은 Azure OpenAPI 엔드포인트 및 api 키 값을 사용합니다. POST 본문에서 다음 코드 줄을 사용합니다.

    {
    "model":"gpt-35-turbo",
    "messages": [
    {
    "role": "user",
    "content": "What is Azure OpenAI?"
    }
    ]
    }
    
    

    Screenshot showing the post body.

  4. POST에 대한 응답으로 다음이 수신되어야 합니다. 200 OK: Screenshot showing the POST 200 OK.

    또한 Azure OpenAI는 GPT 모델을 사용하여 응답을 생성합니다.

Azure WAF를 사용하여 Azure Front Door 인스턴스 만들기

이제 Azure Portal을 사용하여 Azure WAF로 Azure Front Door 인스턴스를 만듭니다.

  1. 동일한 리소스 그룹에 연결된 WAF 보안 정책을 사용하여 Azure Front Door 프리미엄 최적화 계층을 만듭니다. 사용자 지정 만들기 옵션을 사용합니다.

    1. 빠른 시작: Azure Front Door 프로필 만들기 - Azure Portal
  2. 엔드포인트 및 경로를 추가합니다.

  3. 원본 호스트 이름을 추가합니다. 원본 호스트 이름은 testazureopenai.openai.azure.com입니다.

  4. WAF 정책을 추가합니다.

웹 애플리케이션 및 API 취약성으로부터 보호하도록 WAF 정책 구성

방지 모드에서 WAF 정책을 사용하도록 설정하고 Microsoft_DefaultRuleSet_2.1Microsoft_BotManagerRuleSet_1.0이 사용하도록 설정되어 있는지 확인합니다.

Screenshot showing a WAF policy.

Azure Front Door 엔드포인트를 통해 Azure OpenAI에 대한 액세스 확인

이제 Azure Front Door 엔드포인트를 확인합니다.

  1. Front Door 관리자에서 Azure Front Door 엔드포인트를 검색합니다.

    Screenshot showing the Azure Front Door endpoint.

  2. Postman을 사용하여 Azure Front Door 엔드포인트에 POST 요청을 보냅니다.

    1. Azure OpenAI 엔드포인트를 Postman POST 요청의 AFD 엔드포인트로 바꿉니다. Screenshot showing the final POST.

    Azure OpenAI는 GPT 모델을 사용하여 응답도 생성합니다.

WAF가 OWASP 공격을 차단하는지 확인

Azure OpenAI 엔드포인트에서 OWASP 공격을 시뮬레이션하는 POST 요청을 보냅니다. WAF는 403 금지된 응답 코드를 사용하여 호출을 차단합니다.

WAF를 사용하여 IP 제한 규칙 구성

Azure OpenAI 엔드포인트에 대한 액세스를 필수 IP 주소로 제한하려면 Azure Front Door에 WAF를 사용하여 IP 제한 규칙 구성을 참조하세요.

일반적인 문제

다음 항목은 Azure Front Door 및 Azure WAF에서 Azure OpenAI를 사용할 때 발생할 수 있는 일반적인 문제입니다.

  • Azure OpenAI 엔드포인트에 POST 요청을 보낼 때 401: 액세스 거부 메시지가 표시됩니다.

    POST 요청을 만든 직후 Azure OpenAI 엔드포인트로 보내려고 하면 요청에 올바른 API 키가 있더라도 401: 액세스 거부 메시지가 표시될 수 있습니다. 이 문제는 일반적으로 직접적인 개입없이 일정 시간 후에 자체적으로 해결됩니다.

  • Azure OpenAI 엔드포인트에 POST 요청을 보낼 때 415: 지원되지 않는 미디어 형식 메시지가 표시됩니다.

    Content-Type 헤더 text/plain을 사용하여 Azure OpenAI 엔드포인트에 POST 요청을 보내려고 하면 이 메시지가 표시됩니다. Postman의 헤더 섹션에서 Content-Type 헤더를 application/json으로 업데이트해야 합니다.