콘텐츠로 이동하기
보안 & 아이덴티티

Google Cloud Parameter Manager 실용 가이드

2025년 10월 23일
Anuj Singh

Software Engineer

Phani Madhav Devalla

Product Manager

Try Gemini 2.5

Our most intelligent model is now available on Vertex AI

Try now

해당 블로그의 원문은 2025년 10월 24일 Google Cloud 블로그(영문)에 게재되었습니다. 


모든 개발팀은 견고하고 안전하며 확장 가능한 클라우드 애플리케이션을 구축하기를 원하며, 이는 종종 특히 구성 관리와 관련하여 복잡성을 헤쳐나가야 함을 의미합니다. 하드코딩된 구성과 키에 의존하는 것은 민감한 보안 세부 정보를 노출할 수 있는 일반적인 관행입니다. 더 빠르게 움직이고 보안을 유지하기 위해 개발자는 애플리케이션 구성 관리에 특화된 중앙 집중식 보안 서비스를 사용해야 합니다.

Google Cloud의 솔루션은 API 키, 데이터베이스 비밀번호, 비공개 암호화 키와 같은 주요 클라우드 구성을 불필요하게 공유하는 것을 줄이도록 설계된 Parameter Manager입니다. Parameter Manager는 JSON, YAML 및 기타 형식이 지정되지 않은 데이터를 포함한 많은 유형의 데이터 형식과 호환됩니다.

또한 JSON 및 YAML 유형에 대한 형식 유효성 검사를 포함하여 구성 무결성에 대한 우려를 해소하는 데 도움을 줍니다. Parameter Manager는 또한 Secret Manager와 통합되어 기밀 데이터를 안전하게 분리하여 보호하는 데 도움을 줍니다.

Parameter Manager 사용 방법

Parameter Manager를 사용하는 것이 얼마나 쉽고 유익한지 설명하기 위해, 섭씨와 화씨 간 변경, 기본 도시 업데이트, API 키 관리를 포함하여 동적으로 구성할 수 있는 간단한 날씨 애플리케이션을 구축하는 실제 예제를 안내해 드립니다. 

다룰 내용은 다음과 같습니다.

  1. 날씨 API 키를 받아 Secret Manager에 안전하게 저장하기.

  2. API 키를 참조하고 다른 관련 매개변수를 보관할 매개변수 및 버전 만들기.

  3. Parameter Manager와 상호작용하는 간단한 UI 및 백엔드 구축하기.

이 프로젝트를 완료하려면 활성 Google Cloud 프로젝트가 있어야 합니다. 참조용 코드 저장소(Code Repository)는 여기에 있습니다

1. 날씨 API 키를 받아 Secret Manager에 안전하게 저장하기

여기에서 아무 날씨 API 키나 사용하세요.

콘솔에서 Secret Manager 및 Parameter Manager API를 활성화합니다. 둘 다 이 연습을 진행하기에 충분한 월간 무료 등급을 제공합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/1._Secret_Manager_and_Parameter_Manager_ho.max-1100x1100.png

Secret Manager & Parameter Manager 홈페이

API 키는 민감한 정보이므로 Secret Manager에 저장하세요.

  • Google Cloud 콘솔에서 "Secret Manager"를 검색합니다.

  • "보안 비밀 만들기" 버튼을 클릭합니다.

  • 생성 양식에서: 

    • 보안 비밀 이름(예: weather-api-key)을 정의합니다.
    • "보안 비밀 값" 섹션에 날씨 API 키를 붙여넣습니다.
    • 이 데모에서는 기본 옵션을 사용합니다. 원한다면 문서에서 다른 설정을 자유롭게 탐색해 보세요.
    • "보안 비밀 만들기"를 클릭합니다.
https://storage.googleapis.com/gweb-cloudblog-publish/images/2._Storing_Weather_API_key_in_Secret_Manag.max-1600x1600.png

날씨 API 키를 Secret Manager에 저장하기

이제 API 키가 포함된 보안 비밀 버전으로 보안 비밀 리소스를 만들었습니다. 인터페이스에 다음과 유사한 고유 식별자가 표시됩니다.

projects/<your-project>/secrets/weather-api-key

이 식별자를 복사합니다. 매개변수를 만들 때 이 식별자를 사용할 것입니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/3._Copying_Weather_API_key_identifier.max-1000x1000.png

날씨 API 키 식별자 복사하기.

2. API 키를 참조하고 다른 관련 매개변수를 보관할 매개변수 및 버전 만들기

Secret Manager 홈 화면에서 또는 콘솔에서 검색하여 Parameter Manager에 액세스합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/4._Accessing_Parameter_Manager_from_Secret.max-1100x1100.png

Secret Manager 콘솔에서 Parameter Manager 액세스하기.

