El sistema de administración de claves (KMS) admite diferentes tipos de claves para operaciones criptográficas, como encriptación, desencriptación, firma y verificación. Consulta Claves compatibles para obtener más información sobre los tipos de claves y los algoritmos disponibles.
Esta página está dirigida a los públicos del grupo de operadores de aplicaciones, como los equipos de DevOps, cuando realizan operaciones de administración de claves en Google Distributed Cloud (GDC) aislado. Para obtener más información, consulta Públicos de la documentación de GDC aislado.
Antes de comenzar
Para crear y administrar claves, solicita los permisos necesarios y prepara tu entorno.
Solicita roles de IAM
Comunícate con el administrador de la organización de IAM para que te otorgue los siguientes roles en el espacio de nombres de tu proyecto:
- Creador de KMS (
kms-creator): Visualiza y crea recursos deAEADKeyySigningKeydentro de un proyecto. - Administrador de KMS (
kms-admin): Permite ver, crear y borrar claves dentro de un proyecto.
Prepara el entorno
Instala e inicializa la CLI de gdcloud, si aún no lo hiciste.
Autentícate en GDC con la CLI de gdcloud. Este proceso requiere el certificado de la autoridad certificadora (AC) para la consola de tu organización:
Descarga el certificado de la AC:
echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATHReemplaza lo siguiente:
CONSOLE_URL: Es la URL de la consola de tu organización (comoconsole.org-1.zone1.google.gdch.test).CA_CERT_PATH: Es la ruta de acceso completa en la que deseas guardar el archivo del certificado de la AC (como/tmp/my-org-ca.crt).
Accede con el certificado de la AC descargado:
gdcloud auth login --login-config-cert=CA_CERT_PATH
Obtén un archivo kubeconfig para el servidor de la API de Management con la CLI de gdcloud.
Crear una clave
Puedes crear claves para diferentes propósitos criptográficos.
Crea una clave AEAD
Para realizar una encriptación autenticada con datos asociados (AEAD), crea un
recurso AEADKey en el espacio de nombres de tu proyecto:
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
Reemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.KEY_NAME: un nombre para la clave AEAD que deseas crear, por ejemplo:key-1PROJECT: Es el nombre del proyecto, por ejemplo,kms-test1.
Crea una clave de firma
Para firmar y verificar datos, crea un recurso SigningKey en el espacio de nombres de tu proyecto:
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
Reemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.KEY_NAME: un nombre para la clave de firma que deseas crear, por ejemplo:key-1PROJECT: Es el nombre del proyecto, por ejemplo,kms-test1.
Verifica la creación de claves
Después de crear una clave, verifica que la operación se haya realizado correctamente y que el recurso de clave esté listo.
Verifica la creación de la clave AEAD
Verifica el estado de una clave AEAD:
kubectl --kubeconfig KUBECONFIG_PATH \
get aeadkey KEY_NAME \
--namespace=PROJECT -o yaml
Reemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.KEY_NAME: Es el nombre de la clave AEAD que se verificará, por ejemplo,key-1.PROJECT: Es el nombre del proyecto, por ejemplo,kms-test1.
Si la creación de la clave se realizó correctamente, verifica el resultado para ver si hay una condición Ready
con un estado de True.
Verifica la creación de la clave de firma
Verifica el estado de una clave de firma:
kubectl --kubeconfig KUBECONFIG_PATH \
get signingkey KEY_NAME \
--namespace=PROJECT -o yaml
Reemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de administración.KEY_NAME: Es el nombre de la clave de firma que se verificará, por ejemplo,key-1.PROJECT: Es el nombre del proyecto, por ejemplo,kms-test1.
Si la creación de la clave se realizó correctamente, verifica el resultado para ver si hay una condición Ready
con el estado True.
Borra una clave
Para borrar un recurso de clave, especifica el tipo y el nombre de la clave.
Borra la clave en el espacio de nombres del proyecto:
kubectl --kubeconfig KUBECONFIG_PATH \ delete KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTReemplaza lo siguiente:
KUBECONFIG_PATH: Es la ruta de acceso al archivo kubeconfig del servidor de la API de Management.KEY_PRIMITIVE: Es el tipo de recurso de clave que deseas borrar, comoaeadkeypara la clave AEAD osigningkeypara la clave de firma.KEY_NAME: Es el nombre de la clave que deseas borrar, por ejemplo:key-1.PROJECT: Es el nombre del proyecto, por ejemplo,kms-test1.
Para verificar que se haya borrado la clave, intenta recuperarla:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSi la clave se borró correctamente, el comando no devolverá el objeto de la clave.