cob gcp#
GCP 프로젝트와 서비스 계정을 관리하는 서브커맨드 그룹입니다. gcloud CLI 설치와
gcloud auth login 선행이 필요합니다.
| 서브커맨드 | 설명 |
service-account | Fastlane용 GCP 서비스 계정 + IAM role + JSON 키 생성 |
cob gcp service-account#
cob gcp service-account --env all
cob gcp service-account --env dev --keystore-dir android/keystore
| 옵션 | 설명 | 기본값 |
--env, -e |
대상 환경 (dev|stg|prod|all) |
all |
--keystore-dir | JSON 키 파일 저장 경로 | android/keystore |
환경별 실행 단계#
| 단계 | 작업 | 비고 |
| 1 | GCP 프로젝트 생성 | dev 환경은 gcloud 기본 프로젝트로 설정 |
| 2 |
서비스 계정 생성 |
{project_name}-{env}-fastlane@{PROJECT_ID}.iam.gserviceaccount.com (이미 있으면 스킵) |
| 3 | API 활성화 | 기본 서비스 4종 |
| 4 | IAM role 바인딩 | 20개 role |
| 5 |
JSON 키 발급 |
{keystore-dir}/{flavor}.json
(
development.json
/
staging.json
/
production.json
)
|
활성화되는 API (4종)#
firebaseappdistribution.googleapis.com
androidpublisher.googleapis.com
testing.googleapis.com
toolresults.googleapis.com
바인딩되는 IAM role (20개)#
| 분류 | Role |
| IAM |
roles/iam.serviceAccountAdmin, roles/iam.serviceAccountTokenCreator |
| Service Usage |
roles/serviceusage.serviceUsageConsumer
,
roles/serviceusage.apiKeysAdmin
,
roles/serviceusage.serviceUsageAdmin
|
| Compute/Functions |
roles/cloudfunctions.developer, roles/run.viewer |
| Firebase |
roles/firebasedynamiclinks.admin
,
roles/firebasemessaging.admin
,
roles/firebaseperformance.admin
,
roles/firebasedatabase.admin
,
roles/firebaseappdistro.admin
,
roles/firebaseappcheck.admin
,
roles/firebaseauth.admin
,
roles/firebasehosting.admin
,
roles/firebaseabt.admin
,
roles/firebasecrashlytics.admin
|
| 기타 |
roles/cloudconfig.admin
,
roles/cloudsql.client
,
roles/storage.objectAdmin
|
네이밍 예시#
.envrc가 ORG_TLD=im, ORG_NAME=laputa, PROJECT_NAME=kobic일 때:
| 환경 | GCP 프로젝트 ID | 서비스 계정 |
| dev |
im-laputa-kobic-dev |
kobic-dev-fastlane@im-laputa-kobic-dev.iam.gserviceaccount.com |
| stg |
im-laputa-kobic-stg |
kobic-stg-fastlane@im-laputa-kobic-stg.iam.gserviceaccount.com |
| prod |
im-laputa-kobic |
kobic-prod-fastlane@im-laputa-kobic.iam.gserviceaccount.com |
프로젝트 ID suffix는 prod에서 생략되지만, 서비스 계정 이름과 키 파일명에는
prod / production이 명시됩니다.
다음 단계#
발급된 키 파일({flavor}.json)은 cob secrets encode가
FIREBASE_{ENV}_APP_DISTRIBUTION_CREDENTIALS_BASE64로 인코딩해 .envrc에 기록합니다.