Configurar Justificaciones de acceso a claves con Cloud KMS y Cloud HSM
En esta página se describe cómo configurar Justificaciones de acceso a claves con Cloud KMS o Cloud HSM para la frontera de datos de Japón de Assured Workloads.
Durante los pasos para crear una carpeta de Assured Workloads para las regiones de Japón, tienes la opción de crear un proyecto y un conjunto de claves para tus claves criptográficas. Las claves de Cloud KMS y Cloud HSM se pueden añadir a este conjunto de claves. También puedes configurar una política de justificaciones de acceso a claves para controlar el acceso a cada clave.
Antes de empezar
- La posibilidad de usar Justificaciones de Acceso a Claves con claves de Cloud KMS y Cloud HSM solo está disponible para el límite de datos de Japón en Assured Workloads.
- Asegúrate de que tu administrador te haya concedido uno de los roles de Gestión de Identidades y Accesos (IAM) necesarios para crear y gestionar tanto tus políticas de Justificaciones de Acceso a Claves como las claves de Cloud KMS y Cloud HSM.
Permisos de gestión de identidades y accesos necesarios
Para obtener los permisos que necesitas para crear y gestionar claves de Cloud KMS y Cloud HSM, así como sus políticas de justificación de acceso a claves, pide a tu administrador que te asigne el rol de gestión de identidades y accesos Administrador de Cloud KMS (roles/cloudkms.admin
) en el proyecto que contiene el conjunto de claves.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear y gestionar claves de Cloud KMS y Cloud HSM, así como sus políticas de justificación de acceso a claves. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Se necesitan los siguientes permisos para crear y gestionar claves de Cloud KMS y Cloud HSM, así como sus políticas de justificación de acceso a claves:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Configurar una clave con Justificaciones de Acceso a Claves
Para configurar Justificaciones de acceso a claves con una clave de Cloud KMS o Cloud HSM, puedes incluir la política de acceso a claves como parámetro al crear la clave o actualizar la clave con la política después de crearla.
Crear una clave y una política
Consola
En la Google Cloud consola, ve a la página Gestión de claves.
Haga clic en el nombre del conjunto de claves en el que quiera crear la clave.
Haz clic en Crear clave.
En Key name (Nombre de la clave), escribe el nombre de la clave.
En Nivel de protección, selecciona Software o HSM.
Sigue seleccionando los ajustes que necesites.
En Ajustes adicionales, selecciona Definir política de justificación de acceso a claves y, a continuación, Motivos de justificación permitidos.
En Motivos de justificación, selecciona Acceso iniciado por el cliente, Operación del sistema iniciada por Google y cualquier otro código de motivo que quieras permitir. Tanto el acceso iniciado por el cliente como la operación del sistema iniciada por Google son esenciales para el funcionamiento normal.
Haz clic en Crear.
REST
Crea una clave y una política con el método
cryptoKeys.create
:
POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME
En la solicitud, sustituye los siguientes valores de marcador de posición:
- PROJECT_ID: el ID del proyecto que contiene el llavero al que quieres añadir una clave. Por ejemplo,
919698201234
. - LOCATION: la ubicación del conjunto de claves. Por ejemplo,
asia-northeast1
. - KEY_RING: El nombre del conjunto de claves que especificaste al crear el proyecto de gestión de claves y el conjunto de claves de tu carpeta de Assured Workloads.
- KEY_NAME: el nombre de la clave HSM que quieras crear. Por ejemplo,
my-hsm-key
.
Cuerpo de la solicitud:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
En el cuerpo de la solicitud, sustituye los siguientes valores de marcador de posición:
- PURPOSE: el propósito de la clave. Para ver una lista de los distintos propósitos de las claves, consulta Propósitos de las claves. Por ejemplo,
ENCRYPT_DECRYPT
. - PROTECTION_LEVEL: nivel de protección de la clave (por ejemplo,
SOFTWARE
oHSM
). - ALGORITHM: algoritmo criptográfico que se va a usar. Para ver una lista de los algoritmos disponibles, consulta Algoritmos de Cloud KMS. Por ejemplo,
GOOGLE_SYMMETRIC_ENCRYPTION
. - ALLOWED_ACCESS_REASONS: política de justificaciones de acceso a claves que define cero o más códigos de justificación permitidos para acceder a la clave de cifrado (por ejemplo,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
).
En la siguiente solicitud de ejemplo y cuerpo de la solicitud se crea una clave de HSM en la nube que solo permite justificaciones de acceso por algunos motivos:
POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
Actualizar la política de una clave
Consola
En la Google Cloud consola, ve a la página Gestión de claves.
Haga clic en el nombre del conjunto de claves en el que ha creado la clave.
Haga clic en el nombre de la clave para la que quiera actualizar la política de justificaciones de acceso a claves.
Haz clic en Editar política de justificaciones de acceso a claves.
Elige una de estas opciones:
Para inhabilitar la política de justificaciones de acceso a claves en la clave, desmarca la casilla Definir política de justificaciones de acceso a claves.
Para cambiar los motivos de justificación permitidos, haz clic en el cuadro Motivos de justificación y selecciona o desmarca los códigos de motivo según sea necesario. Tanto el acceso iniciado por el cliente como la operación del sistema iniciada por Google son esenciales para que funcione correctamente.
Para rechazar todos los códigos de motivo, selecciona Rechazar todos los códigos de motivo (no recomendado). De esta forma, se evita que se use la clave aunque esté habilitada y el solicitante tenga los permisos necesarios.
Haz clic en Guardar.
REST
Para actualizar una clave de Cloud KMS, usa el método cryptoKeys.patch
:
PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy
En la solicitud, sustituye los siguientes valores de marcador de posición:
- PROJECT_ID: el ID del proyecto que contiene el conjunto de claves de la clave. Por ejemplo,
919698201234
. - LOCATION: la ubicación del conjunto de claves. Por ejemplo,
asia-northeast1
. - KEY_RING: El nombre del conjunto de claves que especificaste al crear el proyecto de gestión de claves y el conjunto de claves de tu carpeta de Assured Workloads.
- KEY_NAME: el nombre de la clave que quieras actualizar.
Cuerpo de la solicitud:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
En el cuerpo de la solicitud, sustituye los siguientes valores de marcador de posición:
- PURPOSE: el propósito de la clave. Para ver una lista de los distintos propósitos de las claves, consulta Propósitos de las claves. Por ejemplo,
ENCRYPT_DECRYPT
. - PROTECTION_LEVEL: nivel de protección de la clave (por ejemplo,
SOFTWARE
oHSM
). - ALGORITHM: algoritmo criptográfico que se va a usar. Para ver una lista de los algoritmos disponibles, consulta Algoritmos de Cloud KMS. Por ejemplo,
GOOGLE_SYMMETRIC_ENCRYPTION
. - ALLOWED_ACCESS_REASONS: política de justificaciones de acceso a claves que define cero o más códigos de justificación permitidos para acceder a la clave de cifrado (por ejemplo,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
).
En el siguiente ejemplo de solicitud y cuerpo de solicitud solo se permite el acceso a las justificaciones por algunos motivos:
PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
Obtener la política de Justificaciones de Acceso a Claves de una clave
REST
Para obtener metadatos sobre una clave de Cloud KMS, usa el método cryptoKeys.get
:
GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME
En los parámetros de la solicitud, sustituya los siguientes marcadores de posición por sus propios valores:
- PROJECT_ID: ID del proyecto que contiene el llavero de la clave. Por ejemplo,
919698201234
. - LOCATION: la ubicación del conjunto de claves. Por ejemplo,
asia-northeast1
. - KEY_RING: el nombre del conjunto de claves que especificaste al crear el proyecto de gestión de claves y el conjunto de claves de la carpeta de Assured Workloads. Por ejemplo,
my-key-ring
. - KEY_NAME: el nombre de la clave que quieres obtener.
En la siguiente solicitud de ejemplo se obtienen metadatos sobre una clave de Cloud KMS:
GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key
El cuerpo de la respuesta contiene metadatos sobre tu clave, incluido el keyAccessJustificationsPolicy
.
Por ejemplo:
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
Siguientes pasos
- También puedes definir la política predeterminada de justificaciones de acceso a claves (vista previa).