O Key Management System (KMS) oferece suporte a 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 e algoritmos de chaves 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, peça as permissões necessárias e prepare seu ambiente.
Solicitar papéis do IAM
Entre em contato com o administrador do IAM da organização para conceder a você 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 exige o certificado da autoridade certificadora (AC) do 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 baixado:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Acesse um arquivo kubeconfig para o servidor da API Management usando a CLI gdcloud.
Crie uma chave
É possível criar chaves para diferentes fins criptográficos.
Criar uma chave AEAD
Para realizar a criptografia autenticada com dados associados (AEAD), 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 da API ManagementKEY_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 da API ManagementKEY_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 de chaves
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 de chaves 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 da API ManagementKEY_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 foi bem-sucedida, verifique a saída de uma condição Ready com um status de True.
Verificar a criação de chaves 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 da API ManagementKEY_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 foi bem-sucedida, verifique a saída de uma condição Ready com um status de 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 da API ManagementKEY_PRIMITIVE: o tipo de recurso de chave que você quer excluir, comoaeadkeypara a chave AEAD ousigningkeypara a chave de assinaturaKEY_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 foi excluída, o comando não vai retornar o objeto de chave.