Firebase는 Firebase Extension이 지정된 작업을 수행할 수 있도록 서비스 계정을 통해 설치된 확장 프로그램의 각 인스턴스에 프로젝트 및 데이터에 대한 제한된 액세스 권한을 부여합니다.
서비스 계정이란?
서비스 계정은 특별한 유형의 Google 사용자 계정입니다. Google API를 사용하여 데이터에 액세스할 수 있도록 승인을 받은 사용자(사람이 아님)를 나타냅니다.
확장 프로그램을 설치하는 동안 Firebase가 프로젝트에 서비스 계정을 만듭니다. 설치된 각 확장 프로그램 인스턴스에는 자체 서비스 계정이 있습니다.
Firebase는 확장 프로그램의 서비스 계정에 특정 역할(권한 번들)을 할당하여 프로젝트 및 데이터에 대한 액세스를 제한합니다. 확장 프로그램이 작동하는 데 필요한 역할은 확장 프로그램 개발 중에 Firebase에서 결정합니다. 설치 시 Firebase는 이러한 역할을 확장 프로그램의 서비스 계정에 할당하며, 이러한 할당된 역할을 수정, 추가 또는 삭제해서는 안 됩니다. 그렇지 않으면 설치된 확장 프로그램이 예상대로 작동하지 않습니다. 하지만 확장 프로그램을 제거하면 서비스 계정(및 해당 액세스 권한)이 모두 삭제됩니다.
확장 프로그램용으로 생성된 서비스 계정은 ext-extension-instance-id@project-id.iam.gserviceaccount.com 형식입니다.
Firebase 프로젝트와 연결된 모든 서비스 계정은 settings프로젝트 설정서비스 계정 탭에서 볼 수 있습니다.
권한 및 역할
확장 프로그램을 개발하는 동안 Firebase는 확장 프로그램이 작동하는 데 필요한 액세스 수준을 결정합니다.
Firebase는 확장 프로그램 설치 중에 확장 프로그램의 서비스 계정에 할당해야 하는 역할(권한 번들)을 명시적으로 나열하는 방식으로 이러한 액세스 수준을 정의합니다.
각 역할(및 고유 권한)은 특정 제품 또는 서비스를 기반으로 합니다. 역할의 예로 firebasehosting.admin, bigquery.dataEditor, firebasedatabase.admin이 있습니다. Firebase는 확장 프로그램의 사양 파일(extension.yaml 파일)에 확장 프로그램에 필요한 역할을 나열합니다.
공식 Firebase 확장 프로그램의 경우 Firebase는 이 역할 목록을 면밀히 검토하여 확장 프로그램의 액세스 권한이 작업 범위로 엄격하게 제한되었는지 확인합니다. Firebase Extensions 대시보드에서 확장 프로그램의 세부정보 페이지를 보거나 README 파일을 확인하여 확장 프로그램에 부여된 액세스 권한을 검토하고 직접 확인할 수도 있습니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-09-04(UTC)"],[],[],null,["\u003cbr /\u003e\n\nFor a Firebase Extension to perform its specified actions, Firebase\ngrants each instance of an installed extension limited access to your project\nand data via a ***service account***.\n\nWhat's a service account?\n\n**A\n[service account](//cloud.google.com/iam/docs/understanding-service-accounts)\nis a special type of Google user account. It represents a non-human user that's\nauthorized to access data using Google APIs.**\n\nDuring installation of an extension, Firebase creates a service account in your\nproject. Each installed instance of an extension has its own service account.\n\nFirebase limits access to your project and data by assigning an extension's\nservice account specific [***roles*** (bundles of\npermissions)](/docs/projects/iam/roles). The roles that an extension requires to\noperate are determined by Firebase during extension development. At\ninstallation, Firebase assigns these roles to an extension's service account,\nand you shouldn't modify, add to, or delete any of these assigned roles\n(otherwise your installed extension won't work as expected). You can, though,\n[uninstall the extension](#uninstall-extension), which deletes the service\naccount (and its access) altogether.\n\nService accounts created for extensions are in the format:\n**ext-** \u003cvar translate=\"no\"\u003eextension-instance-id\u003c/var\u003e***@*** \u003cvar translate=\"no\"\u003eproject-id\u003c/var\u003e**.iam.gserviceaccount.com**.\n\nYou can view all the service accounts associated with your Firebase project in\nthe\n[*Service accounts*](//console.firebase.google.com/project/_/settings/serviceaccounts/adminsdk)\ntab of your\nsettings *Project settings*.\n\nPermissions and roles\n\nDuring development of an extension, Firebase determines the level of access that\nan extension requires to operate.\n\nFirebase defines this level of access by explicitly listing the ***roles***\n(bundles of permissions) that Firebase should assign to the extension's\n[service account](#service-account) during installation of the extension.\n\nEach role (and its inherent permissions) is based on a specific product or\nservice. Examples of roles are `firebasehosting.admin`, `bigquery.dataEditor`,\nand `firebasedatabase.admin`. Firebase lists the required roles for an extension\nin the extension's specification file (the\n[`extension.yaml` file](/docs/extensions/overview-use-extensions#view-source-code)).\n\nFor official Firebase extensions, Firebase thoroughly reviews this list of\nroles to ensure that an extension's access is strictly limited to the scope of\nthe extension's tasks. You can also review and confirm for yourself the access\ngranted to an extension by viewing the extension's details page in the\n[Firebase Extensions dashboard](https://console.firebase.google.com/project/_/extensions/) or viewing its\n[`README` file](/docs/extensions/overview-use-extensions#view-source-code).\n\nLearn about the permissions included in each role:\n\n- [Firebase product-level roles](/docs/projects/iam/roles-predefined-product)\n- [Google Cloud\n roles](//cloud.google.com/iam/docs/understanding-roles#predefined_roles)\n\nWhat happens when I uninstall an extension?\n\nWhen you\n[uninstall an extension](/docs/extensions/manage-installed-extensions#uninstall)\nfrom your project, Firebase deletes the [service account](#service-account)\ncreated for that instance of the extension. After this deletion of the service\naccount, the extension cannot run in your project because it no longer has any\naccess rights to your project or data."]]