모바일 앱과 웹 앱에서 Gemini API을 직접 호출할 때 백엔드 인프라, 할당량, 독점 프롬프트를 보호하려면 다중 계층 심층 방어 접근 방식이 필요합니다. 이 체크리스트를 검토하여 권장되는 보안 권장사항을 Firebase AI Logic 구현하세요.
앱, 기기, 사용자 인증
인증된 기기에서 실행되는 앱의 합법적이고 변조되지 않은 인스턴스와 인증된 사용자로부터 수신 요청이 발생하는지 확인합니다.
적용 Firebase App Check
앱에서 직접 호출할 때 Gemini API를 악용으로부터 보호하려면 Firebase App Check를 적용합니다. App Check이 적용되면 수신 요청이 인증된 앱 또는 변조되지 않은 기기에서 발생하는지 확인합니다.
App Check는 Apple 플랫폼 (DeviceCheck, App Attest 또는 reCAPTCHA Enterprise), Android (Play Integrity 또는 reCAPTCHA Enterprise), 웹 (reCAPTCHA Enterprise)의 증명 제공업체를 지원합니다. 또한 Flutter 및 Unity 앱의 모든 제공업체를 지원합니다.
2026년 7월 초부터 Firebase는 안내 설정 중에 Firebase 콘솔에서 Firebase AI Logic에 App Check를 자동으로 적용합니다. 이전에 Firebase AI Logic을(를) 설정한 경우 을(를) 명시적으로 적용해야 합니다.App Check 로컬 개발의 경우 App Check 디버그 제공업체를 설정한 후 최종 사용자에게 출시하기 전에 프로덕션 증명 제공업체에 앱을 등록할 수 있습니다.
제한된 사용 토큰으로 재생 보호 사용 설정
App Check 설정의 일부로 재생 보호 를 적용하여 App Check 토큰이 일회성으로만 사용되도록 하는 것이 좋습니다. 이 옵션은 기본 보호 이상의 향상된 보호를 제공하며 앱 및 사용 사례에 적절한 수준의 보호를 설정할 수 있습니다.
Firebase API 키에 대한 제한사항 설정
Firebase API 키는 요청 시 Firebase 프로젝트와 앱을 식별합니다. API 키의 무단 사용을 방지하려면 다음 단계를 따르세요.
Google Cloud 콘솔에서 "애플리케이션 제한사항" 을 설정하여 Google Cloud키 사용을 앱의 특정 번들 ID (Apple), 패키지 이름 및 SHA-1 디지털 지문 (Android) 또는 HTTP 리퍼러 (웹)의 요청으로만 제한합니다.
각 키의 'API 제한사항' 허용 목록을 검토합니다.
-
Firebase AI Logic API (
firebasevertexai.googleapis.com) 가 허용 목록에 있는지 확인합니다. - 허용 목록에 있는 다른 API는 앱에 필요한 특정 Firebase 서비스뿐인지 확인합니다. 제한된 Firebase 키에 필요한 API 목록을 참고하세요.
-
Firebase AI Logic API (
Firebase 관련 API는 API 키를 Firebase 프로젝트나 앱을 식별 하는 데만 사용하며 API 호출 승인에는 사용하지 않습니다.
인증된 사용자만 요청하도록 제한
인증된 사용자 모드를 적용하는 것이 좋습니다.
Firebase AI Logic을 통한 모든 요청에
Firebase Authentication의 유효한 사용자 인증 정보가 포함되도록 인증되지 않은 최종 사용자의 요청이 들어오면 요청이 401: unauthenticated 오류와 함께 거부됩니다.
프롬프트 보호 및 요청 강화
클라이언트 디컴파일로 인해 프롬프트 디자인이 노출되지 않도록 하고 악의적인 사용자가 임의의 프롬프트를 실행할 수 없도록 백엔드를 잠급니다.
서버 프롬프트 템플릿 사용
앱은 템플릿 ID만 참조하고 동적 입력 변수를 전달합니다. 서버 프롬프트 템플릿을 사용하면 새 버전의 앱을 출시하지 않고도 필요할 때 프롬프트를 업데이트하거나 모델을 전환할 수 있습니다.
클라이언트에서 제공한 템플릿 변수 검증 및 삭제
서버 프롬프트 템플릿은 프롬프트 디자인을 보호하지만 동적 변수를 허용하는 템플릿은 여전히 프롬프트 삽입에 취약할 수 있습니다. 템플릿은 사용자 입력 변수를 최종 프롬프트에 연결하므로 다음을 실행해야 합니다.
- 변수를 템플릿에 전달하기 전에 클라이언트에서 모든 사용자 입력을 검증하고 삭제합니다 (예: 문자 수 제한 및 예상 형식 적용).
- 사용자 입력이 처리되는 방식을 위한 가드레일을 정의하는 명확한 시스템 안내를 템플릿에 포함합니다.
템플릿 전용 모드 적용
모든 앱 기능에서 서버 프롬프트 템플릿을 사용하면 enforcing
템플릿 전용 모드를 적용
하는 것이 좋습니다. 적용되면
Firebase AI Logic은(는)
Gemini API (403: unauthorized)에 대한 모든 직접 템플릿이 없는 요청을 차단하여 악의적인 행위자가
임의의 프롬프트를 보내거나 할당량을 악용하지 못하도록 합니다.
모니터링, 한도, 결제
수신 트래픽 및 보안 이상을 파악하고 예상치 못한 사용량 급증 또는 제어되지 않는 비용으로부터 프로젝트를 보호합니다.
Firebase 콘솔에서 AI 모니터링 설정
Firebase 콘솔에서FirebaseAI 모니터링을 설정하여 요청 수, 지연 시간, 토큰 사용량, 오류율 (401 인증 실패 및 403 템플릿 전용 차단 포함)과 같은 주요 측정항목을 파악합니다.
Google Cloud 콘솔에서 개별 추적을 검사할 수도 있습니다.
비율 제한 설정 및 할당량 관리
예상치 못한 사용량 급증 및 지갑 거부 공격으로부터 프로젝트를 보호합니다.
- 사용자당 비율 제한 (기본값은 100RPM)을 설정하여 개별 클라이언트 인스턴스가 과도한 할당량을 소비하지 못하도록 합니다.
- 각 기본 API에 대해 Google Cloud 콘솔에서 프로젝트 할당량을 검토하고 관리합니다.
알림 및 지출 한도로 예상치 못한 청구 방지
Firebase 프로젝트에 사용한 만큼만 지불하는 Blaze 요금제를 사용 중인 경우 다음 단계를 따르세요.
다음 단계
- 일반 Firebase 보안 체크리스트를 검토합니다.
- 일반 프로덕션 체크리스트를 검토합니다. Firebase AI Logic
- 가격 책정 및 비용 관리에 대해 자세히 알아봅니다. Firebase AI Logic