Cloud Support API 사용자 가이드

이 페이지에서는 cloudsupport.googleapis.com API 버전 1을 시작하는 방법을 설명합니다. 이 API의 버전 2는 현재 GA 이전 출시 버전으로만 사용할 수 있습니다. 자세한 내용은 출시 단계 설명을 참조하세요.

프로세스 개요

이 섹션에서는 API를 시작하기 위한 개략적인 프로세스를 설명합니다.

  1. 고객 관리팀이 고객을 위해 지원 계정을 생성합니다. 이는 모든 추가 작업의 기본 요건입니다.
  2. 고객은 API에 액세스하는 데 사용할 프로젝트 ID를 고객 관리팀에 지정합니다. 이 프로젝트는 API에 지정된 소비자 프로젝트가 됩니다.

    이 프로젝트는 API가 사용 설정된 리소스이지만 API를 호출하는 사용자 인증 정보를 모든 Google Cloud 프로젝트에서 사용할 수 있습니다.

  3. 고객은 소비자 프로젝트용 API 키를 생성합니다. 고객은 이 API 키를 사용하여 API를 호출합니다. API 키를 생성하려면 API 키 사용을 참조하세요.

  4. 고객 관리팀은 올바른 공개 상태 라벨을 적용하여 고객팀 API 액세스를 허용합니다.

  5. 고객 관리팀은 서비스 계정에 액세스하기 위한 고객 지원 계정을 허용합니다.

  6. 고객은 Google Cloud Console의 Cloud Support API 페이지로 이동하고 사용 설정을 클릭하여 Cloud Support API를 사용 설정합니다.

    Cloud Support API 페이지로 이동

서비스 계정을 통합하려면 다음 안내를 따르세요.

  1. 고객은 서비스 계정 이해의 안내에 따라 하나 이상의 서비스 계정을 프로비저닝합니다.

  2. 고객은 Google Cloud 콘솔의 IAM 탭에서 Organization Viewer 역할을 서비스 계정에 부여하거나 resourcemanager.organizations.get 권한을 부여하는 다른 역할을 부여합니다.

    프로그래매틱 방식으로 처리할 수도 있습니다.

      gcloud organizations add-iam-policy-binding
      organizations/ord-id
      --role roles/resourcemanager.organizationViewer
      --member service-account
     

  3. 고객은 Google Cloud 콘솔의 지원 > 설정 페이지에서 하나 이상의 서비스 계정을 지원 사용자로 추가합니다.

  4. 고객은 JIT 커넥터 또는 다른 애플리케이션이 사용자 인증 정보를 공유하여 서비스 계정에 액세스하도록 허용합니다. 단계는 인증 개요를 참조하세요.

  5. 고객에게 이미 사용자 인증 정보 관리 도구가 있는 경우 Google Cloud 서비스 계정에 동일한 도구를 사용하는 것이 좋습니다.

  6. 고객의 애플리케이션은 최종 사용자 인증 정보 대신 서비스 계정 사용자 인증 정보를 사용하여 최종 사용자 API와 마찬가지로 정기적인 API 호출을 수행합니다.

OAuth 2.0 인증을 원하는 경우:

  1. OAuth2를 사용하여 Google로 인증하지 않는 경우
    Google API에 액세스하기 위한 OAuth 2.0 가이드에 따라 설정합니다. 증분 승인 섹션을 주의 깊게 살펴보세요.
  2. 애플리케이션에서 사용하는 OAuth2 클라이언트 ID에 다음 두 범위가 추가되어 있는지 확인합니다.
    • Google Cloud 일반 액세스: https://www.googleapis.com/auth/cloud-platform 또는 https://www.googleapis.com/auth/cloud-platform.read-only
    • 지원 티켓 및 기타 지원 관련 데이터를 검색하거나 생성할 수 있는 권한: https://www.googleapis.com/auth/cloudsupport

API 정의 가져오기

API 정의는 Google Cloud 디스커버리 문서로 제공됩니다.

예를 들면 다음과 같습니다. <API_KEY>를 이전 단계인 소비자 프로젝트에서 생성한 API 키로 바꿉니다.

curl 'https://cloudsupport.googleapis.com/$discovery/rest?key=<API_KEY>&labels=TRUSTED_TESTER&version=v1alpha2' > /tmp/cloudsupport.v1alpha2.json

