Cloud API 및 라이브러리 관리

Cloud API를 사용하여 코드에서 Google Cloud 제품 및 서비스에 액세스할 수 있습니다. 이러한 Cloud API는 클라이언트 라이브러리를 통해 호출할 수 있는 간단한 JSON REST 인터페이스를 노출합니다.

이 문서에서는 Cloud API를 사용 설정하고 프로젝트에 Cloud 클라이언트 라이브러리를 추가하는 방법을 설명합니다.

Cloud API 탐색

IDE 내에서 사용 가능한 모든 Google Cloud API를 탐색하려면 다음 단계를 따르세요.

  1. 도구 > Cloud Code > Cloud API를 선택합니다.
  2. 사용 가능한 모든 API를 보려면 Google Cloud API 탐색기 트리를 펼칩니다. 탐색기는 Cloud API를 카테고리별로 그룹화합니다. Search API 검색창을 사용하여 특정 API를 찾을 수도 있습니다.
  3. 트리 뷰 탐색기에 표시된 Cloud API 목록을 보여주는 스크린샷.
  4. API를 클릭하면 상태, 해당 클라이언트 라이브러리의 언어별 설치 안내, 관련 문서 등의 추가 세부정보를 볼 수 있습니다.

Cloud API 사용 설정

API 세부정보를 사용하여 프로젝트에 대해 Cloud API를 빠르게 사용 설정하려면 다음 단계를 따르세요.

  1. Cloud API 세부정보 보기에서 Cloud API를 사용 설정하려는 Google Cloud 프로젝트를 선택합니다.
  2. API 사용 설정 버튼을 클릭합니다.

    API가 사용 설정되면 이 변경사항을 확인하는 메시지가 표시됩니다.

Cloud 클라이언트 라이브러리 추가

IntelliJ에서 프로젝트에 라이브러리를 추가하려면 다음 단계를 따르세요.

자바 Maven 프로젝트의 경우

  1. 도구 > Cloud Code > Cloud API를 선택합니다.
  2. Manage Google Cloud APIs(Google Cloud API 관리) 대화상자에 지원되는 라이브러리가 표시됩니다.

    Google Cloud API 관리 대화상자를 보여주는 스크린샷 이 대화상자에서는 라이브러리를 추가할 모듈을 선택할 수 있고, 추가할 수 있는 API 목록이 표시되고, API에 대한 정보를 표시하는 작업 영역이 제공됩니다.
  3. Google Cloud 클라이언트 라이브러리(권장) 또는 자바 Spring GCP 라이브러리 중에 원하는 라이브러리 유형을 선택합니다.
  4. Module(모듈) 드롭다운 메뉴에서 라이브러리를 추가할 모듈을 선택합니다.
  5. Add Maven Dependency(Maven 종속 항목 추가)를 클릭하여 프로젝트에 BOM과 클라이언트 라이브러리를 추가합니다.

다른 모든 프로젝트의 경우

  1. 도구 > Cloud Code > Cloud API를 선택합니다.
  2. Manage Google Cloud APIs(Google Cloud API 관리) 대화상자에 지원되는 라이브러리가 표시됩니다.

    Google Cloud API 관리 대화상자를 보여주는 스크린샷
                      이 대화상자는 추가할 수 있는 API의 목록을 보여주고 API에 대한 정보를 표시하는 작업 영역을 제공합니다.
  3. API 세부정보 페이지에 나열된 설치 안내에 따라 원하는 언어로 API를 설치합니다.

인증 설정

필요한 API를 사용 설정하고 필요한 클라이언트 라이브러리를 추가한 다음에는 성공적으로 인증할 수 있도록 애플리케이션을 구성해야 합니다. 구성은 개발 유형 및 실행 중인 플랫폼에 따라 달라집니다.

관련 인증 단계를 완료하면 애플리케이션에서 인증할 수 있고 애플리케이션 배포 준비가 완료됩니다.

로컬 개발

로컬 머신

  1. Cloud Code를 사용하면 IDE를 통해 Google Cloud에 로그인한 경우 애플리케이션 기본 사용자 인증 정보(ADC)를 설정할 수 있습니다.
    IDE 외부에서 Google Cloud에 로그인한 경우(예: gcloud 명령줄 도구를 통해) gcloud auth login --update-adc를 실행하여 ADC를 설정해야 합니다. 설정하면 Google Cloud 클라이언트 라이브러리에서 인증할 ADC도 찾을 수 있습니다.

