[Google Cloud API 완전 정복 2] API 키 vs 서비스 계정, 내게 맞는 열쇠 발급받기

2025. 9. 17.

 

안녕하세요! 지난 1편에서는 Google Cloud 무료 계정을 만들고 Cloud Vision API의 '스위치'를 켜는 것까지 성공적으로 마쳤습니다. API를 사용할 문은 활짝 열렸지만, 아직은 아무나 들어갈 수 없는 상태죠. 이제 그 문을 열고 들어갈 수 있는 '열쇠', 즉 인증 정보를 만들어 볼 시간입니다.

 

오늘은 API를 호출할 때 사용하는 가장 대표적인 두 가지 열쇠, 'API 키'와 '서비스 계정'에 대해 알아봅니다. 둘의 차이점은 무엇이고, 언제 어떤 것을 써야 할까요? 지금부터 저와 함께 나에게 꼭 맞는 열쇠를 발급받아 봅시다!

 

들어가기 전에: 왜 '인증'이 필요한가요?

"그냥 API를 사용하게 해주면 되지, 왜 이렇게 복잡한 인증 절차가 필요한가요?" 라고 생각할 수 있습니다. 인증이 필요한 이유는 간단합니다.

  • 누가?: Google은 API를 호출하는 주체가 누구인지 알아야 합니다.
  • 어떤 권한으로?: 허가된 사용자/애플리케이션인지 확인해야 합니다.
  • 비용은 누가?: API 사용에 따른 비용을 어떤 프로젝트에 청구할지 알아야 합니다.

즉, 인증은 보안책임을 위한 필수적인 장치입니다. 이제 첫 번째 열쇠부터 만들어 볼까요?

 

첫 번째 열쇠: API 키 (간단한 신분증)

API 키는 가장 간단하게 발급받을 수 있는 인증 방식입니다. 공개적으로 사용 가능한 데이터를 호출하거나, 보안상 덜 민감한 클라이언트(웹 브라우저, 모바일 앱) 환경에서 주로 사용됩니다. 마치 도서관의 공개된 서적을 열람할 때 필요한 간단한 '도서관 출입증'과 같습니다.

 

API 키 만드는 방법 (Step-by-step)

1. 지난 시간에 접속했던 [API 및 서비스] > [사용자 인증 정보] 메뉴로 이동합니다.

2. 상단의 [+ 사용자 인증 정보 만들기] 버튼을 클릭하고, [API 키]를 선택합니다.

 

 

3. 클릭과 동시에 바로 API 키가 생성됩니다! 정말 간단하죠? 생성된 키 문자열은 나중에 사용해야 하니, '복사' 아이콘을 눌러 안전한 곳에 잠시 보관해 두세요.

 

가장 중요! API 키에 '자물쇠' 채우기 (보안 설정)

생성된 키를 그대로 사용하면, 누군가 이 키를 탈취했을 때 내 프로젝트의 비용으로 무제한으로 API를 호출하는 끔찍한 일이 발생할 수 있습니다. 따라서 반드시 키를 제한해야 합니다.

 

생성된 키 목록에서 방금 만든 API 키의 이름(예: API 키 1)을 클릭하고, 'API 제한사항' 섹션에서 [키 제한]을 선택하세요. 그리고 우리가 사용할 'Cloud Vision API'만 체크합니다. 이렇게 하면 이 키로는 다른 API를 절대 호출할 수 없습니다.

 

 

두 번째 열쇠: 서비스 계정 (전용 로봇 직원)

서비스 계정(Service Account)은 서버(VM, 내 PC)나 Cloud Functions 같은 백엔드 환경에서 API를 호출할 때 사용하는 가장 표준적이고 안전한 방법입니다. 사람이 사용하는 Google 계정이 아니라, 내 애플리케이션(코드)만을 위한 전용 로봇 계정이라고 생각하면 이해하기 쉽습니다.

 

이 로봇 직원은 전용 ID와 비밀번호(Key 파일)를 가지며, 우리가 딱 정해준 '업무'(Role)만 수행할 수 있는 권한을 가집니다.

 

서비스 계정 만드는 방법 (Step-by-step)

1. 다시 [사용자 인증 정보 만들기] 버튼을 클릭하고, 이번에는 [서비스 계정]을 선택합니다.

2. 서비스 계정 이름(예: vision-api-caller)을 입력합니다. '서비스 계정 ID'는 자동으로 생성됩니다. [만들고 계속하기]를 클릭합니다.

 

3. '이 서비스 계정에 대한 액세스 권한 부여' 단계가 가장 중요합니다. 이 로봇 직원에게 어떤 일을 시킬지 '역할(Role)'을 부여하는 단계입니다.

  • [역할 선택]을 클릭하고, 검색창에 Vision을 입력합니다.
  • [Cloud Vision AI 사용자 (roles/vision.user)] 역할을 선택합니다. 이는 이미지를 분석할 권한만 부여하는, '최소 권한의 원칙'을 지키는 매우 중요한 습관입니다.
  • [계속] > [완료]를 클릭하여 생성을 마칩니다.

 

4. '비밀번호'인 JSON 키 파일 다운로드하기

  • 생성된 서비스 계정 목록에서 방금 만든 계정의 이메일 주소를 클릭합니다.
  • 상단의 [키] 탭을 클릭하고, [키 추가] > [새 키 만들기]를 선택합니다.
  • 키 유형은 JSON을 선택한 채로 [만들기]를 클릭합니다.

 

클릭하는 즉시 .json 확장자를 가진 파일이 내 PC로 다운로드됩니다.

 

🚨 초강력 경고!
이 JSON 파일은 서비스 계정의 비밀번호와 같습니다. 절대 외부에 노출되어서는 안 되며, 특히 GitHub 같은 공개 저장소에 절대로 올리면 안 됩니다!

 

 

마무리하며

잘 따라오셨나요? 이제 우리는 API의 문을 열 수 있는 두 종류의 열쇠를 모두 손에 쥐었습니다.

  • API 키: 간단한 출입증. 클라이언트 측이나 공개 데이터용.
  • 서비스 계정: 전용 로봇 직원. 서버 간 통신, 비공개 데이터용. (대부분의 경우 이것을 사용합니다!)

다음 마지막 편에서는 이 열쇠들을 사용해 API를 호출했을 때, 우리의 사용량을 추적하고 예상치 못한 '요금 폭탄'을 막기 위한 안전장치를 설정하는 방법을 알아보겠습니다. API를 현명하게 관리하는 방법을 배우러 다시 만나요!

 

 

댓글