Visão geral da API Key Management Service

A API Key Management Service (KMS) usa recursos personalizados do Kubernetes para gerenciar o ciclo de vida das chaves criptográficas.

Para usar a API KMS, use o console do GDC. Se o aplicativo usar suas próprias bibliotecas para chamar a API, adote o endpoint de serviço de exemplo na seção a seguir e as definições completas da API para criar suas solicitações:

Endpoint de serviço e documento de descoberta

As APIs do KMS são fornecidas em dois pacotes, dependendo da implantação zonal ou global.

Os endpoints de API para as APIs zonais e globais do KMS são os seguintes, respectivamente:

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

A variável MANAGEMENT_API_SERVER_ENDPOINT é o endpoint do servidor da API Management.

Usando o comando kubectl proxy, acesse o URL no navegador para receber o documento de descoberta da API KMS. O comando kubectl proxy abre um proxy em 127.0.0.1:8001 para o servidor da API Kubernetes na sua máquina local. Depois que esse comando estiver em execução, acesse os documentos nos seguintes URLs:

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

Recursos de exemplo

Confira a seguir exemplos de recursos. O namespace é um namespace de projeto. Consulte a seção Criar uma chave na página Criar e excluir chaves para mais informações sobre como criar chaves.

Recurso AEADKey

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

Recurso SigningKey

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

Recurso KeyImport

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

Recurso 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

Recurso RotationJob

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

Recurso MZAEADKey

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