Cloud APIs 및 라이브러리 관리

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

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

Cloud APIs 탐색

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

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

Cloud APIs 사용 설정

또한 API 세부정보를 사용하여 프로젝트에서 Cloud APIs를 빠르게 사용 설정할 수 있습니다. 방법은 다음과 같습니다.

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

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

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

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

자바 Maven 프로젝트의 경우

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

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

다른 모든 프로젝트의 경우

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

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

Cloud Run

  1. 서비스 계정 페이지를 통해 Cloud Run 애플리케이션을 배포하기 위해 새로운 고유 서비스 계정을 만듭니다. 보안 비밀이 저장된 것과 동일한 프로젝트를 선택해야 합니다.
    서비스 계정 페이지로 이동
  2. 액세스하려는 Google Cloud 서비스에 추가 역할이 필요한 경우 앱 개발에 사용 중인 Google 서비스 계정에 역할을 부여합니다.
    역할 이해 가이드는 IAM 역할 유형을 설명하고 ID에 부여할 수 있는 사전 정의된 역할을 보여줍니다.
  3. 서비스 계정을 배포 구성에 추가합니다. 이렇게 하려면 Cloud Run: 배포 실행 구성으로 이동하여 고급 버전 설정 섹션을 확장하고, 서비스 계정 필드에 서비스 계정을 입력합니다.
    Cloud Run에서 펼쳐진 고급 버전 설정 섹션: service-account-name@project-name.iam.gserviceaccount.com 형식의 서비스 계정 이름이 입력된 배포 및 서비스 계정 필드

Cloud Run

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

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

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

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

  1. Secret Manager 패널을 열고 코드에서 액세스하려는 보안 비밀을 선택합니다.

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

    보안 비밀 관리자에서 선택된 권한 탭 및 강조표시된 권한 수정 아이콘

  2. Cloud Console의 정보 패널에서 구성원 추가를 선택합니다.

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

  3. 서비스 계정에 보안 비밀 관리자 보안 비밀 접근자 역할을 부여합니다.

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

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

지원 받기

의견을 보내려면 GitHub에서 문제를 신고하거나 Stack Overflow에서 질문하세요.