2

내 프로젝트에서 서로 통신해야하는 App Engine 및 Container Engine 서비스를 결합하려고합니다.동일한 프로젝트 내의 컨테이너 엔진에서 App Engine 요청 인증

컨테이너 엔진 서비스는 App Engine 서비스에 인증 된 요청을해야합니다. 이전에 Google API와 대화하기 위해 Application Default Credentials를 사용 했으므로 내 서비스에도 사용할 수 있다고 생각했습니다.

client, _ := google.DefaultClient(ctx, "https://www.googleapis.com/auth/cloud-platform") 
req, _ := http.NewRequest("GET", URL, nil) 
client.Do(req) 

IAM에서 : 요청을 만드는 데 사용됩니다 일치하는

handlers: 
    - url: /.* 
    script: _go_app 
    login: admin 

단순화 된 코드 :

앱 엔진 YAML에서

, 나는이 같은 로그인 제한 핸들러를 정의한 권한을 부여한 후 서비스 계정에 대한 App Engine 관리자 권한을 부여했습니다.

그러나 결과는 Google 로그인 페이지로 리디렉션되는 302입니다. 이 설정이 불가능하거나 구성 오류가 발생 했습니까?

답변

0

app.yaml 구성 파일에 login: admin을 제공하면 App Engine에 302에 대한 모든 요청을 '/.*'처리기로 리디렉션하여 로그인 양식으로 보냅니다. 이 양식은 요청자에게 자격 증명을 요청하고 제공된 자격 증명을 다시 확인하여 IAM Administrators 세트가 프로젝트의 구성원인지 확인합니다.

Application Default Credentials을 사용하고 클라이언트 대 서버가 아닌 Server-to-Server 통신이므로이 핸들러에 대해 app.yaml에서 login: admin 클라이언트 인증 단계를 제거 할 수 있습니다.