GDF - Setup


Google Cloud Console

구글 클라우드 콘솔은 구글 클라우드 제품을 사용하는 시스템을 규정하고, 구성하고, 관리하고, 관측하는데 사용되는 웹 UI이다. Dialogflow 자원을 설정하고 관리하기 위해 Google Cloud Console을 사용한다.

프로젝트 만들기

Google Cloud에 의해 제공되는 서비스를 사용하기위해, 프로젝트를 만들어야 한다. 프로젝트는 모든 구글 클라우드 자원을 관리한다. 프로젝트는 여러 공동 작업자, 활성화된 API, 모니터링 툴, 결제 정보, 인증과 접근 관리를 포함한다. 프로젝트 하나를 만들거나, resource hierarchy에서 구글 클라우드 자원을 구성하기 위해 여러 프로젝트를 만들 수도 있다. 프로젝트를 만들 때, project ID를 메모해둬라. 이 ID는 API를 부르는데 사용된다.

API 활성화 시키기

프로젝트에 사용하기위해 Dialogflow API를 활성화시켜야 한다. 여기서 API를 활성화시키자.

스크린샷 2020-11-20 오전 11 44 52

활성화를 시키면 아래와 같이 사용자 인증 정보로 이동하라고 한다.

스크린샷 2020-11-20 오전 11 46 14

Set up authentication

API를 사용하지 않을 거라면 이 단계를 건너뛰어도 된다

만약 Dialogflow API를 이용할 계획이 있다면, 인증 설정을 해야 한다. API를 사용하든 모든 클라이언트 어플리케이션은 인증 되어야 하며 요청한 자원에 접근하는 것이 보장되어야 한다. 이 파트는 중요한 인증 개념과 설정하는 방법에 대해 설명한다.

service account

인증에 여러 옵션들이 있지만, 인증과 접근 관리에 서비스 계정을 사용하는 것이 권장된다. 서비스 계정은 끝단의 유저와 반대로 앱에 credentials를 제공한다. 서비스 계정들은 프로젝트에 의해 소유되고, 프로젝트를 위해 많은 서비스 계정을 만들 수 있다.

역할

스크린샷 2020-11-20 오전 11 51 12

Identity가 API를 부르면, Google Cloud는 그 객체가 옳은 접근 권한을 갖고 있는지 확인한다. 이 권한을 서비스 계정에 역할을 부여함으로써 보장할 수 있다.

Dialogflow API를 시도하기 위해, Project > Owner 역할을 선택해서 서비스 계정이 프로젝트에 대해 모든 권한을 갖고 있을 수 있게 할 수 있다.

서비스 계정 키

서비스 계정은 하나 이상의 퍼블릭/개인 키 쌍과 관련이 있다. 만약 새로운 키 쌍을 생성하면, 개인 키를 다운 받아야 한다. 개인키는 API를 부를 때 credentials를 생성하기 위해 사용된다. 사용자는 개인키와 key rotation과 같은 다른 관리 행위에 책임이 있다.

서비스 계정 생성 및 개인 키 파일 다운받기

  1. Cloud Console에서, Create service account key 페이지에 간다.
  2. Service account 목록에서, New service account를 클릭한다. 스크린샷 2020-11-20 오후 12 01 36
  3. 서비스 계정 이름 필드에 이름을 입력한다.
  4. 역할에서 Project>Owner를 클릭한다.
  5. 생성을 클릭한다. JSON key 파일이 컴퓨터에 다운로드 될 것이다.

서비스 계정 키 파일 사용하기

환경 변수 GGOOGLE_APPLICATION_CREDENTIALS를 설정해서 application code에 인증 credential을 제공하라. [PATH] 부분을 json 파일의 파일경로로 바꿔라. 이 변수는 현재 셸 세션에만 적용되기 때문에 새로운 세션을 열면 다시 변수를 설정해줘야 한다.

  • Linux / macOS export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/my-key.json"

  • Windows

powershell $env:GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

cmd set GOOGLE_APPLICATION_CREDENTIALS=[PATH]