Security 가이드·약 7분 내외

Firebase 앱 전용(Auto created) API 키는 어떻게 방어할까?

웹 사이트 도메인 제한만으로는 모바일 앱 환경을 보호할 수 없습니다. Firebase 프로젝트 생성 시 자동으로 만들어지는 Android/iOS 전용 API 키의 올바른 보안 설정 방법을 알아봅니다.

Q: 웹 키는 제한을 걸었는데, Firebase에 들어가 보니 "앱 전용(auto created)" 키들도 있어요. 이것도 제한을 걸어야 하나요?

Firebase 프로젝트에 모바일 앱(iOS/Android)을 연동하면, 구글 클라우드 콘솔에 `Android key (auto created by Google Service)` 처럼 자동으로 생성된 API 키들이 보입니다.

A: 네, 반드시 걸어야 합니다. 웹 키가 털린 것과 똑같은 피해(요금 폭탄 등)를 입을 수 있습니다.

상세 설명: 웹과 다른 앱 생태계의 한계

웹 브라우저는 "내가 지금 접속한 사이트 주소(HTTP 리퍼러)"를 요청과 함께 보내주기 때문에 도메인으로 막을 수 있습니다.

하지만 모바일 앱은 사이트 주소가 없습니다. 방치해 두면 해커가 자기 PC에서 스크립트를 돌려 마치 내 스마트폰 앱에서 로그인하는 척 API를 무단으로 호출해댈 수 있습니다.

Q: 만약 제한을 걸어야 한다면 허용 항목에 뭘 적어야 하죠? 도메인이 없잖아요.

앱은 도메인 대신 각 OS 생태계가 발급하는 고유한 앱 식별자를 사용합니다.

A: 안드로이드는 "패키지명+SHA-1", iOS는 "번들 ID"를 등록하여 우리 앱 외의 접근을 차단합니다.

상세 설명: 플랫폼별 3가지 방어벽 세팅 가이드

🔥 1. 안드로이드 (Android key) 제한 유형을 `Android 앱`으로 선택합니다. 허용 항목에는 우리 앱의 `패키지 이름`(예: `com.period.quizzer`)과 앱 배포 시 사용한 서명 키의 `SHA-1 인증서 지문`을 넣습니다.

🔥 2. 아이폰 (iOS key) 제한 유형을 `iOS 앱`으로 선택합니다. 허용 항목에는 Xcode에 등록된 애플 생태계 고유 식별자인 `번들 ID(Bundle ID)`를 입력합니다.

🔥 3. 백엔드 서버 (Server key) 만약 푸시 알림(FCM)이나 백엔드 연동용 서버 키가 자동 생성되어 있다면, 제한 유형을 `IP 주소`로 선택합니다. 그리고 실제 운영 서버의 고정 퍼블릭 IP만 허용 항목에 등록해 주세요.

이정마 에디터

Security Analyst

웹 키만 막아두고 안심하지 마세요. 해커들은 안드로이드 에뮬레이터나 스크립트 봇을 이용해 여러분의 "앱 전용 키"를 타겟으로 삼아 과금 폭탄을 유발할 수 있습니다.