"매개변수 만들기" 버튼을 클릭합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/5._Creating_a_parameter.max-900x900.jpg

매개변수 만들기.

생성 양식에서:

  • 매개변수 이름(예: my-weather-demo-parameter)을 정의합니다.

  • "YAML"을 형식 유형으로 선택하고(Parameter Manager는 JSON 및 YAML 형식에 대한 형식 유효성 검사를 제공합니다) 양식을 제출합니다.

  • 이전과 마찬가지로, 이 데모에서는 다른 옵션에 기본값을 사용합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/6._Parameter_creation_form.max-1400x1400.png

매개변수 생성 양식.

매개변수는 버전 관리의 이점을 제공하며, 각 버전은 구성의 고유한 스냅샷을 캡처합니다. 이러한 불변성은 의도하지 않은 중대한 변경으로부터 배포된 애플리케이션을 보호하는 데 매우 중요합니다. 업데이트가 필요할 때 새 버전을 쉽게 만들 수 있습니다.

"새 버전"을 클릭하여 이 매개변수에 대한 새 버전을 만듭니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/7._Creating_a_parameter_version.max-700x700.png

매개변수 버전 만들기.

  • 매개변수 버전에 "이름"을 제공합니다(예: 초기 애플리케이션 버전의 경우 v1). 전문가 팁: 버전 번호를 반복하여 다양한 버전을 추적하세요.

  • 페이로드 섹션에 다음 YAML을 붙여넣습니다. 중요: <your-project-number>를 실제 Google Cloud 프로젝트 번호로 바꾸고 apiKey 속성이 Secret Manager 보안 비밀의 식별자를 올바르게 참조하는지 확인합니다.

로드 중...

위의 페이로드 데이터를 지정한 후 양식을 제출합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/8._Parameter_version_creation_form.max-1600x1600.png

매개변수 버전 생성 양식.

