모바일 또는 웹 앱에서 직접 API를 호출하면 (예: 생성형 AI 모델에 액세스할 수 있는 API) API가 승인되지 않은 클라이언트에 의한 악용에 취약해집니다. 이러한 API를 보호하려면 Firebase App Check를 사용하여 모든 수신 API 호출이 실제 앱에서 발생한 것인지 확인할 수 있습니다.
Firebase AI Logic는 Firebase App Check와 통합하고 모바일 및 웹 앱에서 호출하는 생성형 AI 모델 API를 보호할 수 있는 프록시 게이트웨이를 제공합니다. App Check와 함께 Firebase AI Logic SDK를 사용하면 모든 구성을 지원합니다.
Gemini API" 제공업체를 모두 보호합니다. Gemini Developer API 및 Vertex AI Gemini API.
Gemini 모델과 Imagen 모델을 비롯한 모든 지원되는 모델을 보호합니다.
App Check 작동 방식에 관한 대략적인 요약
App Check를 사용하면 앱을 실행하는 기기는 다음 중 하나 또는 둘 모두를 확인하는 앱 또는 기기 증명 제공자를 사용합니다.
- 요청이 인증된 앱에서 발생함
- 요청이 변조되지 않은 인증된 기기에서 발생함
이 증명은 Firebase AI Logic SDK를 사용하여 앱이 수행하는 모든 요청에 연결됩니다. App Check 적용을 사용 설정하면 유효한 증명이 없는 클라이언트의 요청이 거부되며 승인하지 않은 앱이나 플랫폼에서 발생한 요청도 거부됩니다.
App Check을 설정할 때는 예정된 향상된 보호(일명 재생 보호)를 준비하는 것이 좋습니다.
할당량 및 한도를 비롯한 할당량 및 한도에 관한 자세한 내용은 App Check 문서에서 확인할 수 있습니다.
사용 가능한 제공업체 및 구현 안내
App Check 문서에서는 증명 제공업체 와 구현 안내를 설명합니다.
기본 제공업체를 선택하고 다음 링크의 구현 안내를 따릅니다.
- Apple 플랫폼: DeviceCheck 또는 App Attest
- Android: Play 무결성
- 웹: reCAPTCHA Enterprise
- Flutter: 위의 모든 기본 제공업체를 지원합니다.
또한 Flutter 및 App Check의 특수 인스턴스화 요구사항을 준수해야 합니다. - Unity: 위의 모든 기본 제공업체를 지원합니다.
기본 제공업체 중 어느 것도 요구사항을 충족하지 않는 경우 서드 파티 증명 제공업체 또는 자체 증명 기법을 사용하는 커스텀 제공업체를 구현할 수 있습니다.
(권장) 앱 체크의 예정된 향상된 보호(재생 보호라고 함)를 준비합니다.App Check
(필수) 실제 사용자에게 앱을 출시하기 전에 App Check 적용을 사용 설정합니다.
Flutter에 필요한 특수 인스턴스화
|
Gemini API 제공업체를 클릭하여 이 페이지에서 제공업체별 콘텐츠 및 코드를 확인합니다. |
Flutter 앱에서 Firebase AI Logic와 함께 App Check를 사용하는 경우 다음과 같이 인스턴스화 중에 App Check를 명시적으로 전달해야 합니다.
// ...
final ai = await FirebaseAI.googleAI(
appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly
);
// ...
예정된 향상된 보호 준비
| 제한된 사용 토큰 사용 설정은 Apple 플랫폼 (v12.2.0 이상), Android (v17.2.0 이상, BoM v34.2.0 이상), 웹 (v12.3.0 이상) 및 Flutter (v3.2.0 이상, BoM v4.2.0 이상)에서 지원됩니다. Unity 지원은 곧 제공될 예정입니다. |
기본적으로 App Check는 세션 토큰을 사용하며, 이 토큰은
향후 App Check는 재생 보호 를 Firebase AI Logic에 사용 설정하는 옵션을 추가할 예정입니다 (App Check에서 이미 일부 다른 리소스에 제공하는 지원과 유사). 재생 보호를 사용 설정하면 다음과 같은 방식으로 보호가 강화됩니다.
App Check은(는) 제한된 사용 토큰이라는 특수한 종류의 토큰이 함께 제공되는 경우에만 요청을 허용합니다.
제한된 사용 토큰이 확인되면 토큰이 소비되어 한 번만 사용할 수 있으므로 재생 공격을 방지할 수 있습니다.
재생 보호를 준비하려면 앱 체크를 설정할 때 제한된 사용 토큰 사용을 사용 설정하는 것이 좋습니다. as part of setting up App Check. 이렇게 하면 재생 보호가 제공될 때 더 많은 사용자가 제한된 사용 토큰을 전송하는 앱 버전을 사용하므로 더 빨리 사용 설정할 수 있습니다.
재생 보호를 사용할 수 없는 지금 앱에서 제한된 사용 토큰 사용을 사용 설정하는 경우 다음 사항에 유의하세요.
App Check은 유효한 세션 토큰의 사용을 차단하지 않습니다.
세션 토큰과 마찬가지로 제한된 사용 토큰은 App Check SDK에 의해 캐시되고 요청과 함께 전송됩니다. 이러한 제한된 사용 토큰은 세션 토큰에 비해 TTL이 짧기 때문에(
5분 이며 조정할 수 없음) 기본 세션 토큰보다 약간 더 많은 보호를 제공합니다.제한된 사용 토큰은
5분 동안 유효하지만 SDK 는 각 요청에 대해 새 토큰을 생성합니다. 이 프로세스로 인해 요청에 지연 시간이 추가될 수 있습니다.
그러나 향후 Firebase AI Logic에 재생 보호가 제공되고 이를 사용 설정하면 세션 토큰을 사용하고 제한된 사용 토큰을 재사용할 수 없습니다. 각 요청에 대해 새 토큰을 생성하는 데 추가 지연 시간이 발생한다는 점에 유의하세요.
제한된 사용 토큰 사용 설정
|
Gemini API 제공업체를 클릭하여 이 페이지에서 제공업체별 콘텐츠 및 코드를 확인합니다. |
제한된 사용 토큰 사용을 사용 설정하는 방법은 다음과 같습니다.
을(를) 구현하고 앱에 App Check 적용을 사용 설정했는지 확인합니다. App Check
인스턴스화 중에 앱에서
useLimitedUseAppCheckTokens매개변수를true로 설정하여 제한된 사용 토큰 사용을 사용 설정합니다.Swift
// ... // During instantiation, enable usage of limited-use tokens let ai = FirebaseAI.firebaseAI( backend: .googleAI(), useLimitedUseAppCheckTokens: true ) // ...Kotlin
// ... // During instantiation, enable usage of limited-use tokens val ai = Firebase.ai( backend = GenerativeBackend.googleAI(), useLimitedUseAppCheckTokens = true ) // ...Java
// ... // During instantiation, enable usage of limited-use tokens FirebaseAI ai = FirebaseAI.getInstance( /* backend: */ GenerativeBackend.googleAI(), /* useLimitedUseAppCheckTokens: */ true ); // ...Web
// ... // During instantiation, enable usage of limited-use tokens const ai = getAI(firebaseApp, { backend: new GoogleAIBackend(), useLimitedUseAppCheckTokens: true }); // ...Dart
// ... // During instantiation, enable usage of limited-use tokens final ai = await FirebaseAI.googleAI( appCheck: FirebaseAppCheck.instance, // for Flutter, pass in App Check explicitly useLimitedUseAppCheckTokens: true, ); // ...Unity
Unity 게임에서 제한된 사용 토큰을 사용하는 것은 향후 출시에서 지원될 예정입니다. 나중에 다시 확인해 주세요.
Firebase AI Logic이 App Check와 통합되는 방식 이해
Firebase AI Logic SDK를 사용하려면 Firebase 프로젝트에서
Firebase AI Logic API (firebasevertexai.googleapis.com)
를 사용 설정해야 합니다. 이는
Firebase AI Logic SDK에서 발생한 요청이 먼저 Firebase AI Logic
서버로 전송되기 때문입니다. 이 서버는 요청이 선택한
"Gemini API" 제공업체의 백엔드와 Gemini
및 Imagen 모델에 액세스하는 API로 진행되기 전에 Firebase App Check 확인
이 이루어지는 프록시 게이트웨이 역할을 합니다.