이 주제에서는 보안 비밀 생성, 보안 비밀 버전 추가, 보안 비밀 버전에 액세스하는 방법을 설명합니다. 보안 비밀 관리 방법에 대한 자세한 내용은 보안 비밀 관리를 참조하세요.
시작하기 전에
Secret Manager와 로컬 환경을 구성합니다(프로젝트마다 한 개씩).
보안 비밀 만들기
보안 비밀에는 라벨 및 복제 정보와 같은 메타데이터와 함께 보안 비밀 버전이 한 개 이상 포함됩니다. 보안 비밀의 실제 콘텐츠는 보안 비밀 버전에 저장됩니다.
보안 비밀에 어떤 복제 정책이 적합한지 잘 모르겠으면 복제 정책 선택을 참조하세요.
보안 비밀을 만들려면 프로젝트, 폴더 또는 조직의 Secret Manager 관리자 역할(roles/secretmanager.admin
)이 필요합니다.
Console
-
Console에서 Secret Manager 페이지로 이동합니다.
-
보안 비밀 관리자 페이지에서 보안 비밀 만들기를 클릭합니다.
-
보안 비밀 만들기 페이지의 이름에 보안 비밀 이름(예:
my-secret
)을 입력합니다. -
(선택사항) 또한 초기 보안 비밀을 만들 때 보안 비밀 버전을 추가하려면 보안 비밀 값 필드에 보안 비밀 값(예:
abcd1234
)을 입력합니다. -
리전 섹션을 변경하지 않은 상태로 둡니다.
-
보안 비밀 만들기 버튼을 클릭합니다.
gcloud
명령줄에서 Secret Manager를 사용하려면 먼저 Google Cloud CLI 버전 338.0.0 이상을 설치하거나 업그레이드합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
$ gcloud secrets create secret-id \
--replication-policy="automatic"
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Secret Manager C# SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Secret Manager Go SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
자바
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Secret Manager 자바 SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Secret Manager Node.js SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용하는 방법을 알아보고 Secret Manager PHP SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Secret Manager Python SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Secret Manager Ruby SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
API
이 예시에서는 curl을 사용하여 API를 사용하는 방법을 보여줍니다. gcloud auth print-access-token을 사용하여 액세스 토큰을 생성할 수 있습니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets?secretId=secret-id" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"replication\": {\"automatic\": {}}}"
보안 비밀 버전 추가
보안 비밀 버전에는 보안 비밀의 실제 콘텐츠가 포함됩니다. 보안 비밀 버전을 사용 설정, 중지 또는 삭제할 수 있습니다. 보안 비밀 콘텐츠를 변경하려면 새 버전을 만듭니다.
보안 비밀 버전을 추가하려면 보안 비밀, 프로젝트, 폴더 또는 조직의 Secret Manager 관리자 역할(roles/secretmanager.admin
)이 필요합니다.
보안 비밀 버전에 역할을 부여할 수 없습니다.
Console
-
Console에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 더보기
를 클릭하고 새 버전 추가를 선택합니다. -
새 버전 추가 대화상자의 보안 비밀 값 필드에 보안 비밀 값(예:
abcd1234
)을 입력합니다. -
새 버전 추가 버튼을 클릭합니다.
gcloud
명령줄에서 Secret Manager를 사용하려면 먼저 Google Cloud CLI 버전 338.0.0 이상을 설치하거나 업그레이드합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
디스크 파일의 콘텐츠에서 보안 비밀 버전을 추가합니다.
$ gcloud secrets versions add secret-id --data-file="/path/to/file.txt"
명령줄에서 직접 보안 비밀 버전을 추가할 수도 있지만 일반 텍스트가 셸 기록에 표시되므로 권장되지 않습니다.
$ echo -n "this is my super secret data" | \
gcloud secrets versions add secret-id --data-file=-
선택사항: 보안 비밀을 처음 만들 때 파일 콘텐츠에서 버전을 추가합니다.
$ gcloud secrets create secret-id --data-file="/path/to/file.txt"
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Secret Manager C# SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Secret Manager Go SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
자바
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Secret Manager 자바 SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Secret Manager Node.js SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용하는 방법을 알아보고 Secret Manager PHP SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Secret Manager Python SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Secret Manager Ruby SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
API
이 예시에서는 curl을 사용하여 API를 사용하는 방법을 보여줍니다. gcloud auth print-access-token을 사용하여 액세스 토큰을 생성할 수 있습니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
보안 비밀 데이터를 Base64로 인코딩하고 셸 변수로 저장합니다.
$ SECRET_DATA=$(echo "seCr3t" | base64)
curl을 사용하여 API를 호출합니다.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:addVersion" \
--request "POST" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
--data "{\"payload\": {\"data\": \"${SECRET_DATA}\"}}"
보안 비밀 버전에 액세스
보안 비밀 버전에 액세스하면 보안 비밀 버전과 보안 비밀 버전에 대한 추가 메타데이터가 반환됩니다. 보안 비밀 버전에 액세스할 때 version-id를 지정합니다. "latest"
를 버전으로 지정하면 최신 버전의 보안 비밀에 액세스할 수도 있습니다.
보안 비밀 버전에 액세스하려면 보안 비밀, 프로젝트, 폴더 또는 조직의 Secret Manager 보안 비밀 접근자 역할(roles/secretmanager.secretAccessor
)이 필요합니다. 보안 비밀 버전에 IAM 역할을 부여할 수 없습니다.
리소스 일관성
Secret Manager에서 보안 비밀 버전을 추가한 후 즉시 이 보안 비밀 버전에 액세스하는 것은 strong consistency를 가지는 작업입니다. Secret Manager 내의 다른 작업은 eventual consistency를 가집니다. eventual consistency를 가지는 작업은 일반적으로 수 분 내에 수렴되지만 몇 시간이 걸릴 수 있습니다.
IAM 권한 전파는 eventual consistency를 가집니다. 즉, 보안 비밀에 대한 액세스 권한 부여 또는 취소가 즉시 적용되지 않을 수 있습니다. 자세한 내용은 IAM 문서를 참조하세요.
Console
-
Console에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 보안 비밀 이름을 클릭합니다.
-
보안 비밀 세부정보 페이지의 버전 표에서 액세스할 보안 비밀 버전을 찾습니다.
-
작업 열에서 더보기
를 클릭합니다. -
메뉴에서 보안 비밀 값 보기를 클릭합니다.
-
보안 비밀 버전 값을 보여주는 대화상자가 표시됩니다. 완료를 클릭하여 완료합니다.
gcloud
명령줄에서 Secret Manager를 사용하려면 먼저 Google Cloud CLI 버전 338.0.0 이상을 설치하거나 업그레이드합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
보안 비밀 버전에 액세스합니다.
$ gcloud secrets versions access version-id --secret="secret-id"
바이너리 보안 비밀 버전에 액세스합니다.
$ gcloud secrets versions access version-id --secret="secret-id" --format='get(payload.data)' | tr '_-' '/+' | base64 -d
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Secret Manager C# SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Secret Manager Go SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
자바
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Secret Manager 자바 SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Secret Manager Node.js SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용하는 방법을 알아보고 Secret Manager PHP SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Secret Manager Python SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Secret Manager Ruby SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
API
이 예시에서는 curl을 사용하여 API를 사용하는 방법을 보여줍니다. gcloud auth print-access-token을 사용하여 액세스 토큰을 생성할 수 있습니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json"
payload.data
응답은 base64로 인코딩된 보안 비밀 버전 콘텐츠입니다. 다음은 jq
도구를 사용하여 보안 비밀을 추출하는 예시입니다.
$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id/versions/version-id:access" \
--request "GET" \
--header "authorization: Bearer $(gcloud auth print-access-token)" \
--header "content-type: application/json" \
| jq -r ".payload.data" | base64 --decode
다음 단계
- 보안 비밀 및 보안 비밀 버전 관리 자세히 알아보기
- 보안 비밀 액세스 권한 관리 자세히 알아보기