사용자 또는 애플리케이션이 App Engine Admin API를 사용하려면 먼저 Google Cloud 프로젝트 소유자가 프로젝트에서 API를 사용 설정한 다음 사용자 또는 애플리케이션이 HTTP를 승인하는 데 사용할 수 있는 사용자 인증 정보를 만들어야 합니다.
예를 들어 소유자는 먼저 초기 Google Cloud 프로젝트를 만든 다음 해당 프로젝트에서 사용자 인증 정보를 만들어야 누구든 Admin API에 HTTP 요청을 보낼 수 있습니다. 소유자가 초기 프로젝트를 설정하고 구성한 후 해당 프로젝트를 관리 목적으로 사용하여 다른 리소스를 프로그래매틱 방식으로 만들고 관리할 수 있습니다. 예를 들면 다음과 같습니다.
- 다른 Google Cloud 프로젝트 만들기
- 새로 만든 모든 프로젝트의 App Engine 애플리케이션 만들기
- 새로 만든 App Engine 애플리케이션에 앱 버전 배포
- 배포한 모든 버전의 리소스 관리
시작하기 전에
다음 작업을 완료하려면 사용자 및 애플리케이션이 액세스할 수 있도록 Admin API를 사용 설정하려는 Google Cloud 프로젝트의 소유자여야 합니다.
프로젝트 구성 및 사용자 인증 정보 만들기
Google Cloud 프로젝트를 구성하고 사용자 인증 정보를 만들려면 다음 안내를 따르세요.
Google Cloud 프로젝트에서 App Engine Admin API와 Cloud Storage API를 모두 사용 설정합니다.
해당 프로젝트에서 사용자와 애플리케이션이 Admin API에 액세스하는 데 사용할 사용자 인증 정보를 만듭니다.
사용자 인증 정보를 만들려면 Google Cloud Platform 인증 가이드를 검토한 다음 앱의 요구사항에 맞는 OAuth 2.0 승인 과정을 선택합니다.
예
아래 예에서는 인증 흐름을 보여주기 위해 클라이언트 측 OAuth 2.0 흐름을 사용하여 토큰을 얻습니다. 이 토큰은 cURL 명령줄 도구를 사용하여 예시 앱을 [MY_PROJECT_ID]
프로젝트의 App Engine 애플리케이션에 배포하기 위해 Admin API로 수신되는 요청을 승인하는 데 사용됩니다.
인증 예
이 예에서 Implicit Grant Flow(암시적 권한 부여 과정)라고 하는 클라이언트 측 승인 과정을 진행하려면 사용자가 클라이언트 애플리케이션에 사용자 대신 Admin API에 액세스할 수 있는 권한을 승인해야 합니다. 반환되는 액세스 토큰은 일반적으로 해당 사용자가 애플리케이션에서 활성 상태인 동안 또는 약 60분 동안 유효합니다.
HTTP 요청
다음 URL은 Google Cloud Console에서 생성된 클라이언트 ID를 사용하여 액세스 토큰을 요청한 후 앱에서 토큰을 받는 승인된 URI로 사용자를 리디렉션합니다.
https://accounts.google.com/o/oauth2/v2/auth?
response_type=token&
client_id=[MY_CLIENT_ID].apps.googleusercontent.com&
scope=https://www.googleapis.com/auth/cloud-platform&
redirect_uri=[MY_REDIRECT_URI]
각 항목의 의미는 다음과 같습니다.
[MY_CLIENT_ID]
는 Google Cloud Console에 있는 사용자 인증 정보 중 하나의 클라이언트 ID입니다.[MY_REDIRECT_URI]
는 Google Cloud Console에 있는 동일한 사용자 인증 정보에서 승인된 해당 리디렉션 URI입니다. 리디렉션 URI를 지정하지 않으면 신뢰할 수 있는 URI를 지정해야 합니다(예:https://www.google.com
). 리디렉션 URI는 HTTP 응답이 전송되는 위치를 정의합니다. 프로덕션에서는 OAuth 2.0 서버의 응답을 처리하는 애플리케이션 인증 엔드포인트를 지정해야 합니다. 자세한 내용은 웹 서버 애플리케이션용 OAuth 2.0 사용을 참조하세요.
HTTP 응답
애플리케이션이 URL을 사용하여 승인을 요청하면 응답으로 액세스 토큰이 반환됩니다. 예를 들면 다음과 같습니다.
https://www.google.com/#access_token=[MY_ACCESS_TOKEN]&
token_type=Bearer&
expires_in=3600
여기서 [MY_ACCESS_TOKEN]
은 요청하여 반환된 액세스 토큰입니다.
액세스 토큰을 얻은 후에는 이를 사용하여 Admin API에 액세스할 수 있습니다. 예를 들어 애플리케이션의 인증 엔드포인트는 응답에서 프로그래매틱 방식으로 액세스 토큰을 추출할 수 있습니다. cURL 명령어에서 수동으로 토큰을 사용하는 방법은 다음 예를 참조하세요.
cURL을 사용한 HTTP 요청 예
다음 cURL 명령어는 [MY_ACCESS_TOKEN]
액세스 토큰을 사용하여 HTTP POST
요청을 수행하는 방법을 보여줍니다. 이 cURL 명령어는 app.json
구성 파일에 정의된 리소스를 MY_PROJECT_ID
프로젝트의 애플리케이션에서 default
서비스에 있는 v1
버전에 배포합니다.
curl -X POST -T "app.json" -H "Content-Type: application/json" -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/default/versions