minikube

  1. Cloud Code를 사용하면 IDE를 통해 Google Cloud에 로그인한 경우 애플리케이션 기본 사용자 인증 정보(ADC)를 설정할 수 있습니다.
    IDE 외부에서 Google Cloud에 로그인한 경우(예: gcloud 명령줄 도구를 통해) gcloud auth login --update-adc를 실행하여 ADC를 설정해야 합니다. 설정되면 minikube에서 인증할 ADC도 찾을 수 있습니다.
  2. minikube start --addons gcp-auth로 minikube를 시작합니다. 그러면 pod에 ADC가 마운트됩니다. Google Cloud에 대한 자세한 minikube 인증 가이드는 minikube gcp-auth 문서를 참조하세요.

기타 로컬 K8s 클러스터

  1. Cloud Code를 사용하면 IDE를 통해 Google Cloud에 로그인한 경우 애플리케이션 기본 사용자 인증 정보(ADC)를 설정할 수 있습니다.
    IDE 외부에서 Google Cloud에 로그인한 경우(예: gcloud 명령줄 도구를 통해) gcloud auth login --update-adc를 실행하여 ADC를 설정해야 합니다.
  2. Google Cloud 클라이언트 라이브러리가 사용자 인증 정보를 찾을 수 있도록 pod 또는 배포 매니페스트에서 Pod 사양을 수정하여 Kubernetes pod에 로컬 gcloud 디렉터리를 마운트합니다. Kubernetes pod 구성 예시:
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-app
      labels:
        name: my-app
    spec:
      containers:
      - name: my-app
        image: gcr.io/google-containers/busybox
        ports:
          - containerPort: 8080
        volumeMounts:
          - mountPath: /root/.config/gcloud
            name: gcloud-volume
      volumes:
        - name: gcloud-volume
          hostPath:
            path: /path/to/home/.config/gcloud

Cloud Run

  1. Cloud Code를 사용하면 IDE를 통해 Google Cloud에 로그인한 경우 애플리케이션 기본 사용자 인증 정보(ADC)를 설정할 수 있습니다.
    IDE 외부에서 Google Cloud에 로그인한 경우(예: gcloud 명령줄 도구를 통해) gcloud auth login --update-adc를 실행하여 ADC를 설정해야 합니다. 설정되면 Cloud Run 로컬 시뮬레이션 환경에서 인증할 ADC도 찾을 수 있습니다.

원격 개발

Google Kubernetes Engine

프로젝트 범위에 따라 GKE에서 Google Cloud 서비스를 인증하는 방법을 선택할 수 있습니다.

  • (개발 전용)
    1. 다음 설정을 사용하여 GKE 클러스터를 만듭니다.
      • Compute Engine 기본 서비스 계정(GKE가 기본적으로 사용하는 서비스 계정)을 사용하고 액세스 범위모든 Cloud API에 전체 액세스 허용으로 설정합니다(두 설정 모두 노드 풀 > 보안 섹션 내에서 액세스 가능).
        Compute Engine 서비스 계정이 노드에 배포된 모든 워크로드에서 공유되기 때문에 이 메서드는 권한을 과도하게 프로비저닝하므로 개발에만 사용해야 합니다.
      • 클러스터에서 워크로드 아이덴티티가 사용 설정되어 있지 않은지 확인합니다(클러스터 > 보안 섹션 내).
    2. Compute Engine 기본 서비스 계정에 필요한 역할을 할당합니다.
  • (프로덕션에 권장됩니다.)
    1. GKE에서 Google Cloud 서비스를 인증하도록 워크로드 아이덴티티로 GKE 클러스터 및 애플리케이션을 구성합니다. 그러면 Kubernetes 서비스 계정이 Google 서비스 계정과 연결됩니다.
    2. Kubernetes 배포 YAML 파일에서 .spec.serviceAccountName 필드를 설정하여 Kubernetes 서비스 계정을 참조하도록 Kubernetes 배포를 구성합니다.
      Cloud Code 템플릿으로 만든 앱에서 작업하는 경우 이 파일은 kubernetes-manifests 폴더 아래에 있습니다.
    3. 액세스하려는 Google Cloud 서비스에 추가 역할이 필요한 경우 앱 개발에 사용 중인 Google 서비스 계정에 역할을 부여합니다.

Cloud Run

  1. Cloud Run 애플리케이션 배포를 위해 새로운 고유 서비스 계정을 만들려면 서비스 계정 페이지에서 보안 비밀이 저장된 프로젝트를 선택합니다.

    서비스 계정 페이지로 이동

  2. 서비스 계정 만들기를 클릭합니다.
  3. 서비스 계정 만들기 대화상자에 서비스 계정을 설명하는 이름을 입력합니다.
  4. 서비스 계정 ID를 고유하고 쉽게 알아볼 수 있는 값으로 변경한 후 만들기를 클릭합니다.
  5. 액세스하려는 Google Cloud 서비스에 추가 역할이 필요하면 역할을 부여하고 계속을 클릭한 후 완료를 클릭합니다.
  6. Kubernetes 서비스 계정을 배포 구성에 추가하려면 Cloud Run: Deploy 실행 구성으로 이동하고 고급 버전 설정 섹션을 펼친 다음 서비스 계정 필드에 Kubernetes 서비스 계정을 지정합니다.
    Cloud Run에서 펼쳐진 고급 버전 설정 섹션: service-account-name@project-name.iam.gserviceaccount.com 형식의 서비스 계정 이름이 입력된 배포 및 서비스 계정 필드

