Cloud Key Management Service는 Cloud KMS 키에 라벨을 추가하는 옵션을 제공합니다. 라벨은 관련성이 높은 Cloud KMS 키를 그룹화하고 Cloud KMS 키에 대한 메타데이터를 저장하는 데 사용할 수 있는 키-값 쌍입니다.
라벨이 청구서에 포함되므로 라벨에 따른 비용 분포를 확인할 수 있습니다.
Google Cloud CLI 및 Cloud KMS REST API를 사용하여 키 라벨을 추가, 업데이트, 삭제할 수 있습니다.
라벨은 가상 머신 리소스, 스토리지 버킷 같은 다른 Google Cloud 리소스와 함께 사용할 수 있습니다. Google Cloud에서 라벨을 사용하는 방법에 대한 자세한 내용은 라벨 만들기 및 관리를 참조하세요.
라벨이란 무엇인가요?
라벨은 Google Cloud KMS 키에 할당할 수 있는 키-값 쌍입니다. 이러한 리소스를 구성하고 필요한 세부사항으로 규모에 맞게 비용을 관리하는 데 도움이 됩니다. 각 리소스에 라벨을 연결한 후 이 라벨을 기준으로 리소스를 필터링할 수 있습니다. 라벨에 대한 정보는 청구 요금을 라벨별로 분류할 수 있는 결제 시스템으로 전달됩니다. 기본 제공되는 결제 보고서를 통해 리소스 라벨별로 비용을 필터링하고 그룹화할 수 있습니다. 라벨을 사용하여 결제 데이터 내보내기를 쿼리할 수도 있습니다.
라벨 요구사항
리소스에 적용된 라벨은 다음 요구사항을 충족해야 합니다.
- 각 리소스에 라벨을 최대 64개까지 사용할 수 있습니다.
- 각 라벨은 키-값 쌍이어야 합니다.
- 키는 비워 둘 수 없으며 최소 길이는 1자(영문 기준)이고 최대 길이는 63자(영문 기준)입니다. 값은 비워 둘 수 있으며 최대 길이는 63자(영문 기준)입니다.
- 키와 값에는 소문자, 숫자, 밑줄, 대시만 사용할 수 있습니다. 모든 문자는 UTF-8 인코딩을 사용해야 하며 국제 문자가 허용됩니다. 키는 소문자나 국제 문자로 시작해야 합니다.
- 라벨의 키 부분은 단일 리소스에서 고유해야 합니다. 그러나 여러 리소스에 같은 키를 사용할 수 있습니다.
이러한 한도는 각 라벨의 키와 값 및 라벨이 있는 개별 Google Cloud 리소스에 적용됩니다. 한 프로젝트의 모든 리소스에 적용할 수 있는 라벨 수에는 제한이 없습니다.
라벨의 일반적인 사용 사례
다음은 라벨의 몇 가지 일반적인 사용 사례입니다.
팀 또는 비용 센터 라벨: 팀 또는 비용 센터를 기준으로 라벨을 추가하여 다른 팀(예:
team:research
및team:analytics
)에서 소유한 Cloud KMS 키를 구분할 수 있습니다. 비용 계산이나 예산 책정에 이 유형의 라벨을 사용할 수 있습니다.구성요소 라벨:
component:redis
,component:frontend
,component:ingest
,component:dashboard
를 예로 들 수 있습니다.환경 또는 단계 라벨:
environment:production
과environment:test
를 예로 들 수 있습니다.상태 라벨:
state:active
,state:readytodelete
,state:archive
를 예로 들 수 있습니다.소유권 라벨: 작업을 담당하는 팀을 식별하는 데 사용됩니다(예:
team:shopping-cart
).
모든 API 호출의 타임스탬프 또는 개별 값과 같은 다수의 고유 라벨을 만들지 않는 것이 좋습니다. 이 접근 방식의 문제는 값이 자주 변경되거나 카탈로그를 복잡하게 하는 키로 인해 리소스를 효과적으로 필터링하고 보고하기 어렵다는 것입니다.
라벨 및 태그
라벨은 리소스에 대해 쿼리 가능한 주석으로 사용될 수 있지만 정책에 조건을 설정하는 데는 사용할 수 없습니다. 태그를 사용하면 정책을 세밀하게 제어하여 리소스에 특정 태그가 있는지 여부에 따라 정책을 조건부로 허용하거나 거부할 수 있습니다. 자세한 내용은 태그 개요를 참조하세요.
라벨이 있는 키 만들기
키를 만들 때 하나 이상의 키 값 쌍을 라벨로 제공하여 라벨을 추가할 수 있습니다.
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
키를 만들 키링의 이름을 클릭합니다.
키 만들기를 클릭합니다.
키 이름에 키의 이름을 입력합니다.
필요에 따라 키를 구성합니다.
추가 설정을 클릭합니다.
추가할 라벨마다 라벨 추가를 클릭한 후 키와 값을 입력합니다.
만들기를 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
이 예시에서는 새 키를 만들고 키에 라벨을 할당하는 방법을 보여줍니다. 기존 키에 라벨을 추가할 수도 있습니다.
gcloud kms keys create KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --purpose PURPOSE \ --labels "LABEL_LIST"
다음을 바꿉니다.
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키를 만들 키링입니다.LOCATION
: 키링 위치입니다(예:global
).PURPOSE
: 키의 용도입니다(예:encryption
).LABEL_LIST
: 쉼표로 구분된 키-값 쌍 목록입니다. 각 쌍은LABEL_KEY=LABEL_VALUE
형식입니다. 예를 들면env=prod,team=research
입니다. 각 라벨 키는 Cloud Key Management Service 키에서 한 번만 사용할 수 있습니다. 다른 값을 사용해서 라벨 키를 여러 번 지정한 경우, 항상 새 값이 이전 값을 덮어씁니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
CryptoKeys.create
메서드를 사용하여 새 키를 만들 때 라벨을 추가하고, 요청 본문에 labels
속성을 포함합니다. 예를 들면 다음과 같습니다.
{
"purpose": "ENCRYPT_DECRYPT",
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
다음을 바꿉니다.
LABEL_KEY
: 라벨의 키입니다(예:env
).LABEL_VALUE
: 라벨의 값입니다(예:prod
).
각각 고유한 값이 있는 여러 개의 라벨 키를 추가할 수 있습니다. 각 라벨 키는 Cloud Key Management Service 키에서 한 번만 사용할 수 있습니다. 다른 값을 사용해서 라벨 키를 여러 번 지정한 경우, 항상 새 값이 이전 값을 덮어씁니다.
키의 라벨 보기
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
검사하려는 키의 키링 이름을 클릭합니다.
헤더에서 정보 패널 표시를 클릭합니다.
패널에서 라벨 탭을 선택합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys describe KEY_NAME \ --keyring KEY_RING \ --location LOCATION
다음을 바꿉니다.
KEY_NAME
: 라벨을 보려는 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 위치입니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
키에 적용된 라벨을 보려면 CryptoKeys.get
메서드를 사용합니다.
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \ --request "GET" \ --header "authorization: Bearer TOKEN" \ --header "content-type: application/json" \ --header "x-goog-user-project: PROJECT_ID"
다음을 바꿉니다.
PROJECT_ID
: 키링이 포함된 프로젝트의 ID입니다.KEY_NAME
: 라벨을 보려는 키의 이름입니다.KEY_RING
: 키가 포함된 키링의 이름입니다.LOCATION
: 키링의 위치입니다.
라벨 추가 또는 업데이트
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
검사하려는 키의 키링 이름을 클릭합니다.
헤더에서 정보 패널 표시를 클릭합니다.
패널에서 라벨 탭을 선택합니다.
해당 텍스트 필드에서 직접 라벨 값을 수정합니다.
원하는 키 이름으로 새 라벨을 추가하여 라벨의 키를 수정하고 삭제하려는 라벨 옆에 있는 삭제
를 클릭하여 오래된 라벨을 삭제합니다.저장을 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys update KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --update-labels "LABEL_LIST"
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링입니다.LOCATION
: 키링의 위치입니다.LABEL_LIST
: 쉼표로 구분된 키-값 쌍 목록입니다. 각 쌍은LABEL_KEY=LABEL_VALUE
형식입니다. 예를 들면env=prod,team=research
입니다. 각 라벨 키는 Cloud Key Management Service 키에서 한 번만 사용할 수 있습니다. 다른 값을 사용해서 라벨 키를 여러 번 지정한 경우, 항상 새 값이 이전 값을 덮어씁니다.
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
CryptoKeys.patch 메서드를 사용하여 기존 키에 라벨을 추가하거나 업데이트하고, 요청 본문에 labels
속성을 포함합니다. 예를 들면 다음과 같습니다.
{
"labels": [
{
"key": "LABEL_KEY",
"value": "LABEL_VALUE"
}
]
}
라벨 삭제
콘솔
Google Cloud 콘솔에서 키 관리 페이지로 이동합니다.
검사하려는 키의 키링 이름을 클릭합니다.
헤더에서 정보 패널 표시를 클릭합니다.
패널에서 라벨 탭을 선택합니다.
삭제하려는 라벨 옆에 있는 삭제
아이콘을 클릭합니다.저장을 클릭합니다.
gcloud
명령줄에서 Cloud KMS를 사용하려면 먼저 최신 버전의 Google Cloud CLI로 설치 또는 업그레이드하세요.
gcloud kms keys update KEY_NAME \ --keyring KEY_RING \ --location LOCATION \ --remove-labels "LABEL_KEYS"
KEY_NAME
: 키의 이름입니다.KEY_RING
: 키가 포함된 키링입니다.LOCATION
: 키링의 위치입니다.LABEL_LIST
: 키에서 삭제하려는 라벨 키의 쉼표로 구분된 목록입니다(예:env,team
).
모든 플래그 및 가능한 값에 대한 정보를 보려면 --help
플래그와 함께 명령어를 실행하세요.
C#
이 코드를 실행하려면 먼저 C# 개발 환경을 설정하고 Cloud KMS C# SDK를 설치합니다.
Go
이 코드를 실행하려면 먼저 Go 개발 환경을 설정하고 Cloud KMS Go SDK를 설치합니다.
Java
이 코드를 실행하려면 먼저 자바 개발 환경을 설정하고 Cloud KMS 자바 SDK를 설치합니다.
Node.js
이 코드를 실행하려면 먼저 Node.js 개발 환경을 설정하고 Cloud KMS Node.js SDK를 설치합니다.
PHP
이 코드를 실행하려면 먼저 Google Cloud에서 PHP 사용에 관해 알아보고 Cloud KMS PHP SDK 설치하세요.
Python
이 코드를 실행하려면 먼저 Python 개발 환경을 설정하고 Cloud KMS Python SDK를 설치합니다.
Ruby
이 코드를 실행하려면 먼저 Ruby 개발 환경을 설정하고 Cloud KMS Ruby SDK를 설치합니다.
API
이 예시에서는 curl을 HTTP 클라이언트로 사용하여 API 사용을 보여줍니다. 액세스 제어에 대한 자세한 내용은 Cloud KMS API 액세스를 참조하세요.
CryptoKeys.patch 메서드를 사용하여 기존 키에서 라벨을 삭제하고, 요청 본문에 labels
속성을 빈 배열로 포함합니다. 예를 들면 다음과 같습니다.
{
"labels": []
}
감사 로깅
Cloud KMS의 Cloud 감사 로그는 키를 생성하거나 업데이트할 때 라벨 정보를 로깅하는 데 사용할 수 있습니다. 키 생성 및 업데이트는 모두 관리자 활동이며, 라벨 변경사항은 관리자 활동 로그에 기록됩니다.