애플리케이션 보안 비밀 관리

이 페이지에서는 Cloud Deploy를 사용하여 Google Kubernetes Engine 또는 GKE Enterprise 클러스터에 배포하는 애플리케이션의 보안 비밀을 관리하기 위한 권장사항을 설명합니다.

배포 아티팩트에 애플리케이션 보안 비밀을 삽입하면 보안 위험이 발생하기 때문에 Cloud Deploy 파이프라인 내에서 보안 비밀을 관리하지 않아야 합니다.

이러한 방식으로 사용되는 보안 비밀은 Cloud Deploy 범위 바깥에서 생성, 관리, 순환되어야 합니다.

이 컨텍스트에서 보안 비밀은 데이터베이스 사용자 인증 정보, API 키, 인증서, 비밀번호와 같은 민감한 정보를 나타냅니다.

Kubernetes 보안 비밀

Kubernetes 보안 비밀은 포드와 구분된 클러스터의 비밀번호, OAuth 토큰, SSH 키와 같은 민감한 정보가 저장된 보안 객체입니다. 보안 비밀은 ConfigMaps와 비슷하지만 기밀 데이터가 저장됩니다.

Kubernetes 보안 비밀은 기본적으로 안전하지 않습니다. 암호화 없이는 이 문서에 설명된 방식에서 사용되지 않습니다.

Cloud Deploy에 사용하도록 보안 비밀 관리

이 섹션에서는 Cloud Deploy를 사용하여 배포하는 애플리케이션에 대해 보안 비밀을 관리하는 방법을 설명합니다.

다음은 GKE 또는 GKE Enterprise를 사용한 보안 비밀 관리를 위한 두 가지 방법입니다.

Google Secret Manager

Secret Manager는 API 키, 비밀번호, 기타 민감한 정보를 안전하게 저장하는 완전 관리형 멀티 리전 Google Cloud 서비스입니다.

Secret Manager의 보안 비밀은 클라이언트 라이브러리워크로드 아이덴티티 인증을 사용하거나 Secrets Store CSI 드라이버를 사용하여 클러스터에서 액세스될 수 있습니다.

애플리케이션에 Secret Manager를 사용하려면 다음 안내를 따르세요.

  1. Secret Manager를 사용하여 보안 비밀을 만듭니다.

  2. SDK를 사용하여 애플리케이션 코드에서 보안 비밀을 참조합니다.

보안 비밀 버전, 애플리케이션 환경(개발, 스테이징, 프로덕션 등)과 같은 환경 변수를 사용해서 보안 비밀에 대해 추가 메타데이터를 지정할 수 있습니다.

특정 기능의 배포 프로세스에 인프라 프로비저닝이 포함된 경우 애플리케이션을 배포하기 전 프로비저닝 프로세스 중 Secret Manager를 사용해서 보안 비밀을 만들거나 업데이트합니다.

Secret Manager를 사용한 Kubernetes 보안 비밀 관리에 대한 자세한 내용은 다른 제품에 Secret Manager 사용을 참조하세요.

Hashicorp Vault

Hashicorp Vault는 보안 비밀 관리를 위해 널리 사용되는 인기 있는 오픈소스 도구입니다. Google Cloud에는 Terraform과 같은 다른 Hashicorp 도구와 함께 Vault에 대한 포괄적인 통합 및 지원이 포함되어 있습니다.

다음과 같이 Kubernetes 클러스터 내에서 Vault를 구성할 수 있습니다.

  1. API를 통해 Vault 보안 비밀에 액세스하고 워크로드 아이덴티티를 사용해서 인증합니다.

  2. Vault 에이전트 컨테이너를 사용해서 Kubernetes 포드에 보안 비밀을 삽입합니다.

  3. Vault CSI Provider를 사용하여 해당 보안 비밀을 사용합니다.

다음 단계