이 프롬프트는 Gemini CLI와 같은 AI 어시스턴트가 앱의 Firebase Security Rules을 생성하고 개선하는 데 도움이 될 수 있습니다. 프롬프트를 사용하여 사용자별 액세스 권한 부여, 역할 기반 권한 구현, 데이터 검증과 같은 일반적인 사용 사례의 Security Rules을 작성할 수 있습니다.
이 프롬프트는 다음을 위한 Security Rules 생성에 중점을 둡니다.
- Cloud Firestore: 앱의 로직에 따라 컬렉션과 문서를 보호합니다.
- Cloud Storage for Firebase: 저장된 파일의 액세스 권한을 확인합니다.
이 프롬프트를 사용하면 강력한 보안 상황을 시작하는 데 도움이 되지만 프로덕션에 배포하기 전에 항상 Security Rules을 철저히 테스트해야 합니다. Security Rules 테스트에 대한 자세한 내용은 Firebase Security Rules 시작하기: Security Rules 테스트를 참조하세요.
기본 요건
- Firebase Security Rules 권장사항을 숙지합니다.
- Firebase Security Rules의 단위 테스트를 실행하고 Firebase Local Emulator Suite을 사용하려면 Node.js를 설치하고 Firebase CLI를 설치합니다. 전체 안내는 Firebase Local Emulator Suite 설치, 구성, 통합을 참조하세요.
- 권장사항: 아직 설치하지 않았다면 Gemini CLI를 설치합니다.
다음 안내에서는 Gemini CLI용 Firebase 확장 프로그램을 설치하고 사용하여 Security Rules을 생성하는 방법을 설명합니다. 다른 AI 어시스턴트를 사용하려면
firebase-tools저장소에서 Cloud Firestore 또는 Cloud Storage for Firebase의 프롬프트를 복사하여 선택한 AI 어시스턴트에 붙여넣으면 됩니다. - Gemini CLI용 Firebase 확장 프로그램은 Firebase MCP 서버에 연결하여 Firebase Security Rules을 생성하고 검증하는 프롬프트에 액세스하고 Security Rules 테스트 및 배포를 지원합니다. 확장 프로그램을 사용하여 Firebase Security Rules을 생성하기 전에 Firebase MCP 서버를 설치합니다.
제한사항
Google에서는 이 환경을 적극적으로 개선하고 있으므로 제한사항 목록이 변경될 수 있습니다. 업데이트가 있는지 자주 확인하세요.
이 프롬프트는 Cloud Firestore 및 Cloud Storage for Firebase의 Firebase Security Rules을 생성하도록 설계되었습니다. 아직 Firebase Realtime Database의 Security Rules을 생성할 수 없습니다.
Firebase Security Rules은 Firebase Admin SDK를 사용하는 경우와 같이 서버 또는 기타 백엔드 환경에서 데이터베이스나 버킷에 액세스할 때는 호출되지 않습니다. Admin SDK를 사용하는 경우 백엔드 코드에서 승인 및 데이터 유효성 검사를 관리해야 합니다.
Firebase Console 내 Firebase의 Gemini는 이 프롬프트를 사용하더라도 Firebase Security Rules을 생성할 수 없습니다. 대신 이 페이지에 설명된 Gemini CLI와 같이 코드베이스에 액세스할 수 있는 대체 AI 어시스턴트를 사용하세요.
프롬프트 사용
이 프롬프트는 Gemini CLI용 Firebase 확장 프로그램 내의 Security Rules 기능을 통해 Security Rules 및 테스트를 생성하는 데 사용할 수 있습니다. 이 확장 프로그램은 소스 코드를 분석하여 Cloud Firestore 및 Cloud Storage의 데이터 스키마와 액세스 패턴을 식별하는 데 도움을 줍니다. 최소 권한의 원칙에 따라 Security Rules을 작성하고 반복적인 '공격' 시뮬레이션을 통해 취약점을 발견하도록 설계되었습니다. 최종 확인을 지원하기 위해 @firebase/rules-unit-testing을 사용하는 시작 단위 테스트 모음을 제공하므로 Firebase Local Emulator Suite을 사용하여 로컬에서 보안 로직을 확인할 수 있습니다.
이 확장 프로그램을 사용하려면 이 섹션에 설명된 세 단계를 따라야 합니다.
1단계: Security Rules 및 테스트 생성
확장 프로그램을 설치하고 실행합니다.
Gemini CLI용 Firebase 확장 프로그램을 설치합니다.
gemini extensions install https://github.com/gemini-cli-extensions/firebaseGemini CLI를 시작합니다.
gemini프로젝트의 루트에서 확장 프로그램을 실행하여 Cloud Firestore 또는 Cloud Storage의 Security Rules을 생성합니다.
Cloud Firestore의 Security Rules 생성:
/firestore:generate_security_rules상위 디렉터리에서 확장 프로그램은
firestore.rules파일과 생성된 Security Rules의 단위 테스트가 포함된 Node.js 프로젝트가 있는 새security_rules_test_firestore디렉터리를 만듭니다.Cloud Storage for Firebase의 Security Rules 생성:
/storage:generate_security_rules상위 디렉터리에서 확장 프로그램은
storage.rules파일과 생성된 Security Rules의 단위 테스트가 포함된 Node.js 프로젝트가 있는 새security_rules_test_storage디렉터리를 만듭니다.
2단계: Security Rules 유효성 검 및 테스트 결과 검토
AI 어시스턴트가 다음을 수행해야 합니다. 확장 프로그램이 실행된 후 생성된 요약이 표시됩니다.
구문 유효성 검사: Security Rules을 생성한 후 Gemini CLI는 Firebase MCP 서버의
firebase_validate_security_rules명령어를 사용하여 구문을 자동으로 검사합니다.단위 테스트: 구문 유효성 검사 후 Gemini CLI는 Firebase Local Emulator Suite을 사용하여 생성된 단위 테스트를 실행하려고 시도합니다.
테스트가 자동으로 실행되지 않으면 별도의 터미널에서 Firebase Local Emulator Suite을 시작한 후 다음 옵션 중 하나를 사용하여 테스트를 실행합니다.
옵션 1: Gemini CLI에 테스트 실행을 지시합니다.
Firebase Emulator Suite is running in a separate terminal. Please execute the tests.옵션 2:
rules_test또는storage_rules_test디렉터리의README.md파일에 있는 안내에 따라 수동으로 테스트를 실행합니다.
3단계: Firebase 프로젝트에 Security Rules 배포
생성된 Security Rules의 결과가 만족스러우면 다음 Firebase CLI 명령어를 사용하여 Security Rules을 Firebase 프로젝트에 배포합니다.
Cloud Firestore
firebase deploy --only firestore:rulesCloud Storage for Firebase
firebase deploy --only storage
추가 리소스
- 보안 상황에 대한 추가 지원이 필요한 경우 Gemini CLI용 보안 확장 프로그램을 사용할 수도 있습니다. 이 확장 프로그램은 오픈소스 확장 프로그램으로, 코드 변경사항을 분석하여 보안 위험과 취약점을 식별합니다.