Firebase는 Firebase Extension이 지정된 작업을 수행할 수 있도록 서비스 계정을 통해 설치된 확장 프로그램의 각 인스턴스에 프로젝트 및 데이터에 대한 제한된 액세스 권한을 부여합니다.
서비스 계정이란?
서비스 계정은 특별한 유형의 Google 사용자 계정입니다. Google API를 사용하여 데이터에 액세스할 수 있도록 승인을 받은 사용자(사람이 아님)를 나타냅니다.
확장 프로그램을 설치하는 동안 Firebase가 프로젝트에 서비스 계정을 만듭니다. 설치된 각 확장 프로그램 인스턴스에는 자체 서비스 계정이 있습니다.
Firebase는 확장 프로그램의 서비스 계정에 특정 역할(권한 번들)을 할당하여 프로젝트 및 데이터에 대한 액세스를 제한합니다. 확장 프로그램이 작동하는 데 필요한 역할은 확장 프로그램 개발 중에 Firebase에서 결정합니다. 설치 시 Firebase는 이러한 역할을 확장 프로그램의 서비스 계정에 할당하며, 이러한 할당된 역할을 수정, 추가 또는 삭제해서는 안 됩니다. 그렇지 않으면 설치된 확장 프로그램이 예상대로 작동하지 않습니다. 하지만 확장 프로그램을 제거하면 서비스 계정(및 해당 액세스 권한)이 모두 삭제됩니다.
확장 프로그램용으로 생성된 서비스 계정은 ext-extension-instance-id@project-id.iam.gserviceaccount.com
Firebase 프로젝트와 연결된 모든 서비스 계정은
권한 및 역할
확장 프로그램을 개발하는 동안 Firebase는 확장 프로그램이 작동하는 데 필요한 액세스 수준을 결정합니다.
Firebase는 확장 프로그램 설치 중에 확장 프로그램의 서비스 계정에 할당해야 하는 역할(권한 번들)을 명시적으로 나열하는 방식으로 이러한 액세스 수준을 정의합니다.
각 역할(및 고유 권한)은 특정 제품 또는 서비스를 기반으로 합니다. 역할의 예로 firebasehosting.admin
, bigquery.dataEditor
, firebasedatabase.admin
이 있습니다. Firebase는 확장 프로그램의 사양 파일(extension.yaml
파일)에 확장 프로그램에 필요한 역할을 나열합니다.
공식 Firebase 확장 프로그램의 경우 Firebase는 이 역할 목록을 면밀히 검토하여 확장 프로그램의 액세스 권한이 작업 범위로 엄격하게 제한되었는지 확인합니다. Firebase Extensions 대시보드에서 확장 프로그램의 세부정보 페이지를 보거나 README
파일을 확인하여 확장 프로그램에 부여된 액세스 권한을 검토하고 직접 확인할 수도 있습니다.
각 역할에 포함된 권한에 대해 알아보세요.
확장 프로그램을 제거하면 어떻게 되나요?
프로젝트에서 확장 프로그램을 제거하면 Firebase는 해당 확장 프로그램의 인스턴스에 대해 생성된 서비스 계정을 삭제합니다. 서비스 계정을 삭제하면 프로젝트 또는 데이터에 대한 액세스 권한이 사라지기 때문에 프로젝트에서 확장 프로그램이 실행되지 않습니다.