Key Management Service API 개요

Key Management Service (KMS) API는 Kubernetes 커스텀 리소스를 사용하여 암호화 키의 수명 주기를 관리합니다.

KMS API를 사용하려면 GDC 콘솔을 사용하세요. 애플리케이션에서 자체 라이브러리를 사용하여 API를 호출하는 경우 다음 섹션의 서비스 엔드포인트 예시와 전체 API 정의를 채택하여 요청을 빌드하세요.

서비스 엔드포인트 및 검색 문서

KMS API는 영역 배포 또는 전역 배포에 따라 두 패키지로 제공됩니다.

영역 및 전역 KMS API의 API 엔드포인트는 각각 다음과 같습니다.

  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.gdc.goog/v1
  • https://MANAGEMENT_API_SERVER_ENDPOINT/apis/kms.global.gdc.goog/v1

MANAGEMENT_API_SERVER_ENDPOINT 변수는 Management API 서버의 엔드포인트입니다.

kubectl proxy 명령어를 사용하여 브라우저에서 URL에 액세스하여 KMS API의 검색 문서를 가져옵니다. kubectl proxy 명령어는 로컬 머신의 Kubernetes API 서버에 127.0.0.1:8001의 프록시를 엽니다. 명령어가 실행된 후 다음 URL에서 문서에 액세스합니다.

  • http://127.0.0.1:8001/apis/kms.gdc.goog/v1
  • http://127.0.0.1:8001/apis/kms.global.gdc.goog/v1

리소스 예시

다음은 샘플 리소스입니다. 네임스페이스가 프로젝트 네임스페이스입니다. 키 만들기에 관한 자세한 내용은 키 만들기 및 삭제 페이지의 키 만들기 섹션을 참고하세요.

AEADKey 리소스

apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM

SigningKey 리소스

apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
  name: my-test-key
  namespace: user-kms-project
spec:
  algorithm: EC_SIGN_P384_SHA384

KeyImport 리소스

apiVersion: "kms.gdc.goog/v1"
kind: KeyImport
metadata:
  name: my-test-key-import
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256

KeyExport 리소스

apiVersion: "kms.gdc.goog/v1"
kind: KeyExport
metadata:
  name: my-test-key-export
  namespace: user-kms-project
spec:
  context:
    mechanism: ECDH_P521_AES256
    publicKey: pub_key_from_import
  keyToExport:
    kind: AEADKey
    name: key_name_to_export

RotationJob 리소스

apiVersion: "kms.gdc.goog/v1"
kind: RotationJob
metadata:
  name: my-test-rotate-job
spec:
  rootKeyResourceName: namespaces/kms-system/secrets/kms-key-ctm-root

MZAEADKey 리소스

apiVersion: "kms.global.gdc.goog/v1"
kind: MZAEADKey
metadata:
  name: my-test-mz-key
  namespace: user-kms-project
spec:
  algorithm: AES_256_GCM