이 주제에서는 보안 비밀 버전에 액세스하는 방법을 설명합니다. 보안 비밀 버전에 액세스하면 보안 비밀 버전에 대한 보안 비밀 콘텐츠 및 추가 메타데이터가 반환됩니다. 보안 비밀 버전에 액세스할 때 version-id 또는 alias를 지정합니다(할당된 경우). "latest"
를 버전으로 지정하면 최신 버전의 보안 비밀에 액세스할 수도 있습니다.
필요한 역할
보안 비밀 버전에 액세스하는 데 필요한 권한을 얻으려면 관리자에게 보안 비밀에 대한 Secret Manager 보안 비밀 접근자 (roles/secretmanager.secretAccessor
) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
보안 비밀 버전에 액세스
콘솔
-
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 보안 비밀 이름을 클릭합니다.
-
보안 비밀 세부정보 페이지의 버전 표에서 액세스할 보안 비밀 버전을 찾습니다.
-
작업 열에서 더보기
를 클릭합니다. -
메뉴에서 보안 비밀 값 보기를 클릭합니다.
-
보안 비밀 버전 값을 보여주는 대화상자가 표시됩니다. 완료를 클릭하여 완료합니다.
gcloud
명령줄에서 Secret Manager를 사용하려면 먼저 Google Cloud CLI 버전 378.0.0 이상을 설치하거나 업그레이드합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
보안 비밀 버전에 액세스합니다.
$ gcloud secrets versions access version-id --secret="secret-id"
바이너리 보안 비밀 버전에 액세스합니다.
파일에 원시 바이트를 쓰려면 --out-file 플래그를 사용합니다.
$ gcloud secrets versions access version-id --secret="secret-id" --out-file="path/to/secret"
원시 바이트를 가져오려면 Cloud SDK가 응답을 base64로 인코딩 및 디코딩하여 출력합니다.
$ 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 범위로 인증해야 합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 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
리소스 일관성
Secret Manager에서 보안 비밀 버전을 추가한 후 버전 번호로 즉시 이 보안 비밀 버전에 액세스하는 것은 strong consistency를 가지는 작업입니다.
Secret Manager 내의 다른 작업은 eventual consistency를 가집니다. eventual consistency를 가지는 작업은 일반적으로 수 분 내에 수렴되지만 몇 시간이 걸릴 수 있습니다.
IAM 권한 전파는 eventual consistency를 가집니다. 즉, 보안 비밀에 대한 액세스 권한 부여 또는 취소가 즉시 적용되지 않을 수 있습니다. 자세한 내용은 액세스 변경 전파를 참조하세요.
다음 단계
- 보안 비밀 버전에 별칭을 할당하는 방법 알아보기
- 보안 비밀 버전 사용 중지 방법 알아보기
- 보안 비밀 버전 폐기 방법 알아보기