Instalar e gerenciar uma licença do Spanner Omni

Este documento explica como armazenar e processar sua chave de licença, instalá-la na implantação, atualizar chaves expiradas e verificar a instalação em todos os nós.

Para executar um ambiente de produção, instale uma chave de licença comercial do Spanner Omni. Em um ambiente de não produção, é possível usar os recursos de backup e restauração implantando o Spanner Omni em uma configuração de servidor único de quatro vCPUs ou menos sem uma chave de licença. O recurso de workers não é compatível com a licença padrão ou de desenvolvedor, independente de quantos servidores ou vCPUs são usados. Para comprar uma licença comercial e usar trabalhadores, entre em contato com o Google.

Para saber mais sobre os tipos de licença, edições e recursos disponíveis, consulte Visão geral das edições do Spanner Omni.

Armazenar sua chave de licença

Trate a chave de licença do Spanner Omni como uma credencial altamente sensível. Se alguém comprometer uma chave de licença, o Google vai invalidá-la em versões futuras do Spanner Omni. Para evitar a exposição de chaves, implemente as seguintes diretrizes de ciclo de vida. Recomendamos que você use sistemas automatizados para injetar a chave em vez de gravá-la no armazenamento permanente em texto simples. As seções a seguir descrevem como armazenar a chave de licença, proteger arquivos de implantação automatizada e configurar a transmissão em tempo de execução.

Armazenamento em gerenciadores de secrets centrais

Não faça commit da chave de licença para controle de origem nem a codifique nos arquivos de configuração. Sempre armazene a chave em um repositório de credenciais centralizado, como:

Automação de implantação

Ao implantar usando ferramentas de automação como Terraform ou Ansible, não transmita a chave de licença como variáveis de configuração de texto simples:

  • Terraform:busque a chave de licença dinamicamente no tempo de execução da implantação usando fontes de dados. Marque a variável usando o atributo sensitive = true para evitar que a chave apareça nos registros do console de execução.
  • Ansible:mantenha a chave na memória durante a execução da configuração usando plug-ins do gerenciador de secrets (como google.cloud.gcp_secret_manager ou community.hashicorp.vault) ou criptografe a chave com o Ansible Vault se ela estiver armazenada em um repositório.

Transmitir sua chave de licença durante a execução

Use as técnicas a seguir para entregar a chave de licença aos processos do banco de dados sem expô-la a usuários não autorizados:

Implantações baseadas em VM (nuvem ou local)

  • Injeção baseada no Identity and Access Management (IAM):associe suas VMs de banco de dados a uma conta de serviço gerenciado ou um papel do IAM. Durante a inicialização ou o provisionamento (por exemplo, com o Ansible), use essa identidade para recuperar a chave de licença do gerenciador de secrets na memória ou em um diretório com acesso restrito.
  • Permissões do sistema operacional:se você gravar a chave no disco, restrinja o acesso aos arquivos para que apenas o usuário que executa o processo do Spanner Omni possa ver o arquivo (por exemplo, chmod 400 /path/to/license). Restrinja severamente o acesso SSH às máquinas host.

Implantações do Kubernetes

  • Use o driver CSI do Secrets Store:use o driver CSI do Secrets Store padrão para montar a chave de licença diretamente do gerenciador de secrets externo nos pods do Spanner Omni como um volume de memória temporário (tmpfs). A credencial existe apenas na memória e desaparece quando o pod é encerrado.
  • Evite secrets integrados do Kubernetes:não use secrets integrados do Kubernetes, que usam apenas a codificação base64 e persistem no etcd.

Instalar a chave de licença

Para instalar ou atualizar uma chave de licença, deixe-a acessível aos servidores do Spanner Omni como um caminho local (por exemplo, /path/to/your/license).

Para transmitir o caminho da chave de licença ao servidor, use a flag --license-file-path ou a variável de ambiente SPANNER_LICENSE_FILE_PATH ao executar o comando spanner start ou spanner start-single-server.

Exemplo:

spanner start --root \
  --license-file-path=LICENSE_KEY_FILE_PATH \
  --server-address=RESOLVABLE_HOSTNAME \
  --zone=ZONE_NAME \
  --base-dir=SPANNER_BASE_DIR

Ou use a variável de ambiente para fornecer o caminho da licença:

SPANNER_LICENSE_FILE_PATH=LICENSE_KEY_FILE_PATH \
  spanner start --root \
    --server-address=RESOLVABLE_HOSTNAME \
    --zone=ZONE_NAME \
    --base-dir=SPANNER_BASE_DIR

