보안 비밀 데이터는 변경할 수 없으며 대부분의 작업은 보안 비밀 버전에서 이루어집니다. 보안 비밀 버전에는 실제 보안 비밀 데이터와 보안 비밀에 대한 상태 및 메타데이터가 포함됩니다. 이 페이지에서는 보안 비밀 버전을 추가하는 방법을 설명합니다.
버전 관리에 대한 자세한 내용은 버전 관리에 대한 이 동영상을 참조하세요.
필요한 역할
보안 비밀 버전을 추가하는 데 필요한 권한을 얻으려면 관리자에게 보안 비밀에 대해 다음 IAM 역할을 부여해 달라고 요청하세요.
-
Secret Manager 보안 비밀 버전 추가자(
roles/secretmanager.secretVersionAdder
) -
Secret Manager 보안 비밀 버전 관리자(
roles/secretmanager.secretVersionManager
)
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
보안 비밀 버전에 IAM 역할을 부여할 수 없습니다.
보안 비밀 버전 추가
보안 비밀 버전을 추가하려면 다음 방법 중 하나를 사용합니다.
콘솔
-
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭한 후 새 버전을 추가하려는 보안 비밀을 찾습니다.
-
해당 보안 비밀과 연결된
작업 메뉴를 클릭한 후 새 버전 추가를 클릭합니다. 새 버전 추가 대화상자가 표시됩니다. -
보안 비밀 값 필드에
abcd1234
와 같은 보안 비밀에 대한 값을 입력합니다. 또는 보안 비밀 값이 포함된 파일을 업로드할 수 있습니다. -
새 버전 추가를 클릭합니다.
gcloud
디스크 파일의 콘텐츠에서 보안 비밀 버전을 추가합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- FILE_PATH: 버전 세부정보가 포함된 파일의 전체 경로(파일 이름 포함)입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows(PowerShell)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows(cmd.exe)
gcloud secrets versions add SECRET_ID --location=LOCATION --data-file="FILE_PATH"
응답에 새로 생성된 보안 비밀 버전이 포함됩니다.
명령줄에서 직접 보안 비밀 버전 추가
명령줄에서 직접 보안 비밀 버전을 추가할 수도 있지만 이 경우 프로세스 목록에 일반 텍스트로 표시되며 다른 시스템 사용자가 캡처할 수 있으므로 권장되지 않습니다. 일반 텍스트가 있는 명령어는 셸 기록에도 저장됩니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_DATA: 보안 비밀 버전에 저장할 데이터입니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
echo -n "SECRET_DATA" | \ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows(PowerShell)
echo -n "SECRET_DATA" | ` gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
Windows(cmd.exe)
echo -n "SECRET_DATA" | ^ gcloud secrets versions add SECRET_ID --location=LOCATION --data-file=-
응답에 새로 생성된 보안 비밀 버전이 포함됩니다.
선택사항: 보안 비밀을 처음 만들 때 파일 콘텐츠에서 버전을 추가합니다.
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- FILE_PATH: 버전 세부정보가 포함된 파일의 전체 경로(파일 이름 포함)입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows(PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
Windows(cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION --data-file="FILE_PATH"
응답에 새로 생성된 보안 비밀 버전이 포함됩니다.
REST
보안 비밀 데이터를 Base64로 인코딩하고 셸 변수로 저장합니다.
$ SECRET_DATA=$(echo "seCr3t" | base64)
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
HTTP 메서드 및 URL:
POST https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion
JSON 요청 본문:
{"payload": {"data": "${SECRET_DATA}"}}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID:addVersion" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID/versions/1", "createTime": "2024-03-25T08:24:13.153705Z", "state": "ENABLED", "etag": "\"161477e6071da9\"" }
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 범위로 인증해야 합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Secret Manager Python SDK를 설치합니다. Compute Engine 또는 GKE에서는 cloud-platform 범위로 인증해야 합니다.
보안 비밀 버전 상태
보안 비밀 버전은 언제든지 다음 중 하나일 수 있습니다.
-
사용 설정됨 - 이 상태에서 보안 비밀 버전에 액세스하여 설명할 수 있습니다. 이 상태는 새로운 보안 비밀 버전의 기본 상태입니다.
-
중지됨 - 이 상태에서는 보안 비밀 버전에 액세스할 수 없지만 보안 비밀 콘텐츠는 여전히 존재합니다. 보안 비밀 버전을 다시 사용 설정하면 액세스 권한을 복원할 수 있습니다.
-
폐기됨 - 이 상태에서는 보안 비밀 버전의 콘텐츠가 삭제됩니다. 보안 비밀 버전을 다른 상태로 변경할 수 없습니다.
사용 설정된 보안 비밀 버전과 사용 중지된 보안 비밀 버전 모두 요금이 청구됩니다. 폐기됨 상태의 보안 비밀 버전에 대해서는 요금이 청구되지 않습니다.