REST API

아래에 나열된 모든 엔드포인트에서 <host> 값을 cloudsupport.googleapis.com으로 바꿔야 합니다.

케이스

지원 케이스를 검색하고 만듭니다.

필요한 역할
유형 역할
IAM 지원 계정 뷰어(조직)
IAM 조직 뷰어(조직)

GetCase

지정된 지원 케이스를 검색합니다.

REST 형식
GET <host>/v1/{name=supportAccounts/*/cases/*}
매개변수

요청 URL에 지정된 지원 계정 및 케이스 번호

예시
curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases/5678

CreateCase

케이스를 생성하여 해당 SupportAccount와 연결합니다.

REST 형식
POST <host>/v1/{parent=supportAccounts/*}/cases
매개변수
이름 유형 설명
case Case

케이스 객체입니다.

예를 들면 다음과 같습니다.


     { \
        display_name: "My test case for Istio", \
        description: "Istio network latency spike", \
        category: "Compute", \
        component: "Istio", \
        subcomponent: "Networking", \
        time_zone: "-07:00", \
        cc_addresses: ["foo@domain.com", "bar@domain.com"], \
        project_id: "my-gcp-test-project-1234", \
        priority: 3 \
      }
      

curl -v -H 'Authorization: Bearer <TOKEN>' -H 'Content-Type:  application/json' -X POST -d '{ display_name: "My app is down", description: "Datastore appears to be down so my app is broken.", component: "Cloud Datastore", subcomponent: "Availability / Latency", time_zone: "-07:00", project_id: "my-super-project", category: "Storage & Databases", priority: 3 }' https://cloudsupport.googleapis.com/v1/supportAccounts/gcp-sa-1234/cases

클라이언트 라이브러리 생성

Google API 클라이언트 생성기를 클론합니다.

cd /tmp/; git clone https://github.com/google/apis-client-generator.git;

Python 2.7이 설치되어 있는지 확인합니다.

sudo apt-get install python

PIP가 설치되어 있는지 확인합니다.

sudo apt-get install python-pip

종속 항목을 설치합니다.

pip install google-apis-client-generator

클라이언트 라이브러리 생성:

이 명령어는 WARNING:root:object without properties로 시작하는 1~2개의 경고를 생성합니다. 무시해도 괜찮습니다. 클라이언트 라이브러리는 계속 생성됩니다.

./generate.sh --input=/tmp/cloudsupport.v1alpha2.json --output_dir=/tmp/cloudsupport_generated --language=java

API 사용

시작하기 전에

  • API 클라이언트 라이브러리 자바에 대한 종속 항목 추가
  • 위의 단계에서 생성된 코드에 대한 종속 항목 추가
  • 코드가 성공적으로 빌드되는지 확인

    // Shared constants
    String CLOUD_SUPPORT_SCOPE = "https://www.googleapis.com/auth/cloudsupport";
    
    // Customer specific config
    String SERVICE_ACCOUNT_ID = "<... service account id ...>";
    File SERVICE_ACCOUNT_PRIVATE_KEY = new File("<... p12 key file ...>");
    String SUPPORT_ACCOUNT_ID = "supportAccounts/gcp-sa-<......>";
    
    // Service setup
    JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
    HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
    
    // This section is for service account authentication
    // If you are using OAuth2 instead, follow guide at
    // https://developers.google.com/api-client-library/java/google-oauth-java-client/oauth2
    GoogleCredential credential = new GoogleCredential.Builder()
      .setTransport(httpTransport)
      .setJsonFactory(jsonFactory)
      .setServiceAccountId(SERVICE_ACCOUNT_ID)
      .setServiceAccountPrivateKeyFromP12File(SERVICE_ACCOUNT_PRIVATE_KEY)
      .setServiceAccountScopes(Collections.singleton(CLOUD_SUPPORT_SCOPE))
      .build();
    
    // Main API service is ready to use!
    CloudSupport supportService = new CloudSupport.Builder(httpTransport, jsonFactory, credential).build();
    
    // Each call will look something like this:
    SupportAccount account = supportService.supportAccounts().get(SUPPORT_ACCOUNT_ID).execute();