App Engine 웹 앱에서 Google Cloud Storage에 액세스 할 때 인증에 문제가 있습니다. 응용 프로그램 기본 자격 증명을 사용하고 싶습니다. 어쩌면 누군가가 조언을 해줄 수 있습니다.gcloud : Cloud Storage 용 appengine의 기본 애플리케이션 자격증 명 (java)
저는 서비스 계정이 "[email protected]"인 프로젝트가 있습니다.
섹션 IAM 프로젝트에는 프로젝트 소유자 인 [email protected] (내 전자 메일 주소) 만 소유자 역할이 있습니다.
프로젝트에는 두 개의 Cloud Storage 버킷 staging.x.appspot.com과 x.appspot.com이 있습니다. 나는 그들의 허가를 편집하지 않았다.
프로젝트에는 Java로 작성된 appengine 웹 앱이 있습니다. 해당 코드에서,이 같은 클라우드 스토리지에 액세스하려면 : 받는다는 종속성
import com.google.cloud.AuthCredentials;
import com.google.cloud.storage.Storage;
AuthCredentials credentials=AuthCredentials.createApplicationDefaults();
Storage storage=StorageOptions.builder().authCredentials(credentials).build().service();
는
<dependency>
<groupId>com.google.appengine</groupId>
<artifactId>appengine-api-1.0-sdk</artifactId>
<version>1.9.38</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-appengine</artifactId>
<version>0.4.0</version>
</dependency>
<dependency>
<groupId>com.google.cloud</groupId>
<artifactId>gcloud-java</artifactId>
<version>0.2.3</version>
</dependency>
나는
mvn clean appengine:devserver
와 개발 서버를 시작하고 함께 배포
mvn clean appengine:update
그것이 충분하다고 생각했습니다.
하지만 한 컴퓨터에서는 devserver에서 작동하지만 다른 컴퓨터에서는 예외 인 "401 잘못된 인증"이 표시됩니다. 나는 컴퓨터의 차이점을 모른다.
배포 된 앱에서 금지 된 403 예외가 발생합니다.
의해 발생 : com.google.api.client.googleapis.json.GoogleJsonResponseException : 403 { "코드"403 "오류"[{ "도메인": "글로벌" "메시지 ":"금지 ", "이유는 "" "" " }], "메시지를 금지} " 을 금지 내가 잘못
을 뭐하는 거지?
https://developers.google.com/identity/protocols/application-default-credentials#toolsupport에서 App Engine 자체에서 실행할 때 응용 프로그램 기본 자격 증명이 정상적으로 작동하지만 App Engine을 시작하면 기본적으로 로컬로만 작동 할 수 있습니다. "gcloud 미리보기 앱 실행". 또는 샘플을 실행하기 전에'gcloud auth login'을 실행 해보십시오. –
^^ 이것을 반향합니다. 기본 자격 증명을 사용하기 전에'gcloud auth login' 또는'gcloud auth activate-service-account' ([docs] (https://cloud.google.com/sdk/gcloud/reference/auth/))를 실행해야합니다. dev에 근무. – Nick
이 스레드의 모든 업데이트? – Nick