주요 사항: apiKey에 대한 __REF__ 구문을 확인하세요. 이것은 Parameter Manager가 Secret Manager의 데이터를 안전하게 참조하는 방식입니다:__REF__(//secretmanager.googleapis.com/projects/<your-project-number>/secrets/<secret-id>/versions/<version-id&gt;)

또한 특정 버전 ID 대신 "latest"라는 특수 별칭을 사용하여 항상 가장 최근에 생성된 보안 비밀 버전을 가져올 수 있습니다. (Parameter Manager 문서에서 보안 비밀 참조에 대해 자세히 알아보세요).

https://storage.googleapis.com/gweb-cloudblog-publish/images/9._IAM_principal_identifier_for_a_paramete.max-1600x1600.png

매개변수에 대한 IAM 주 구성원 식별자.

Parameter Manager가 Secret Manager 참조를 성공적으로 확인하려면, 보안 비밀에 액세스할 수 있는 권한이 필요합니다.

  • 매개변수 목록 보기로 돌아가서 새로 만든 매개변수를 클릭합니다.

  • "개요" 섹션으로 이동합니다. "IAM 주 구성원 식별자"를 복사합니다. 이것은 매개변수와 연결된 고유한 서비스 계정입니다.

  • 이제 Secret Manager 서비스로 다시 이동하여 생성한 보안 비밀을 엽니다

  • Go to the "Permissions" section and click "Grant Access."

  • "권한" 섹션으로 이동하여 "액세스 권한 부여"를 클릭합니다. "새 주 구성원" 필드에 Parameter Manager에서 복사한 IAM 주 구성원 식별자를 붙여넣습니다.

  • "Secret Manager 보안 비밀 접근자" 역할을 선택합니다. 

  • "저장"을 클릭합니다.

이 단계는 매개변수 아래에 생성된 모든 매개변수 버전에 API 키가 포함된 보안 비밀에 안전하게 액세스하고 확인할 수 있는 권한을 부여합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/10._Granting_Secret_access_permissions_to_Pa.max-600x600.png

매개변수의 IAM 주 구성원 식별자에 보안 비밀 액세스 권한 부여하기.

모든 것이 올바르게 설정되었는지 확인해 보겠습니다. 방금 만든 매개변수 버전으로 이동하여 “작업” 메뉴에서 “렌더링”을 클릭합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/11._Testing_Secret_References_are_working_.max-1100x1100.png

렌더링 작업을 수행하여 보안 비밀 참조가 작동하는지 테스트합니다.

권한이 올바르게 구성된 경우, Parameter Manager는 Secret Manager에서 안전하게 검색된 실제 날씨 API 키가 포함된 "렌더링된 출력"을 표시합니다! 이는 구성이 애플리케이션에서 사용될 준비가 되었음을 확인합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/12._Verifying_secret_substitution_in_rende.max-1500x1500.png

렌더링된 출력에서 보안 비밀 대체 확인.

Parameter Manager와 통신할 수 있는 간단한 UI 및 백엔드 구축하기

이제 구성이 안전하게 저장되고 관리되므로, 이를 사용하는 간단한 애플리케이션을 구축해 보겠습니다. React 프런트엔드와 Node.js 백엔드를 만들 것입니다.

로드 중...

src/index.js가 다음과 유사한지 확인하세요.

lang-py
로드 중...

이제 다음 코드로 src/App.js를 수정하세요.

로드 중...

  • App.css 파일을 지우거나 (필요한 경우 삭제하고 참조를 제거합니다). tailwind를 사용할 것이므로 public/index.html의 <head> 태그 내에 다음을 추가합니다.

  • <script src="https://cdn.tailwindcss.com"></script>

public/index.html은 다음과 유사할 것입니다.

로드 중...

이제 날씨 API 응답을 제공할 서버가 필요합니다.

로드 중...

아직 gcloud가 없다면 install-sdk의 안내에 따라 설치하세요. 

그런 다음 실행하세요:

로드 중...

이제 weather-backend 디렉터리 내에 다음 코드로 server.js 파일을 만듭니다.

로드 중...

이 서버는 시작 시 Parameter Manager에서 애플리케이션 매개변수를 가져오는 역할을 합니다. 이를 사용하여 날씨 API에서 필요한 응답을 제공합니다.

Parameter Manager에 저장된 매개변수에는 날씨 API 키, 미터법 시스템 구성 및 기타 관련 애플리케이션별 데이터가 포함됩니다. 또한 어떤 문제로 인해 서버가 날씨 API에 연결되지 않은 경우 서버에서 사용할 수 있는 일부 더미 데이터도 포함합니다.

두 개의 별도 터미널 셸을 엽니다.

로드 중...

백엔드 서버가 시작되고, Secret Manager에서 안전하게 확인된 API 키를 포함하여 Parameter Manager의 구성을 로드합니다.

로드 중...

React 프런트엔드가 실행되고, 로컬 백엔드에 연결되며, Parameter Manager에 의해 동적으로 구성된 날씨 정보를 요청하기 시작합니다.

https://storage.googleapis.com/gweb-cloudblog-publish/images/13._Running_the_Application_in_browser.max-1600x1600.png

브라우저에서 애플리케이션 실행하기.

https://storage.googleapis.com/gweb-cloudblog-publish/images/14._Viewing_weather_details_in_the_applica.max-1600x1600.png

애플리케이션에서 날씨 세부 정보 보기.

기본 사항을 넘어서: 고급 사용 사례

Parameter Manager는 개발자가 구성 보안 및 규정 준수 목표를 달성하도록 도울 수 있습니다. 다음과 같은 작업을 도울 수 있습니다.

  • 지역별 구성 제공: 앱이 전 세계 사용자에게 서비스를 제공한다고 상상해 보세요. 일부 지역은 섭씨를, 다른 지역은 화씨를 선호할 수 있습니다. 서로 다른 Google Cloud 리전에 Fahrenheit 및 defaultLocation에 대해 서로 다른 값을 가진 지역별 매개변수를 만들 수 있습니다. server.js(또는 배포 환경)에서 startupConfigLocation을 설정하여 서버가 해당 리전과 관련된 구성을 자동으로 로드하도록 할 수 있습니다.

  • 지역 규정 준수 요구사항 충족: 매개변수는 동일한 리전의 보안 비밀만 참조할 수 있습니다. 이 연습에서는 보안 비밀과 매개변수 모두에 전역 리전을 사용했지만, 예를 들어 us-central1에 지역별 보안 비밀을 생성하고 us-central1의 매개변수만 해당 보안 비밀을 참조하도록 할 수 있습니다. 이는 민감한 정보가 선택한 리전을 벗어나지 않도록 보장하는 데 도움이 될 수 있습니다.

  • A/B 테스트 및 기능 플래그 구현: 일부 사용자 하위 집합으로 새 기능을 테스트하기 위해 v2 매개변수 버전에 새 속성을 추가할 수 있습니다. 그런 다음 A/B 테스트 전략에 따라 백엔드(또는 배포된 환경의 환경 변수)에서 appVersion 상수를 동적으로 전환하고, 새로운 기능을 다른 사용자 그룹에 출시하고, 피드백을 수집하고, 빠르게 반복할 수 있습니다.

Google Cloud Parameter Manager와 Secret Manager를 사용하면 모든 애플리케이션 구성을 관리하기 위한 견고하고 안전하며 유연한 시스템을 확보하여, 더 민첩하고 복원력 있는 애플리케이션을 구축할 수 있습니다.

게시 위치