0

kubernetes 클러스터에 firebase-admin sdk를 통합하려고하지만 내 포드에서 다음 오류가 발생합니다. 클러스터에 필요한 사용 권한이 있어야합니다.Nodebase firebase-admin은 Google Kubernetes 엔진에서 애플리케이션 기본 자격 증명으로 인증합니다.

FIREBASE WARNING: Provided authentication credentials for the app named 
"[DEFAULT]" are invalid. This usually indicates your app was not 
initialized correctly. Make sure the "credential" property provided to 
initializeApp() is authorized to access the specified "databaseURL" and 
is from the correct project. 

초기화 코드 : 내 개발 환경 초기화에서

var admin = require("firebase-admin"); 

admin.initializeApp({ 
    credential: admin.credential.applicationDefault(), 
    databaseURL: "https://<DATABASE_NAME>.firebaseio.com" 
}); 

는 잘 작동합니다. gcloud가 내 프로젝트에 대해 인증되었습니다.

응용 프로그램 기본 자격 증명이 Kubernetes 엔진에서 어떻게 활성화됩니까?

미리 감사드립니다.

+1

이것은 일반적으로 자격 증명이 연결된 프로젝트가 데이터베이스 URL이 연결된 프로젝트와 다르다는 것을 나타냅니다. Kubernetes 환경에서 사용되는 프로젝트를 찾아야합니다. 'GOOGLE_APPLICATION_CREDENTIALS' 변수가 가리키는 변수는 무엇입니까? –

+0

답변 해 주셔서 감사합니다. 귀하의 의견을 통해 Google Cloud 프로젝트가 firebase 프로젝트와 다른 것으로 나타났습니다. 그래서 firebase를 연결하기 위해 서비스 계정을 사용해야합니다. – mikzaaa

답변

1

Kubernetes/Container 클러스터 내에 서비스 계정을 구성하여 데이터베이스/다른 Google Cloud Platform 서비스에 대한 인증을 받았습니까?

서비스 계정은 Google Cloud Platform API를 사용하는 데 필요한 승인을 제공하는 데 사용할 수있을뿐만 아니라 Kubernetes/Container Engine 앱도이를 사용하여 다른 서비스를 인증 할 수 있습니다.

서비스 계정에서 만든 자격 증명을 컨테이너 클러스터로 가져 오면 Kubernetes에서 실행되는 응용 프로그램이 컨테이너 계정을 사용할 수 있습니다.

Kubernetes Secret 리소스 유형을 사용하면 클러스터에 배포 된 응용 프로그램이 직접 사용할 수 있도록 자격 증명/키를 컨테이너 클러스터에 저장할 수 있습니다.

Hiranya가 그의 의견에서 지적한 것처럼 GOOGLE_APPLICATION_CREDENTIALS 환경 변수는 키를 가리킬 필요가 있습니다.

이것을 수행하는 방법에 대한 자세한 내용은 page, 특히 3, 4 및 5 단계를 참조하십시오.