주석 만들기 및 관리

이 페이지에서는 리전 보안 비밀에 주석을 추가하고 이러한 주석을 수정 및 확인하는 방법을 설명합니다.

개요

주석을 사용하면 보안 비밀에 대한 커스텀 메타데이터를 저장할 수 있습니다. 예를 들어 보안 비밀을 마운트할 경로에 보안 비밀을 주석으로 추가할 수 있습니다. 주석은 다음과 같은 경우에 유용할 수 있습니다.

  • 목적, 환경(개발, 스테이징, 프로덕션), 민감도 수준에 따라 보안 비밀을 분류합니다. 이렇게 하면 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으로 액세스 제어를 참조하세요.

보안 비밀에 주석 추가

새 보안 비밀을 만들거나 기존 보안 비밀을 업데이트할 때 주석을 추가할 수 있습니다. 주석의 메타데이터는 키-값 쌍으로 저장됩니다. 주석을 추가하려면 다음 방법 중 하나를 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.

    Secret Manager로 이동

  2. Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭한 후 리전 보안 비밀 만들기를 클릭합니다.

  3. 리전 보안 비밀 만들기 페이지에서 이름 필드에 보안 비밀 이름을 입력합니다.

  4. 보안 비밀 값을 입력합니다(예: abcd1234). 또한 파일 업로드 옵션을 사용하여 보안 비밀 값이 포함된 텍스트 파일을 업로드할 수 있습니다. 이 작업은 보안 비밀 버전을 자동으로 만듭니다.

  5. 리전 목록에서 리전 보안 비밀을 저장하려는 위치를 선택합니다.

  6. 주석 섹션으로 이동한 후 주석 추가를 클릭합니다.

  7. 키와 해당 값을 입력합니다.

  8. 보안 비밀 만들기를 클릭합니다.

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 미만이어야 합니다.

주석 수정

주석을 수정하려면 다음 방법 중 하나를 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.

    Secret Manager로 이동

  2. Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭합니다.

  3. 목록에서 보안 비밀을 찾고 해당 보안 비밀과 연결된 작업 메뉴를 클릭합니다. 작업 메뉴에서 수정을 클릭합니다.

  4. 보안 비밀 수정 페이지에서 주석 섹션으로 이동합니다. 여기에서 기존 주석의 값을 변경하거나, 주석을 삭제하거나, 새 주석을 추가할 수 있습니다.

  5. 항목을 변경한 후 보안 비밀 업데이트를 클릭합니다.

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\""
}

주석 보기

보안 비밀에 연결된 주석을 보려면 다음 방법 중 하나를 사용합니다.

콘솔

  1. Google Cloud 콘솔에서 Secret Manager 페이지로 이동합니다.

    Secret Manager로 이동

  2. Secret Manager 페이지에서 리전 보안 비밀 탭을 클릭한 후 주석을 보려는 보안 비밀을 클릭합니다.

  3. 보안 비밀 세부정보 페이지가 열립니다. 개요 탭을 클릭합니다. 여기에서 보안 비밀에 연결된 주석을 볼 수 있습니다. 키는 왼쪽 열에 나열되고 값은 오른쪽 열에 표시됩니다.

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"
  }
}

다음 단계