클라이언트 라이브러리를 사용하여 클라우드 서비스에 인증

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

이 페이지에서는 클라이언트 라이브러리 및 애플리케이션 기본 사용자 인증 정보를 사용하여 Google API에 액세스하는 방법을 설명합니다.

클라이언트 라이브러리를 사용하면 지원되는 언어로 Google Cloud API에 쉽게 액세스할 수 있습니다. 서버에 원시 요청을 수행해서 Google Cloud API를 직접 사용할 수 있지만 클라이언트 라이브러리는 작성할 코드 양을 크게 줄여 주는 간소화 기능을 제공합니다. 이는 클라이언트 라이브러리가 애플리케이션 기본 사용자 인증 정보(ADC)를 지원하기 때문에 특히 더 그렇습니다.

클라이언트 라이브러리 유형

Cloud 클라이언트 라이브러리와 Google API 클라이언트 라이브러리라는 두 가지 유형의 클라이언트 라이브러리를 사용할 수 있습니다. 두 유형 모두 애플리케이션 기본 사용자 인증 정보를 지원합니다. 자세한 내용은 클라이언트 라이브러리 설명을 참조하세요.

클라이언트 라이브러리에서 애플리케이션 기본 사용자 인증 정보 사용

애플리케이션 기본 사용자 인증 정보를 사용하여 애플리케이션을 인증하려면 먼저 애플리케이션이 실행되는 환경에 애플리케이션 기본 사용자 인증 정보를 설정해야 합니다. 클라이언트 라이브러리를 사용하여 클라이언트를 만들 때 클라이언트 라이브러리는 ADC에 제공한 사용자 인증 정보를 자동으로 확인하고 사용하여 코드에서 사용하는 API에 인증합니다. 애플리케이션이 토큰을 명시적으로 인증하거나 관리할 필요가 없습니다. 이러한 요구사항은 인증 라이브러리에서 자동으로 관리됩니다.

클라이언트 만들기 예시

다음 코드 샘플은 Cloud Storage 서비스용 클라이언트를 만듭니다. 코드에는 여러 클라이언트가 필요할 수 있습니다. 이 샘플에서는 클라이언트를 만들고 명시적으로 인증하기 위한 코드 없이 사용하는 방법을 보여주기 위한 것입니다.

다음 샘플을 실행하려면 먼저 ADC를 설정하고 Cloud Storage 클라이언트 라이브러리를 설치해야 합니다.

자바


import com.google.cloud.compute.v1.Instance;
import com.google.cloud.compute.v1.InstancesClient;
import java.io.IOException;

public class AuthenticateImplicitWithAdc {

  public static void main(String[] args) throws IOException {
    // TODO(Developer):
    //  1. Before running this sample,
    //  set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc
    //  2. Replace the project variable below.
    //  3. Make sure that the user account or service account that you are using
    //  has the required permissions. For this sample, you must have "compute.instances.list".
    String projectId = "your-google-cloud-project-id";
    authenticateImplicitWithAdc(projectId);
  }

  // When interacting with Google Cloud Client libraries, the library can auto-detect the
  // credentials to use.
  public static void authenticateImplicitWithAdc(String project) throws IOException {

    String zone = "us-central1-a";
    // This snippet demonstrates how to list instances.
    // *NOTE*: Replace the client created below with the client required for your application.
    // Note that the credentials are not specified when constructing the client.
    // Hence, the client library will look for credentials using ADC.
    //
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `instancesClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (InstancesClient instancesClient = InstancesClient.create()) {
      // Set the project and zone to retrieve instances present in the zone.
      System.out.printf("Listing instances from %s in %s:", project, zone);
      for (Instance zoneInstance : instancesClient.list(project, zone).iterateAll()) {
        System.out.println(zoneInstance.getName());
      }
      System.out.println("####### Listing instances complete #######");
    }
  }
}

Python


from google.cloud import storage

def authenticate_implicit_with_adc(project_id="your-google-cloud-project-id"):
    """
    When interacting with Google Cloud Client libraries, the library can auto-detect the
    credentials to use.

    // TODO(Developer):
    //  1. Before running this sample,
    //  set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc
    //  2. Replace the project variable.
    //  3. Make sure that the user account or service account that you are using
    //  has the required permissions. For this sample, you must have "storage.buckets.list".
    Args:
        project_id: The project id of your Google Cloud project.
    """

    # This snippet demonstrates how to list buckets.
    # *NOTE*: Replace the client created below with the client required for your application.
    # Note that the credentials are not specified when constructing the client.
    # Hence, the client library will look for credentials using ADC.
    storage_client = storage.Client(project=project_id)
    buckets = storage_client.list_buckets()
    print("Buckets:")
    for bucket in buckets:
        print(bucket.name)
    print("Listed all storage buckets.")

다음 단계