Substitua:

  • LICENSE_KEY_FILE_PATH: o caminho local para o arquivo da chave de licença.
  • RESOLVABLE_HOSTNAME: o nome do host ou o endereço IP resolvível do servidor de nós.
  • ZONE_NAME: o nome da zona da implantação.
  • SPANNER_BASE_DIR: o diretório base em que os arquivos do servidor são armazenados.

Como alternativa, coloque a chave de licença no caminho em que o servidor espera que ela esteja: BASE_DIR/license/license. Para implantações do Kubernetes, BASE_DIR é definido como /spanner por padrão.

Atualizar uma licença prestes a expirar

Para atualizar, estender ou renovar uma licença do Developer Edition que está expirando em uma implantação ativa, solicite uma licença perpétua. Para estender uma licença de prova de conceito prestes a expirar ou comprar uma licença comercial, entre em contato com o Google. Depois de receber a nova licença, forneça o caminho dela e inicie uma reinicialização gradual dos servidores do Spanner Omni:

  1. Deixe o novo arquivo de licença acessível a cada nó.
  2. Faça uma reinicialização gradual reiniciando um nó de servidor por vez.
  3. Monitore a integridade da implantação durante o lançamento. Se algum nó não for reiniciado ou encontrar erros, reverter para a configuração que estava funcionando antes e inspecione os registros do servidor para garantir que a nova licença seja fornecida corretamente.

Instalar a chave de licença com o Helm (Kubernetes)

Se você fizer a implantação usando o gráfico Helm fornecido pelo Google, poderá transmitir o caminho para o arquivo de licença de forma dinâmica durante os upgrades.

Como a flag --set-file do Helm exige um caminho físico no disco, não salve a chave de licença em um arquivo permanente. Em vez disso, busque a chave do gerenciador de secrets em um arquivo temporário efêmero ou em um caminho na memória (por exemplo, /dev/shm no Linux). Transmita esse caminho para o Helm e exclua ou destrua o arquivo imediatamente depois. Isso garante que o sistema não deixe a credencial de texto simples no disco, evitando que ela seja mantida localmente ou enviada acidentalmente para o controle de versão.

helm upgrade --install spanner-omni \
  --set-file licenseKey=LICENSE_KEY_FILE_PATH

Substitua:

  • LICENSE_KEY_FILE_PATH: o caminho local para o arquivo da chave de licença.

Verificar a instalação da licença

Como você instala a chave de licença em todos os nós de servidor ativos em um cluster, é possível verificar a instalação inspecionando o status de um dos nós de servidor que processam suas solicitações. Use o comando describe para o endpoint:

spanner deployment describe --deployment-endpoint=SERVER_ADDRESS

Substitua:

  • SERVER_ADDRESS: o endereço do nó do servidor.

Executar uma auditoria em todo o cluster

Para verificar se todos os nós no cluster de VM ou no StatefulSet do Kubernetes têm a chave de licença correta instalada, execute o comando de auditoria em todo o cluster:

spanner admin license check

Uma auditoria em todo o cluster inspeciona todos os servidores na topologia do banco de dados. Por isso, verifique se todos os servidores de nós estão on-line e acessíveis pela rede antes de executar esse comando.

Interpretar os resultados da auditoria

Use a tabela a seguir para entender os resultados da auditoria em todo o cluster:

Estado do cluster Tipo de saída Descrição e ação necessárias
Uniforme (esperado) Identificador de licença única Todos os nós estão usando a mesma chave e o mesmo tipo de licença. Não é necessário fazer mais nada.
Mista (ação necessária) Lista de identificadores e servidores de licença Diferentes chaves de licença são detectadas em todos os nós (por exemplo, durante uma atualização gradual interrompida). Investigue os nós listados para garantir que o novo arquivo de licença foi aplicado corretamente.

Manter a conformidade da licença comercial

Se você usa uma licença comercial do Spanner Omni, precisa manter a conformidade com o contrato de licença. Manter a conformidade ajuda a evitar disputas de faturamento e rastreia e informa ao Google o uso de recursos do cluster. Siga estas etapas para manter a conformidade com um contrato de licença comercial do Spanner Omni:

  1. Execute a ferramenta de uso do Spanner Omni no final de cada ciclo de faturamento para coletar métricas de uso de vCPU do cluster:

    spanner admin license report --row-format=CSV
    
  2. Entre em contato com seu gerente técnico de contas (TAM) ou com a equipe da sua Conta do Google para confirmar o canal de envio preferido da sua organização.

  3. Envie o payload resultante ao Google até o dia 5 do mês seguinte.

A seguir