HCP API 개요

HCP API 개요 (HCP API Overview)

이 주제는 플랫폼 리소스를 관리하기 위한 RESTful API인 HCP API 사용에 대한 개요를 제공해요.

출처: 문서

본문

개요 (Overview)

다음 단계는 HCP API와 상호작용하는 절차를 설명해요.

  • HCP에 인증해 액세스 토큰을 생성해요.
  • 액세스 토큰을 사용해 원하는 엔드포인트와 상호작용해요.

HCP API는 다음 URL을 사용해요.

속성(Attribute) 설명(Description) 값(Value)
API base URL HCP API 서비스의 기본 엔드포인트 URL https://api.cloud.hashicorp.com
HCP Authentication URL 서비스 주체 클라이언트 ID와 시크릿으로 HCP에 인증하는 URL https://auth.idp.hashicorp.com

사전 요구 사항 (Prerequisites)

인증하고 API와 상호작용하려면 다음 정보가 있어야 해요.

  • Client ID: HCP에 인증하는 데 사용하는 서비스 주체 클라이언트 ID. ID를 얻는 방법은 Create a service principal 문서를 참고하세요.
  • Client secret: HCP에 인증하는 데 사용하는 서비스 주체 클라이언트 시크릿. ID를 얻는 방법은 Create a service principal 문서를 참고하세요.
  • Organization ID: 조회하려는 리소스의 프로젝트를 포함하는 HCP 조직. 조직 생성·관리 정보는 HCP Organizations 문서를 참고하세요. Organization settings 페이지에서 조직 ID를 가져올 수 있어요.
  • Project ID: 조회하려는 리소스를 포함하는 HCP 프로젝트. 프로젝트 생성·관리 정보는 HCP Projects 문서를 참고하세요. Project settings 페이지에서 프로젝트 ID를 가져올 수 있어요.

ID를 다음 변수에 할당해요.

  • HCP_CLIENT_ID와 HCP_CLIENT_SECRET 환경 변수를 서비스 주체 키로 설정해요. Packer는 이 값들을 사용해 HCP에 인증하고 액세스 키를 생성해요.
  • ORGANIZATION_ID 환경 변수를 HCP 조직 ID로 설정해요.
  • PROJECT_ID 환경 변수를 HCP 프로젝트 ID로 설정해요.

HCP에 인증하기 (Authenticate to HCP)

HCP API는 요청을 승인하기 위해 액세스 토큰이 필요해요.

  • HCP 클라이언트 ID와 시크릿으로 액세스 키를 생성해요.
$ curl --location "https://auth.idp.hashicorp.com/oauth2/token" \
--header "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "client_id=$HCP_CLIENT_ID" \
--data-urlencode "client_secret=$HCP_CLIENT_SECRET" \
--data-urlencode "grant_type=client_credentials" \
--data-urlencode "audience=https://api.hashicorp.cloud"

다음 예시 응답에서 bearer 액세스 토큰은 1시간 동안 유효해요.

{
  "access_token": "eyJhbG...sInR...",
  "expires_in": 3600,
  "token_type": "Bearer"
}
  • HCP_ACCESS_TOKEN 환경 변수를 액세스 토큰으로 설정해요. 이렇게 하면 API와 상호작용할 때 토큰을 참조하기 쉬워요.
$ export HCP_ACCESS_TOKEN=<access-token>

API와 상호작용하기 (Interact with API)

액세스 토큰을 검색한 후에는 HCP API를 사용할 준비가 됐어요. 각 요청의 Authorization 헤더에 액세스 토큰을 bearer 토큰으로 제공해야 합니다.

다음 예시는 HCP 프로젝트에서 HCP Packer 버킷을 검색하는 방법을 보여줘요. 워크플로우와 인증 과정은 다른 HCP 작업에서도 비슷합니다.

$ curl --location "https://api.cloud.hashicorp.com/packer/2021-04-30/organizations/$ORGANIZATION_ID/projects/$PROJECT_ID/images?pagination.page_size=10" \
--header "authorization: Bearer ***"

자세한 내용은 리소스를 소유하는 특정 서비스의 API 문서를 참고하세요.

버전 관리 (Versioning)

더 알아보기 (Learn more)