En esta guía, se muestra cómo crear, aprovisionar y administrar una instancia de Cloud HSM de un solo inquilino con Google Cloud CLI. Después de crear y aprovisionar tu instancia, puedes crear y usar claves en ella con la consola de Google Cloud , la API de Cloud Key Management Service, gcloud CLI y las bibliotecas cliente.
Para crear y administrar tu instancia, se requiere autenticación de quórum. Cuando creas tu instancia, defines la cantidad de aprobaciones de miembros del quórum que se requieren para ejecutar operaciones de la instancia. Los miembros del quórum siempre deben tener al menos esta cantidad de claves de control disponibles para mantener el control administrativo de tu instancia.
Antes de comenzar
- Revisa y aplica las prácticas recomendadas de Cloud HSM de usuario único cuando crees y mantengas tu instancia.
- Decide con cuántos miembros del quórum quieres comenzar. Se pueden agregar miembros adicionales del quórum más adelante si los miembros existentes del quórum lo aprueban. La cantidad mínima de miembros del quórum es tres.
- Decide cuántos miembros del quórum se requieren para aprobar propuestas. No puedes cambiar este número después de crear la instancia. Los miembros del quórum siempre deben tener acceso a esta cantidad de claves de control para mantener la instancia. El tamaño mínimo del quórum es de dos. El tamaño del quórum requerido debe ser inferior a la cantidad de miembros del quórum.
- Decide cómo te asegurarás de que la instancia se actualice a tiempo.
Debes supervisar el
disableDatede la instancia y proponer, aprobar y ejecutar una operación de actualización de la instancia antes de la fecha límite para evitar un tiempo de inactividad no deseado. -
Para obtener los permisos que necesitas para crear, administrar y usar instancias de HSM de Cloud de un solo inquilino, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto o un recurso principal:
-
Crear propuestas:
Proponente de HSM de usuario único de Cloud KMS (
cloudkms.hsmSingleTenantProposer) -
Aprobar propuestas:
Miembro del quórum de HSM de usuario único de Cloud KMS (
cloudkms.hsmSingleTenantQuorumMember) -
Ejecutar propuestas:
Ejecutor de HSM de usuario único de Cloud KMS (
cloudkms.hsmSingleTenantExecutor) -
Crear claves:
Creador de claves de HSM de usuario único de Cloud KMS (
roles/cloudkms.hsmSingleTenantKeyCreator)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
-
Crear propuestas:
Proponente de HSM de usuario único de Cloud KMS (
Para cada miembro del quórum, genera un par de claves RSA-2048 para la autenticación de dos factores (2FA). Te recomendamos que uses tokens físicos para tus llaves de control. Sigue los estándares de tu organización para crear pares de claves RSA-2048 en tokens físicos.
A modo de demostración, esta guía usa OpenSSL para crear tres claves RSA-2048 respaldadas por software:
openssl genrsa -out rsaprivate1.pem openssl genrsa -out rsaprivate2.pem openssl genrsa -out rsaprivate3.pem openssl rsa -in rsaprivate1.pem -out rsapub1.pem --pubout openssl rsa -in rsaprivate2.pem -out rsapub2.pem --pubout openssl rsa -in rsaprivate3.pem -out rsapub3.pem --puboutAlmacena las claves privadas de forma segura, ya que las necesitarás para aprobar propuestas. Ten a mano las claves públicas, ya que las necesitarás para crear la instancia de Cloud HSM de usuario único.
Elige una ubicación de Cloud KMS que admita HSM de usuario único de Cloud. Para identificar las ubicaciones compatibles, consulta la lista de ubicaciones en la página Ubicaciones de Cloud KMS. En el filtro Compatibilidad con HSM, selecciona Admite HSM de usuario único.
Crea y aprovisiona una instancia
Para crear y aprovisionar una instancia de Cloud HSM de usuario único, usa gcloud CLI para crear el recurso de instancia, crear una propuesta para registrar tus claves de autenticación y, luego, aprobar y ejecutar la propuesta.
Crea la instancia
Un administrador de instancias con el rol de Proponente de HSM de usuario único de Cloud KMS debe completar este paso.
Configura tu proyecto predeterminado.
gcloud config set project PROJECT_IDReemplaza PROJECT_ID por el identificador de tu proyecto.
Crea la instancia de Cloud HSM de usuario único.
gcloud kms single-tenant-hsm create --location=LOCATION \ --total-approver-count=QUORUM_MEMBER_COUNT \ --single-tenant-hsm-instance-id=INSTANCE_IDReemplaza lo siguiente:
LOCATION: Es la ubicación en la que deseas crear tu instancia, por ejemplo,us-central1.QUORUM_MEMBER_COUNT: Es la cantidad total de miembros del quórum. Esta también es la cantidad de claves de control que creaste anteriormente. El valor mínimo es3. Se pueden agregar claves adicionales más adelante con la aprobación del quórum. Debes tener al menos un miembro del quórum más que el tamaño del quórum requerido para recuperarte después de perder una clave de control.INSTANCE_ID: Es el identificador que deseas usar para la instancia, por ejemplo,example-sthsm-instance. Puedes omitir la marca--single-tenant-hsm-instance-idpara que Cloud HSM asigne un UUID.
Verifica el estado de la instancia.
gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONReemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.LOCATION: Es la ubicación en la que creaste la instancia.
Si el estado es
PENDING_TWO_FACTOR_AUTH_REGISTRATION, puedes aprovisionar la instancia. Por lo general, se tarda entre 5 y 30 minutos en alcanzar este estado.
Aprovisiona la instancia
-
Crea una propuesta para registrar tus claves de autenticación de dos factores con la operación
register_2fa_keys. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS. A diferencia de la mayoría de las propuestas, la propuesta register_2fa_keys requiere desafíos firmados de todos los miembros del quórum.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --location LOCATION \ --operation-type register_2fa_keys \ --required-approver-count MEMBERS_REQUIRED_FOR_APPROVAL \ --two-factor-public-key-pems=PUBLIC_KEY_LIST
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador único que deseas usar para esta propuesta, por ejemplo,set-up-2fa.LOCATION: Es la ubicación en la que creaste la instancia.MEMBERS_REQUIRED_FOR_APPROVAL: Es la cantidad de miembros del quórum que deben aprobar una propuesta antes de que se pueda ejecutar la operación. El valor mínimo es2. Este valor no se puede cambiar después de que se aprovisiona la instancia. Los miembros del quórum siempre deben tener acceso a al menos esta cantidad de claves de control para conservar el control administrativo de la instancia.PUBLIC_KEY_LIST: Es una lista separada por comas de las rutas a las partes de clave pública de todas tus claves de control, por ejemplo,rsapub1.pem,rsapub2.pem,rsapub3.pem. La cantidad de claves públicas en esta lista debe coincidir con el valor deQUORUM_MEMBER_COUNTque usaste anteriormente.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,set-up-2fa.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta. El aprovisionamiento de una nueva instancia de HSM de Cloud de usuario único requiere desafíos firmados de todos los miembros del quórum.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada clave, decodifica el desafío con `basenc --base64url -d` y fírmalo con la clave privada correspondiente.
echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Una vez que se apruebe la propuesta, usa el comando
executepara completar la operaciónregister_2fa_keys. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Esta es una operación de larga duración que aprovisiona usuarios y crea copias de seguridad. La instancia se convierte en
ACTIVEdespués de 20 a 30 minutos. Después de que la instancia esté
ACTIVE, consulta los detalles de la instancia para ver eldisableDate:gcloud kms single-tenant-hsm describe INSTANCE_ID \ --location=LOCATIONAnota la
disableDatede la instancia. Debes completar una operación derefresh_sthiantes de esta hora o se inhabilitará tu instancia.
Ver instancias
Los usuarios con cualquiera de los siguientes roles pueden ver una lista de las instancias de Cloud HSM de usuario único y sus estados:
- Proponente de HSM de usuario único de Cloud KMS
- Miembro del quórum de HSM de usuario único de Cloud KMS
- Ejecutor de HSM de usuario único de Cloud KMS
- Visualizador de Cloud KMS
- Administrador de Cloud KMS
Asegúrate de revisar el estado de tus instancias con regularidad. Las instancias deben actualizarse con regularidad para permanecer Activas.
Se pueden usar las instancias en el estado Activo. Los desarrolladores que necesitan crear o importar claves en instancias de Cloud HSM de usuario único necesitan el identificador de recurso de la instancia. El identificador del recurso usa el siguiente formato:
projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME
Para ver las instancias de tu organización y encontrar sus identificadores de recursos, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Infraestructura de KMS.
En la tarjeta Instancia de HSM de usuario único, haz clic en Ver. En la página Instancia de HSM de usuario único, se muestra una lista de todas las instancias de HSM de usuario único de Cloud que tienes permiso para ver.
Para ver los detalles de una instancia, haz clic en su nombre. En la página Detalles de la instancia de HSM de usuario único, se muestran los detalles de la instancia seleccionada, incluido el identificador de recurso completo de la instancia y una lista de las propuestas creadas para la instancia.
Opcional: Para ver o descargar las claves públicas asociadas con las claves actuales de autenticación de dos factores (2FA) de los miembros del quórum, haz clic en Obtener clave pública. Puedes comparar las claves públicas con tus claves privadas de A2F para verificar qué claves de control están activas.
gcloud
Consulta una lista de las instancias existentes con el método kms single-tenant-hsm list.
gcloud kms single-tenant-hsm list --location=LOCATION
Reemplaza LOCATION por la ubicación en la que deseas ver las instancias de Cloud HSM de un solo inquilino.
Consulta los detalles de una instancia existente con el método kms single-tenant-hsm describe.
gcloud kms single-tenant-hsm describe INSTANCE_ID \
--location=LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es la instancia de la que deseas ver los detalles.LOCATION: Es la ubicación en la que deseas ver las instancias de HSM de Cloud de un solo arrendatario.
Cómo usar la instancia
Mientras tu instancia está en ACTIVE, puedes crear y usar claves. Puedes crear claves de Cloud HSM de usuario único en cualquier llavero de claves que exista en la misma ubicación que una instancia activa de Cloud HSM de usuario único.
Para crear claves de Cloud HSM de usuario único, se requiere el rol de Creador de claves de HSM de usuario único de Cloud KMS, además del rol de Administrador de Cloud KMS.
Después de crearlas, el uso de claves de Cloud HSM de usuario único no requiere permisos especiales.
Crear una clave
Cuando creas una clave de Cloud HSM de usuario único, debes especificar la instancia de Cloud HSM de usuario único en la que deseas crearla. De lo contrario, el proceso es similar al de crear cualquier otra clave. Para obtener instrucciones detalladas, consulta Crea una clave.
Importa una clave
Cuando importas material de clave a una clave de Cloud HSM de usuario único, debes especificar la instancia de Cloud HSM de usuario único en la que deseas almacenarlo. De lo contrario, el proceso es similar al de importar cualquier otra clave. Para obtener instrucciones detalladas, consulta Importa una versión de clave a Cloud Key Management Service.
Cómo usar una llave
Después de crear la clave, usar una clave de Cloud HSM de usuario único es idéntico a usar cualquier otra clave de Cloud HSM. No es necesario que especifiques la instancia de HSM de usuario único de Cloud para usar la clave.
Portabilidad de la llave
La portabilidad de claves te permite administrar tus propias claves de unión en instancias de Cloud HSM de usuario único. Esta capacidad te permite importar y exportar otras claves (denominadas claves de unión) uniéndolas con tu clave de unión personalizada. La portabilidad de claves es útil para la interoperabilidad de claves entre diferentes proveedores de servicios en la nube o entre diferentes regiones de Google Cloud.
Todas las operaciones de portabilidad de claves requieren que las claves se creen y almacenen en instancias de Cloud HSM de un solo arrendatario. RFC 5649 es el único algoritmo admitido para el envoltorio de claves.
Para usar la portabilidad de claves, debes completar los siguientes pasos:
- Configura una clave de unión de confianza.
- Crea o importa una clave que se pueda unir.
- Usa la clave de unión de confianza para importar material de claves unido previamente o exportar una clave que se pueda unir.
Configura una clave de unión de confianza
Una clave de unión de confianza es una clave AES que se usa para unir y desunir otras claves para la importación o exportación, según se define en el RFC 5649. Para configurar una clave de wrapping de confianza en una instancia de Cloud HSM de usuario único, debes importar la clave como una clave de solo importación con el propósito AES_WRAPPING y, luego, promoverla a de confianza.
La promoción de la clave requiere la aprobación de un solo miembro del quórum.
-
Crea un recurso de clave de solo importación con el propósito
AES_WRAPPING:gcloud kms keys create KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose AES_WRAPPING \ --protection-level HSM_SINGLE_TENANT \ --skip-initial-version-creation \ --import-only \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Reemplaza lo siguiente:
KEY_NAME: Es el identificador de la clave de wrapping de confianza.LOCATION: Es la región en la que se encuentran el llavero de claves y la instancia de HSM de Cloud de un solo inquilino.KEY_RING: Es el llavero de claves en el que deseas crear la clave.INSTANCE_PROJECT: Es el identificador del proyecto que contiene la instancia de HSM de Cloud de un solo arrendatario.INSTANCE_NAME: Es el identificador de la instancia de Cloud HSM de usuario único.
-
Crea un trabajo de importación para importar el material de clave:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANT
Reemplaza lo siguiente:
IMPORT_JOB_NAME: Es el identificador del trabajo de importación.IMPORT_METHOD: Es el método de importación del material de la clave de ajuste, por ejemplo,rsa-oaep-4096-sha256-aes-256.
-
Importa el material de clave AES sin procesar.
gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key KEY_NAME \ --algorithm aes-256-kwp \ --target-key-file TRUSTED_KEY_PATH
Reemplaza
TRUSTED_KEY_PATHpor la ruta de acceso al archivo que contiene los bytes sin procesar de la clave de wrapping de confianza. -
Crea una propuesta para promover la clave de wrapping a confiable. El tipo de operación es
upgrade_key_trust. Las operaciones de promoción deben estar firmadas y aprobadas por el mismo miembro del quórum que las inició.gcloud kms single-tenant-hsm proposal create INSTANCE_NAME \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type upgrade_key_trust \ --keyring KEY_RING \ --key KEY_NAME \ --two-factor-login-key PATH_TO_PUBLIC_KEY
Reemplaza lo siguiente:
PROPOSAL_ID: Es un identificador único para esta propuesta.PATH_TO_PUBLIC_KEY: Es la ruta de acceso a la clave pública del miembro del quórum que inicia y firma la propuesta.
-
Consulta el estado de la propuesta y espera hasta que cambie a
PENDING:gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Cuando el estado es
PENDING, puedes firmar el desafío. -
Obtén el desafío de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges)"
Este comando devuelve un array con formato JSON que contiene el desafío.
-
Decodifica el desafío con
basenc --base64url -dy, luego, fírmalo. El desafío debe estar firmado con la clave privada que coincida con la clave pública que se proporcionó cuando se creó la propuesta.echo CHALLENGE | basenc --base64url -d > decoded-challenge.txt openssl dgst -sign PRIVATE_KEY_PATH -out signed-challenge.txt decoded-challenge.txt
Reemplaza lo siguiente:
CHALLENGE: Es el contenido del desafío que se muestra en el resultado del paso anterior.PRIVATE_KEY_PATH: Es la ruta de acceso a la clave privada del miembro del quórum que creó la propuesta.
-
Sube el desafío firmado para aprobar la propuesta. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_NAME \ --required-challenge-replies="[('signed-challenge.txt','PUBLIC_KEY_PATH')]"
Reemplaza
PUBLIC_KEY_PATHpor la ruta de acceso a la clave pública del miembro del quórum que creó la propuesta.Después de subir el desafío firmado, el estado de la propuesta se actualizará a
APPROVED. -
Después de que se apruebe la propuesta, ejecútala para completar la promoción:
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_NAME \ --location LOCATION
Después de que se ejecute la propuesta, la clave se promoverá a una clave de unión de confianza y se podrá usar para importar o exportar otras claves en la instancia de Cloud HSM de usuario único.
Administra las llaves envolventes
Una clave apta para unión es una clave criptográfica designada para la importación o exportación segura con una clave de unión de confianza. Debes configurar una clave para que se pueda envolver cuando se cree el recurso de clave. No podrás modificar este parámetro de configuración más adelante.
Crea una clave nueva que se pueda unir
Para crear una clave nueva que se pueda encapsular, usa la marca --hsm-trusted-wrapping:
gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
Reemplaza lo siguiente:
WRAPPABLE_KEY_NAME: Es el nombre de la nueva clave que se puede unir.PURPOSE: Es el propósito de la clave, por ejemplo,raw-encryption. Las claves importadas no pueden usar el propósito de claveENCRYPT_DECRYPT.
Importa una clave que se pueda unir
Puedes usar un trabajo de importación para importar material de clave existente que desees poder exportar en el futuro. Para ello, debes incluir la marca hsm-trusted-wrapping cuando crees la clave y cuando importes la versión de la clave.
Crea un recurso de clave con la marca
--hsm-trusted-wrapping:gcloud kms keys create WRAPPABLE_KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --purpose PURPOSE \ --protection-level HSM_SINGLE_TENANT \ --hsm-trusted-wrapping \ --skip-initial-version-creation \ --crypto-key-backend "projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"Sigue estos pasos para crear un trabajo de importación:
gcloud kms import-jobs create IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --import-method IMPORT_METHOD \ --protection-level HSM_SINGLE_TENANTImporta la versión de clave con la marca
--hsm-trusted-wrapping:gcloud kms keys versions import \ --import-job IMPORT_JOB_NAME \ --location LOCATION \ --keyring KEY_RING \ --key WRAPPABLE_KEY_NAME \ --algorithm ALGORITHM \ --target-key-file UNWRAPPED_KEY_TO_IMPORT \ --hsm-trusted-wrappingReemplaza lo siguiente:
KEY_ALGORITHM: Es el algoritmo de la clave que importas.UNWRAPPED_KEY_TO_IMPORT: Es la ruta de acceso al material de clave sin procesar (sin envolver).
Usa claves de confianza para la importación y exportación
Después de configurar una clave de unión de confianza, puedes usarla para importar material de claves unido previamente a una clave que se pueda unir o exportar una clave que se pueda unir.
Importa una versión de clave unida previamente con una clave de confianza
Puedes importar material de claves unido de forma local con tu copia de una clave de unión de confianza sin usar un trabajo de importación.
- Asegúrate de haber creado el recurso de clave adaptable de destino con la marca
--hsm-trusted-wrappingy la opción--import-only. Consulta la sección Crea una nueva clave de empaquetado. Importa la versión de clave unida previamente:
gcloud kms keys versions import-trusted-key-wrapped \ --location LOCATION \ --target-keyring KEY_RING \ --target-key TARGET_KEY_NAME \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-algorithm ALGORITHM \ --wrapped-key-file PATH_TO_WRAPPED_KEYReemplaza lo siguiente:
TARGET_KEY_NAME: Es el nombre del recurso de clave adaptable en el que se importará el material de la clave.TRUSTED_KEY_RING: Es el llavero de claves de la clave de wrapping de confianza.TRUSTED_KEY_NAME: Es el nombre de la clave de wrapping de confianza promocionada.ALGORITHM: Es el algoritmo de la clave de destino. Los valores admitidos son todos los algoritmos de Cloud Key Management Service, exceptoGOOGLE_SYMMETRIC_ENCRYPTION.PATH_TO_WRAPPED_KEY: Es la ruta de acceso al archivo que contiene el material de la clave envuelto con la clave de envoltorio de confianza.
Exporta una clave que se pueda unir uniéndola con una clave de confianza
Puedes unir una clave existente que se pueda unir con una clave de unión de confianza y guardar el material de claves unido resultante en un archivo.
gcloud kms keys versions export-trusted-key-wrapped \ --location LOCATION \ --trusted-keyring TRUSTED_KEY_RING \ --trusted-key TRUSTED_KEY_NAME \ --target-keyring TARGET_KEY_RING \ --target-key TARGET_KEY_NAME \ --wrapped-key-file PATH_TO_OUTPUT_WRAPPED_KEY
Reemplaza lo siguiente:
TRUSTED_KEY_RING: Es el llavero de claves de la clave de wrapping de confianza.TRUSTED_KEY_NAME: Es el nombre de la clave de wrapping de confianza promocionada.TARGET_KEY_RING: Es el llavero de claves de la clave exportada que se puede ajustar.TARGET_KEY_NAME: Es el nombre de la clave adaptable que se exporta.PATH_TO_OUTPUT_WRAPPED_KEY: Es la ruta de acceso en la que se guardará el material de claves protegido.
Cómo mantener una instancia
Después de que se aprovisione tu instancia, serás responsable de mantenerla. Para mantener la instancia, debes crear propuestas de operaciones de mantenimiento, obtener la aprobación del quórum y, luego, ejecutar la operación aprobada. Solo puede haber una propuesta activa a la vez. Si decides no seguir adelante con una propuesta, no podrás proponer otra operación hasta que borres la propuesta activa o hasta que venza.
Debes actualizar tu instancia antes del disableDate. Si necesitas verificar el disableDate de una instancia, puedes ver los detalles de la instancia.
Cómo ver propuestas de instancias
Para ver las propuestas de una instancia, sigue estos pasos:
Console
En la consola de Google Cloud , ve a la página Infraestructura de KMS.
En la tarjeta Instancia de HSM de usuario único, haz clic en Ver. En la página Instancia de HSM de usuario único, se muestra una lista de todas las instancias de HSM de usuario único de Cloud que tienes permiso para ver.
Ubica la instancia en la que deseas ver las propuestas y, luego, haz clic en su nombre. En la página Detalles de la instancia de HSM de usuario único, se muestran los detalles de la instancia, incluida una lista de las propuestas creadas para ella.
Opcional: Para filtrar la lista de propuestas, haz clic en la barra de Filtro y, luego, ingresa tus criterios de filtrado. Por ejemplo, puedes filtrar la lista para ver solo la propuesta que está pendiente de aprobación o solo las propuestas que se completaron correctamente.
gcloud
-
Consulta una lista de las propuestas existentes con el método
kms single-tenant-hsm proposal list.gcloud kms single-tenant-hsm proposal list INSTANCE_ID \ --location=LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia de HSM de usuario único de Cloud que deseas ver las propuestas.LOCATION: Es la ubicación en la que deseas ver las instancias de HSM de Cloud de un solo arrendatario.
Actualiza una instancia
Puedes actualizar una instancia para mantenerla actualizada y ayudar a evitar el tiempo de inactividad no planificado. Esta operación requiere autenticación de quórum. Una vez que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
Cuando actualizas una instancia, el valor de disableDate se establece en 730 días a partir del momento de la actualización.
-
Crea una propuesta para actualizar la instancia con el tipo de operación
refresh_sthi. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type refresh_sthi
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,refresh_instance.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,refresh_instance.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se completa la operación, la instancia permanece en el estado "ACTIVE" y
disableDatese establece en 730 días a partir del momento de la actualización.
Cómo agregar un miembro del quórum
Puedes agregar un miembro del quórum a una instancia. Esta operación requiere autenticación de quórum. Una vez que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
Genera un nuevo par de claves RSA-2048 para el nuevo miembro del quórum. Sigue los estándares de tu organización para crear pares de claves RSA-2048 en tokens físicos.
Almacena la clave privada de forma segura, ya que la necesitarás para aprobar propuestas. Ten a mano la clave pública, ya que la necesitarás para agregar el nuevo miembro del quórum a la instancia de HSM de un solo usuario de Cloud.
-
Crea una propuesta para agregar un miembro del quórum a la instancia con la operación
add_quorum_member. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type add_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,add_quorum_member.PATH_TO_PUBLIC_KEY: Es la ruta de acceso a la nueva clave pública, por ejemplo,rsapub4.pem.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,add_quorum_member.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta. Para agregar un nuevo miembro del quórum, se requieren desafíos firmados de un quórum de miembros existentes y un desafío firmado del nuevo miembro con la clave nueva.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](requiredActionQuorumParameters.requiredChallenges,requiredActionQuorumParameters.quorumChallenges)"
Este comando devuelve un array de desafíos con formato JSON. El campo
requiredActionQuorumParameters.requiredChallengescontiene un desafío para la clave nueva que estás registrando. El camporequiredActionQuorumParameters.quorumChallengescontiene desafíos para un quórum de las claves existentes. Debes firmar todos los desafíos en el objetorequiredActionQuorumParameters. -
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST" \ --required-challenge-replies="SIGNED_REQUIRED_CHALLENGE_LIST"
Reemplaza lo siguiente:
SIGNED_QUORUM_CHALLENGE_LIST: Es un array con formato JSON de desafíos firmados con claves privadas que ya están registradas, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente (por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando).SIGNED_REQUIRED_CHALLENGE_LIST: Es un array con formato JSON que contiene el desafío firmado con la nueva clave privada, en el que el único elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente (por ejemplo,[('signed-challenge-newkey.txt','rsapub-newkey.pem')]).
Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se complete la operación, el nuevo miembro del quórum podrá participar en los desafíos para aprobar propuestas. La clave pública que agregaste ahora se incluye en la lista de claves públicas en los detalles de la instancia.
Cómo quitar un miembro del quórum
Si tienes más miembros del quórum de los que necesitas, puedes quitar un miembro del quórum de una instancia. Esta operación requiere autenticación de quórum. Después de que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
-
Crea una propuesta para quitar un miembro del quórum de la instancia con la operación
remove_quorum_member. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type remove_quorum_member \ --two_factor_public_key_pem PATH_TO_PUBLIC_KEY
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,remove_quorum_member.PATH_TO_PUBLIC_KEY: Es la ruta de acceso a la clave pública que deseas quitar de la instancia, por ejemplo,rsapub3.pem. Una vez que se completa la operación, no se puede usar la clave privada correspondiente para aprobar propuestas.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,remove_quorum_member.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se completa la operación, el miembro del quórum quitado ya no puede participar en los desafíos para aprobar propuestas. La clave pública que quitaste ya no se incluye en la lista de claves públicas en los detalles de la instancia.
Inhabilita una instancia
Puedes inhabilitar una instancia para bloquear temporalmente el acceso a todas sus claves. Esta operación requiere autenticación de quórum. Una vez que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
Mientras una instancia está inhabilitada, las claves almacenadas en ella siguen apareciendo como ACTIVE, pero no se pueden usar. Si intentas realizar operaciones criptográficas con una clave en una instancia inhabilitada, se producirá un error.
-
Crea una propuesta para inhabilitar la instancia con el tipo de operación
disable_sthi. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type disable_sthi
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,disable_instance.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,disable_instance.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se completa la operación, la instancia permanece en el estado
DISABLEDy no se puede usar hasta que se vuelva a habilitar.
Habilita una instancia
Puedes volver a habilitar una instancia de DISABLED para restablecer el acceso a ella y a sus claves.
Esta operación requiere autenticación de quórum. Una vez que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
-
Crea una propuesta para habilitar la instancia con el tipo de operación
enable_sthi. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type enable_sthi
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,enable_instance.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,enable_instance.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se completa la operación, la instancia vuelve al estado "ACTIVE" y
disableDatese establece en 730 días a partir del momento de la actualización.
Borrar una instancia
Puedes borrar una instancia para destruirla de forma permanente junto con sus claves. Esta operación requiere autenticación de quórum. Una vez que se aprueba la propuesta, la operación tarda entre 15 y 30 minutos en completarse.
Después de que se borra una instancia, las claves almacenadas en ella siguen apareciendo como ACTIVE, pero no se pueden usar. Si intentas realizar operaciones criptográficas con una clave en una instancia borrada, se producirá un error.
-
Crea una propuesta para borrar la instancia con el tipo de operación
delete_sthi. Este paso requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal create INSTANCE_ID \ --location LOCATION \ --single-tenant-hsm-instance-proposal-id PROPOSAL_ID \ --operation-type delete_sthi
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia que deseas borrar.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único que deseas usar para esta propuesta, por ejemplo,delete_instance.
-
Consulta el estado de la propuesta y espera a que cambie a
PENDING.gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de tu instancia.PROPOSAL_IDes el identificador de la propuesta, por ejemplo,delete_instance.LOCATION: Es la ubicación en la que creaste la instancia.
Cuando el estado es
PENDING, puedes firmar los desafíos. -
Obtén los desafíos de la propuesta.
gcloud kms single-tenant-hsm proposal describe PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID \ --location LOCATION \ --format="json[](quorumParameters.challenges)"
Este comando devuelve un array de desafíos con formato JSON.
-
Para cada desafío que se devolvió en el paso anterior, decodifícalo con
basenc --base64url -dy fírmalo con una clave privada.echo CHALLENGE_N | basenc --base64url -d > decoded-challenge-N.txt openssl dgst -sign PRIVATE_KEY_N -out signed-challenge-N.txt decoded-challenge-N.txt
Reemplaza lo siguiente:
N: Es el número del desafío, por ejemplo,1para el primer desafío,2para el segundo y así sucesivamente.CHALLENGE_N: Es el contenido del desafío númeroNdel resultado del paso anterior.PRIVATE_KEY_N: Es la ruta de acceso al número de clave privadaN, por ejemplo,rsaprivate1.pempara el primer desafío.
-
Sube los desafíos firmados para aprobar la propuesta. Puedes subirlos con un solo comando o con varios. Este paso requiere el rol de miembro del quórum de HSM de usuario único de Cloud KMS.
gcloud kms single-tenant-hsm proposal approve PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID \ --quorum-challenge-replies="SIGNED_QUORUM_CHALLENGE_LIST"
Reemplaza
SIGNED_QUORUM_CHALLENGE_LISTpor un array con formato JSON de desafíos, en el que cada elemento de la lista es una tupla que contiene la ruta de acceso al desafío firmado y la ruta de acceso a la clave pública correspondiente; por ejemplo,[('signed-challenge-1.txt','rsapub1.pem'), ('signed-challenge-2.txt','rsapub2.pem')]para enviar los dos primeros desafíos firmados en un solo comando.Después de que subas la cantidad requerida de desafíos firmados, el estado de la propuesta se actualizará a
APPROVED. -
Asegúrate de que deseas continuar con el borrado de la instancia y la destrucción criptográfica de todos los datos encriptados con las claves creadas en esta instancia, y, luego, ejecuta la propuesta. Este paso requiere el rol de ejecutor de HSM de usuario único de Cloud KMS y debe completarse en un plazo de 24 horas después de que se creó la propuesta.
Advertencia: El siguiente comando es irreversible. Se puede producir una pérdida permanente de datos. Google no puede ayudarte a recuperar las claves de una instancia borrada.gcloud kms single-tenant-hsm proposal execute PROPOSAL_ID \ --single_tenant_hsm_instance INSTANCE_ID --location LOCATION
Una vez que se completa la operación, se borra la instancia.
Cómo borrar una propuesta
Si decides no aprobar ni ejecutar una propuesta, puedes borrarla antes de que venza. Si borras una propuesta pendiente, no podrás aprobarla y podrás crear una nueva. Si borras una propuesta aprobada, no podrás ejecutar la operación.
-
Borra una propuesta con el comando
proposal delete. Esto requiere el rol de Proponente de HSM de usuario único de Cloud KMS.gcloud kms single-tenant-hsm proposal delete PROPOSAL_ID \ --location LOCATION \ --single_tenant_hsm_instance INSTANCE_ID
Reemplaza lo siguiente:
INSTANCE_ID: Es el identificador de la instancia.LOCATION: Es la ubicación en la que creaste la instancia.PROPOSAL_ID: Es el identificador único de la propuesta que deseas borrar, por ejemplo,proposal_to_delete.
¿Qué sigue?
- Obtén más información sobre Cloud HSM de usuario único.