Admin API 액세스

사용자 또는 애플리케이션이 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 프로젝트를 구성하고 사용자 인증 정보를 만들려면 다음 안내를 따르세요.

  1. Google Cloud 프로젝트에서 App Engine Admin API와 Cloud Storage API를 모두 사용 설정합니다.

    두 API 사용 설정

  2. 해당 프로젝트에서 사용자와 애플리케이션이 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 콘솔에서 생성된 클라이언트 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 콘솔의 사용자 인증 정보 중 하나의 클라이언트 ID입니다.
  • [MY_REDIRECT_URI]: Google Cloud 콘솔의 동일한 사용자 인증 정보에 해당하는 승인된 리디렉션 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

다음 단계