El Key Management System (KMS) admite diferentes tipos de claves para operaciones criptográficas, como encriptación, desencriptación, firma y verificación. Consulta Claves admitidas para obtener más información sobre los tipos y algoritmos de claves disponibles.
Esta página está destinada a públicos dentro 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 Google Distributed Cloud 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 IAM de tu organización para que te otorgue los siguientes roles en el espacio de nombres de tu proyecto:
- Creador de KMS (
kms-creator): Permite ver y crear recursosAEADKeyySigningKeydentro de un proyecto. - Administrador de KMS (
kms-admin): Permite ver, crear y borrar claves dentro de un proyecto.
Prepara el entorno
Instala y, luego, inicializa la CLI de gdcloud, si aún no lo hiciste.
Autentica 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.
Crea una clave
Puedes crear claves para diferentes propósitos criptográficos.
Crea una clave AEAD
Para realizar la 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 al archivo kubeconfig para el servidor de la API de Management.KEY_NAME: Es un nombre para la clave AEAD que deseas crear, por ejemplo,key-1.PROJECT: 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 al archivo kubeconfig para el servidor de la API de Management.KEY_NAME: Es un nombre para la clave de firma que deseas crear, por ejemplo,key-1.PROJECT: 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 claves 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 al archivo kubeconfig para el servidor de la API de Management.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 claves se realizó correctamente, verifica el resultado para ver una condición Ready con un estado True.
Verifica la creación de claves 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 al archivo kubeconfig para el servidor de la API de Management.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 claves se realizó correctamente, verifica el resultado para ver una condición Ready con un 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 al archivo kubeconfig para el 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 la eliminación de la clave, intenta recuperarla:
kubectl --kubeconfig KUBECONFIG_PATH \ get KEY_PRIMITIVE KEY_NAME \ --namespace=PROJECTSi la clave se borró correctamente, el comando no mostrará el objeto de clave.