O sistema de gerenciamento de chaves (KMS, na sigla em inglês) é compatível com diferentes tipos de chaves para operações criptográficas, como criptografia, descriptografia, assinatura e verificação. Consulte Chaves compatíveis para mais informações sobre os tipos de chave e algoritmos disponíveis.
Esta página é destinada a públicos-alvo do grupo de operadores de aplicativos, como equipes de DevOps, ao realizar operações de gerenciamento de chaves no Google Distributed Cloud (GDC) com isolamento físico. Para mais informações, consulte Públicos-alvo da documentação do GDC com isolamento físico.
Antes de começar
Para criar e gerenciar chaves, solicite as permissões necessárias e prepare o ambiente.
Solicitar papéis do IAM
Entre em contato com o admin. da organização do IAM para receber os seguintes papéis no namespace do projeto:
- Criador do KMS (
kms-creator): visualizar e criar recursosAEADKeyeSigningKeyem um projeto. - Administrador do KMS (
kms-admin): visualizar, criar e excluir chaves em um projeto.
Preparar o ambiente
Instale e inicialize a CLI gdcloud, caso ainda não tenha feito isso.
Autentique-se no GDC usando a CLI gdcloud. Esse processo requer o certificado da autoridade certificadora (CA) para o console da sua organização:
Faça o download do certificado de CA:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSubstitua:
CONSOLE_URL: o URL do console da sua organização (comoconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: o caminho completo em que você quer salvar o arquivo de certificado de CA (como/tmp/my-org-ca.crt)
Faça login usando o certificado de CA que você baixou:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Receba um arquivo kubeconfig para o servidor de API Management usando a CLI gdcloud.
Crie uma chave
É possível criar chaves para diferentes finalidades criptográficas.
Criar uma chave AEAD
Para realizar a criptografia autenticada com dados associados (AEAD, na sigla em inglês), crie um
recurso AEADKey no namespace do projeto:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: AEADKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: AES_256_GCM
EOF
Substitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de API Management.KEY_NAME: um nome para a chave AEAD que você quer criar, por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Criar uma chave de assinatura
Para assinar e verificar dados, crie um recurso SigningKey no namespace do projeto:
kubectl --kubeconfig KUBECONFIG_PATH \
apply -f - << EOF
apiVersion: "kms.gdc.goog/v1"
kind: SigningKey
metadata:
name: KEY_NAME
namespace: PROJECT
spec:
algorithm: EC_SIGN_P384_SHA384
EOF
Substitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de API Management.KEY_NAME: um nome para a chave de assinatura que você quer criar, por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Verificar a criação da chave
Depois de criar uma chave, verifique se a operação foi bem-sucedida e se o recurso de chave está pronto.
Verificar a criação da chave AEAD
Verifique o status de uma chave AEAD:
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
Substitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de API Management.KEY_NAME: o nome da chave AEAD a ser verificada, por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Se a criação da chave tiver sido bem-sucedida, verifique se a saída tem uma condição Ready
com o status True.
Verificar a criação da chave de assinatura
Verifique o status de uma chave de assinatura:
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
Substitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de API Management.KEY_NAME: o nome da chave de assinatura a ser verificada. Por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Se a criação da chave tiver sido bem-sucedida, verifique se a saída tem uma condição Ready
com o status True.
Excluir uma chave
Para excluir um recurso de chave, especifique o tipo e o nome da chave.
Exclua a chave no namespace do projeto:
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSubstitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de API Management.KEY_PRIMITIVE: o tipo de recurso de chave que você quer excluir, comoaeadkeypara a chave AEAD ousigningkeypara a chave de assinatura.KEY_NAME: o nome da chave que você quer excluir, por exemplo:key-1.PROJECT: o nome do projeto. Por exemplo:kms-test1.
Verifique a exclusão da chave tentando recuperá-la:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSe a chave tiver sido excluída, o comando não vai retornar o objeto da chave.