O sistema de gestão de chaves (KMS) suporta diferentes tipos de chaves para operações criptográficas, como encriptação, desencriptação, assinatura e verificação. Consulte o artigo Chaves suportadas para ver mais informações sobre os tipos de chaves e os algoritmos disponíveis.
Esta página destina-se a públicos-alvo no grupo de operadores de aplicações, como equipas de DevOps, quando realizam operações de gestão de chaves no Google Distributed Cloud (GDC) air-gapped. Para mais informações, consulte a documentação sobre públicos-alvo para GDC com isolamento de ar.
Antes de começar
Para criar e gerir chaves, peça as autorizações necessárias e prepare o seu ambiente.
Peça funções de IAM
Contacte o administrador da IAM da sua organização para lhe conceder as seguintes funções no espaço de nomes do projeto:
- KMS Creator (
kms-creator): ver e criar recursosAEADKeyeSigningKeynum projeto. - Administrador do KMS (
kms-admin): ver, criar e eliminar chaves num projeto.
Prepare o seu ambiente
Instale e inicialize a CLI gcloud, se ainda não o tiver feito.
Autentique-se no GDC através da CLI gdcloud. Este processo requer o certificado da autoridade de certificação (CA) para a consola da sua organização:
Transfira o certificado da AC:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHSubstitua o seguinte:
CONSOLE_URL: o URL da consola da sua organização (comoconsole.org-1.zone1.google.gdch.test)CA_CERT_PATH: o caminho completo onde quer guardar o ficheiro do certificado da AC (como/tmp/my-org-ca.crt)
Inicie sessão com o certificado da AC transferido:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Obtenha um ficheiro kubeconfig para o servidor da API Management através da CLI gdcloud.
Crie uma chave
Pode criar chaves para diferentes fins criptográficos.
Crie uma chave AEAD
Para realizar a encriptação autenticada com dados associados (AEAD), crie um recurso
AEADKey no espaço de nomes do seu 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 o seguinte:
KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API ManagementKEY_NAME: um nome para a chave AEAD que quer criar, por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Crie uma chave de assinatura
Para assinar e validar dados, crie um recurso SigningKey no espaço de nomes do seu 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 o seguinte:
KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API ManagementKEY_NAME: um nome para a chave de assinatura que quer criar, por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Valide a criação de chaves
Depois de criar uma chave, verifique se a operação foi bem-sucedida e se o recurso da chave está pronto.
Valide a criação da chave AEAD
Verifique o estado de uma chave AEAD:
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
Substitua o seguinte:
KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API ManagementKEY_NAME: o nome da chave AEAD a validarpor exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Se a criação da chave tiver sido bem-sucedida, verifique o resultado para uma condição Ready com o estado True.
Valide a criação da chave de assinatura
Verifique o estado de uma chave de assinatura:
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
Substitua o seguinte:
KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API ManagementKEY_NAME: o nome da chave de assinatura para validar,por exemplo:key-1PROJECT: o nome do projeto. Por exemplo:kms-test1
Se a criação da chave tiver sido bem-sucedida, verifique o resultado para uma condição Ready com o estado True.
Elimine uma chave
Para eliminar um recurso da chave, especifique o tipo e o nome da chave.
Elimine a chave no espaço de nomes do projeto:
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSubstitua o seguinte:
KUBECONFIG_PATH: o caminho para o ficheiro kubeconfig do servidor da API ManagementKEY_PRIMITIVE: o tipo de recurso de chave que quer eliminar, comoaeadkeypara a chave AEAD ousigningkeypara a chave de assinaturaKEY_NAME: o nome da chave que quer eliminar, por exemplo:key-1.PROJECT: o nome do projeto. Por exemplo:kms-test1.
Valide a eliminação da chave tentando obter a chave:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSe a chave tiver sido eliminada com êxito, o comando não devolve o objeto da chave.