EMD Blog

서비스 계정의 Access Key File을 이용한 인증 본문

Public Cloud/GCP

서비스 계정의 Access Key File을 이용한 인증

EmaDam 2022. 9. 3. 11:06
반응형
  1. GCP → IAM 및 관리자 → 서비스 계정으로 이동
  2. 서비스 계정 만들기
  3. 서비스 계정 이름 및 설명 입력
  4. 이 서비스 계정에 프로젝트에 대한 액세스 권한 부여에서 역할 선택 클릭 후 현재 사용 중 → 편집자 선택
  5. 완료를 클릭해 계정 설정 완료
  6. 서비스 계정 목록에서 방금 생성한 서비스 계정의 이메일 클릭
  7. 상단 탭에서 '키' 탭으로 이동
  8. 키 추가 → 새 키 만들기 → json 선택
  9. 키가 자동으로 다운로드 되며 terraform에서는 아래와 같이 사용하면 됨

main.tf

terraform {
  required_providers {
    google = {
      source = "hashicorp/google"
      version = "3.5.0"
    }
  }
}

provider "google" {
  credentials = file("<ACCESS_KEY_FILE>")

  project = "<PROJECT_ID>"
  region  = "asia-northeast3"
  zone    = "asia-northeast3-a"
}

resource "google_compute_network" "vpc_network" {
  name = "terraform-network"
}

위에서 생성한 계정을 Cloud SDK를 통해 사용하려면 환경 변수를 설정해야함.

  1. GOOGLE_APLICATION_CREDENTIALS 설정
1export GOOGLE_APPLICATION_CREDENTIALS="/path/access-key.json"

이렇게 하면 provider 내 credentials 없이 실행 가능함.

만약에 Terraform cloud 사용시 workspace의 환경 변수를 사용해 인증정보를 등록해야한다. 하지만 GCP는 AWS와 달리 인증정보를 Json Format으로 사용하게 하므로 환경 변수를 등록할 때 줄바꿈을 제거해주어야한다. 먼저 json으로 되어있는 인증정보 전체를 복사한 후 Terraform cloud workspace의 환경변수 입력칸에

Name : GOOGLE_CREDENTIALS

Value : 복사한 json 형식의 인증내용

Sensitive : true

이렇게 입력한다. 이 상태에서 그냥 Save variable을 하게되면 줄 바꿈을 허용하지 않는다는 메세지가 출력될 것이다. 그러면 Value에서 줄바꿈만 전부 없애주면 정상적으로 등록된다.

반응형