Cloud Run

프로젝트 범위에 따라 GKE에서 Google Cloud 서비스를 인증하는 방법을 선택할 수 있습니다.

  • (개발 전용)
    1. 다음 설정을 사용하여 GKE 클러스터를 만듭니다.
      • Compute Engine 기본 서비스 계정(GKE가 기본적으로 사용하는 서비스 계정)을 사용하고 액세스 범위모든 Cloud API에 전체 액세스 허용으로 설정합니다(두 설정 모두 노드 풀 > 보안 섹션 내에서 액세스 가능).
        Compute Engine 서비스 계정이 노드에 배포된 모든 워크로드에서 공유되기 때문에 이 메서드는 권한을 과도하게 프로비저닝하므로 개발에만 사용해야 합니다.
      • 클러스터에서 워크로드 아이덴티티가 사용 설정되어 있지 않은지 확인합니다(클러스터 > 보안 섹션 내).
    2. Compute Engine 기본 서비스 계정에 필요한 역할을 할당합니다.
  • (프로덕션에 권장됩니다.)
    1. GKE에서 Google Cloud 서비스를 인증하도록 워크로드 아이덴티티로 GKE 클러스터 및 애플리케이션을 구성합니다. 그러면 Kubernetes 서비스 계정이 Google 서비스 계정과 연결됩니다.
    2. Kubernetes 서비스 계정을 배포 구성에 추가하려면 Cloud Run: Deploy 실행 구성으로 이동하여 고급 버전 설정 섹션을 펼친 다음 서비스 계정 필드에 Kubernetes 서비스 계정을 지정합니다.
      Cloud Run에서 펼쳐진 고급 버전 설정 섹션: Kubernetes 서비스 계정 이름으로 채워진 배포 및 서비스 계정 필드
    3. 액세스하려는 Google Cloud 서비스에 추가 역할이 필요한 경우 앱 개발에 사용 중인 Google 서비스 계정에 역할을 부여합니다.

Secret Manager 권한이 사용 설정된 원격 개발

인증에 서비스 계정을 사용하여 원격으로 개발하고 애플리케이션이 보안 비밀을 사용하는 경우 원격 개발 안내 외에도 몇 가지 추가 단계를 완료해야 합니다. 이 단계에서는 특정 Secret Manager 보안 비밀에 액세스하는 데 필요한 역할을 Google 서비스 계정에 할당합니다.

  1. 오른쪽 Cloud Code 사이드바에서 Secret Manager 탭을 클릭하여 Secret Manager 패널을 엽니다.

  2. 코드에서 액세스하려는 보안 비밀을 선택합니다.

  3. 권한 탭으로 전환하고 권한 수정 연필 아이콘을 클릭하여 보안 비밀의 권한을 구성합니다. 연필 아이콘을 클릭하면 웹브라우저에서 해당 보안 비밀에 대한 Secret Manager 구성 페이지가 열립니다.

    Secret Manager에서 선택된 권한 탭 및 강조표시된 권한 수정 아이콘

  4. Cloud Console에서 정보 패널 표시를 클릭한 후 구성원 추가를 클릭합니다.

    브라우저의 콘솔 보안 비밀 페이지에 나열된 보안 비밀 세부정보. 펼쳐진 정보 패널에 구성원 추가 버튼이 강조 표시됨

  5. 서비스 계정에 Secret Manager 보안 비밀 접근자 역할을 부여합니다.

    테스트에 구성원 추가 패널에서 새 구성원 필드에 service-account-name@project-name.iam.gservicesaccount.com 형식의 서비스 계정이 나열되고 역할 선택 드롭다운에서 Secret Manager 카테고리의 'Secret Manager 접근자' 역할이 선택됩니다.

    이제 서비스 계정에 이 특정 보안 비밀에 대한 액세스 권한이 있습니다.

지원 받기

IntelliJ IDE에서 의견을 제출하거나 문제를 신고하려면 Tools(도구) > Cloud Code > Help / About(도움말 / 정보) > Submit feedback or report an issue(의견 제출 또는 문제 신고)로 이동하여 GitHub에 문제를 신고하거나 Stack Overflow에서 질문합니다.

Google Cloud Slack 커뮤니티에 속한 #cloud-code 채널에도 가입할 수 있습니다.