이 페이지에서는 리전 보안 비밀에 주석을 추가하고 이러한 주석을 수정 및 확인하는 방법을 설명합니다.
개요
주석을 사용하면 보안 비밀에 대한 커스텀 메타데이터를 저장할 수 있습니다. 예를 들어 보안 비밀을 마운트할 경로에 보안 비밀을 주석으로 추가할 수 있습니다. 주석은 다음과 같은 경우에 유용할 수 있습니다.
-
목적, 환경(개발, 스테이징, 프로덕션), 민감도 수준에 따라 보안 비밀을 분류합니다. 이렇게 하면 Secret Manager 내에서 보안 비밀 검색, 필터링, 구성을 쉽게 수행할 수 있습니다.
-
워크로드에서 올바르게 해석할 수 있도록 보안 비밀 값의 특정 형식 또는 구조를 표시합니다.
-
보안 비밀의 사용 방법에 대한 힌트 또는 취급에 관한 특별한 고려사항을 제공합니다.
예를 들어 데이터베이스 비밀번호가 포함된 보안 비밀의 경우 다음과 같은 주석을 추가할 수 있습니다.
-
environment:production
-
purpose:database_access
-
owner:database_team
이러한 주석을 사용하면 보안 비밀의 목적, 환경, 책임자를 쉽게 식별할 수 있습니다. 또한 이 보안 비밀에 액세스하는 워크로드는 주석을 이용해서 프로덕션 환경에 대해 올바른 비밀번호를 사용 중인지 확인할 수 있습니다.
주석은 라벨과 같지 않습니다. 라벨은 리소스를 정렬, 필터링, 그룹화하는 데 사용되는 반면 주석은 임의의 식별되지 않는 메타데이터를 보안 비밀에 저장하는 데 사용됩니다. 라벨에 메타데이터를 지정할 때 문자 및 문자 길이에 제한이 있습니다. 주석의 메타데이터는 크거나 작거나 구조화되거나 구조화되지 않았을 수 있으며 라벨에 허용되지 않는 문자를 포함할 수 있습니다.
필요한 역할
-
보안 비밀에 주석을 추가하고 주석을 업데이트하려면 보안 비밀, 프로젝트, 폴더 또는 조직의 Secret Manager 관리자 역할(
roles/secretmanager.admin
)이 필요합니다. -
주석을 보려면 보안 비밀, 프로젝트, 폴더 또는 조직의 Secret Manager 뷰어 역할(
roles/secretmanager.viewer
)이 필요합니다.
보안 비밀 버전에는 Identity and Access Management(IAM) 역할을 부여할 수 없습니다. 자세한 내용은 IAM으로 액세스 제어를 참조하세요.
보안 비밀에 주석 추가
새 보안 비밀을 만들거나 기존 보안 비밀을 업데이트할 때 주석을 추가할 수 있습니다. 주석의 메타데이터는 키-값 쌍으로 저장됩니다. 주석을 추가하려면 다음 방법 중 하나를 사용합니다.
콘솔
-
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭한 후 리전 보안 비밀 만들기를 클릭합니다.
-
리전 보안 비밀 만들기 페이지에서 이름 필드에 보안 비밀 이름을 입력합니다.
-
보안 비밀 값을 입력합니다(예:
abcd1234
). 또한 파일 업로드 옵션을 사용하여 보안 비밀 값이 포함된 텍스트 파일을 업로드할 수 있습니다. 이 작업은 보안 비밀 버전을 자동으로 만듭니다. -
리전 목록에서 리전 보안 비밀을 저장하려는 위치를 선택합니다.
-
주석 섹션으로 이동한 후 주석 추가를 클릭합니다.
-
키와 해당 값을 입력합니다.
-
보안 비밀 만들기를 클릭합니다.
gcloud
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- KEY: 주석 키입니다.
- VALUE: 주석 키의 상응 값입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets create SECRET_ID --location=LOCATION \ --set-annotations=KEY1=VAL1,KEY2=VAL2
Windows(PowerShell)
gcloud secrets create SECRET_ID --location=LOCATION ` --set-annotations=KEY1=VAL1,KEY2=VAL2
Windows(cmd.exe)
gcloud secrets create SECRET_ID --location=LOCATION ^ --set-annotations=KEY1=VAL1,KEY2=VAL2
응답에는 보안 비밀과 주석이 포함됩니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- KEY: 주석 키입니다.
- VALUE: 주석 키의 상응 값입니다.
HTTP 메서드 및 URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=annotations
JSON 요청 본문:
{'annotations': {'KEY1': 'VALUE1', 'KEY2': 'VALUE2' }}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \
-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?updateMask=annotations"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-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?updateMask=annotations" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-02T07:14:00.281541Z", "etag": "\"16211dcd99c386\"", "annotations": { "key1": "value1", "key2": "value2" } }
기존 보안 비밀에 주석을 추가하려면 이 문서의 주석 수정 섹션을 참조하세요.
주석 키의 요구사항은 다음과 같습니다.
-
키는 보안 비밀마다 고유해야 합니다. 동일한 비밀에서 키를 반복할 수 없습니다.
-
키는 1~63자(영문 기준)여야 합니다.
-
키는 최대 128바이트의 UTF-8 인코딩을 포함해야 합니다.
-
키는 영숫자 문자로 시작하고 끝나야 합니다.
-
영숫자 문자 사이에는 대시, 밑줄, 마침표를 사용할 수 있습니다.
-
주석 키와 값의 총 크기는 16KiB 미만이어야 합니다.
주석 수정
주석을 수정하려면 다음 방법 중 하나를 사용합니다.
콘솔
-
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭합니다.
-
목록에서 보안 비밀을 찾고 해당 보안 비밀과 연결된
작업 메뉴를 클릭합니다. 작업 메뉴에서 수정을 클릭합니다. -
보안 비밀 수정 페이지에서 주석 섹션으로 이동합니다. 여기에서 기존 주석의 값을 변경하거나, 주석을 삭제하거나, 새 주석을 추가할 수 있습니다.
-
항목을 변경한 후 보안 비밀 업데이트를 클릭합니다.
gcloud
기존 주석 수정
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- KEY: 주석 키입니다.
- VALUE: 주석 키의 상응 값입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets update SECRET_ID --location=LOCATION --update-annotations= KEY=VAL
Windows(PowerShell)
gcloud secrets update SECRET_ID --location=LOCATION --update-annotations= KEY=VAL
Windows(cmd.exe)
gcloud secrets update SECRET_ID --location=LOCATION --update-annotations= KEY=VAL
응답은 보안 비밀과 주석을 수정합니다.
특정 주석 삭제
주석을 삭제하려면 다음 명령어를 사용합니다.
gcloud secrets update SECRET_ID --location=LOCATION --remove-annotations= KEY=VAL
모든 주석 지우기
모든 주석을 지우려면 다음 명령어를 사용합니다.
gcloud secrets update SECRET_ID --location=LOCATION --clear-annotations
REST
모든 주석을 지우려면 다음 명령어를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
HTTP 메서드 및 URL:
PATCH https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID?updateMask=annotations
JSON 요청 본문:
{'annotations': {}}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X PATCH \
-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?updateMask=annotations"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-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?updateMask=annotations" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-02T07:14:00.281541Z", "etag": "\"16211dd90b37e7\"" }
주석 보기
보안 비밀에 연결된 주석을 보려면 다음 방법 중 하나를 사용합니다.
콘솔
-
Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.
-
Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭한 후 주석을 보려는 보안 비밀을 클릭합니다.
-
보안 비밀 세부정보 페이지가 열립니다. 개요 탭을 클릭합니다. 여기에서 보안 비밀에 연결된 주석을 볼 수 있습니다. 키는 왼쪽 열에 나열되고 값은 오른쪽 열에 표시됩니다.
gcloud
아래의 명령어 데이터를 사용하기 전에 다음을 바꿉니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
다음 명령어를 실행합니다.
Linux, macOS 또는 Cloud Shell
gcloud secrets describe SECRET_ID --location=LOCATION
Windows(PowerShell)
gcloud secrets describe SECRET_ID --location=LOCATION
Windows(cmd.exe)
gcloud secrets describe SECRET_ID --location=LOCATION
응답에는 보안 비밀과 주석이 포함됩니다.
REST
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- LOCATION: 보안 비밀의 Google Cloud 위치입니다.
- PROJECT_ID: Google Cloud 프로젝트 ID입니다.
- SECRET_ID: 보안 비밀의 ID 또는 보안 비밀의 정규화된 식별자입니다.
HTTP 메서드 및 URL:
GET https://secretmanager.LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID
JSON 요청 본문:
{}
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X GET \
-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"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-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" | Select-Object -Expand Content
다음과 비슷한 JSON 응답이 표시됩니다.
{ "name": "projects/PROJECT_ID/locations/LOCATION/secrets/SECRET_ID", "createTime": "2024-09-02T07:14:00.281541Z", "etag": "\"16211dcd99c386\"", "annotations": { "key1": "value1", "key2": "value2" } }