Configura Key Access Justifications con Cloud KMS y Cloud HSM
En esta página, se describe cómo configurar Key Access Justifications con Cloud KMS o Cloud HSM para el límite de datos de Japón de Assured Workloads.
Durante los pasos para crear una nueva carpeta de Assured Workloads para las regiones de Japón, tienes la opción de crear un proyecto nuevo y un llavero de claves para tus claves criptográficas. Se pueden agregar claves de Cloud KMS y Cloud HSM a este llavero de claves, y también puedes configurar una política de Key Access Justifications para controlar el acceso a cada clave.
Antes de comenzar
- La capacidad de usar Key Access Justifications 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 otorgado uno de los roles de Identity and Access Management (IAM) necesarios para crear y administrar tanto tus políticas de Key Access Justifications como las claves de Cloud KMS y Cloud HSM.
Permisos de IAM obligatorios
Para obtener los permisos que necesitas para crear y administrar claves de Cloud KMS y Cloud HSM, y sus políticas de Key Access Justifications,
pídele a tu administrador que te otorgue el rol de IAM
Administrador de Cloud KMS (roles/cloudkms.admin
)
en el proyecto que contiene el llavero de claves.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear y administrar claves de Cloud KMS y Cloud HSM, y sus políticas de Key Access Justifications. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y administrar claves de Cloud KMS y Cloud HSM, y sus políticas de Key Access Justifications:
-
cloudkms.cryptoKeys.create
-
cloudkms.cryptoKeys.update
-
cloudkms.cryptoKeys.get
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Configura una clave con Key Access Justifications
Para configurar Key Access Justifications con una clave de Cloud KMS o Cloud HSM, puedes incluir la política de acceso a la clave como un parámetro cuando crees la clave, o bien puedes actualizar la clave con la política después de que se haya creado.
Crea una clave y una política nuevas
Console
En la consola de Google Cloud , ve a la página Administración de claves.
Haz clic en el nombre del llavero de claves en el que deseas crear la clave.
Haz clic en Crear clave.
En Nombre de la clave, ingresa un nombre para la clave.
En Nivel de protección, selecciona Software o HSM.
Continúa seleccionando la configuración según sea necesario.
En Configuración adicional, selecciona Establecer política de justificación del acceso a la clave y, luego, Motivos de justificación permitidos.
En Justification reasons, selecciona Customer-initiated access, Google-initiated system operation y cualquier otro código de motivo que desees permitir. Tanto el acceso iniciado por el cliente como el funcionamiento del sistema iniciado por Google son esenciales para el funcionamiento normal.
Haz clic en Crear.
REST
Crea una clave y una política nuevas 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, reemplaza los siguientes valores de marcador de posición:
- PROJECT_ID: Es el ID del proyecto que contiene el llavero de claves en el que deseas agregar una clave, por ejemplo,
919698201234
. - LOCATION: Es la ubicación del llavero de claves, por ejemplo,
asia-northeast1
. - KEY_RING: Es el nombre del llavero de claves que especificaste cuando creaste el proyecto de administración de claves y el llavero de claves de la carpeta de Assured Workloads.
- KEY_NAME: Es el nombre de la clave del HSM que deseas 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, reemplaza los siguientes valores de marcador de posición:
- PURPOSE: Es el propósito de la clave. Para obtener una lista de los diferentes propósitos de clave, consulta Propósitos de clave, por ejemplo,
ENCRYPT_DECRYPT
. - PROTECTION_LEVEL: Es el nivel de protección de la clave, por ejemplo,
SOFTWARE
oHSM
. - ALGORITHM: Es el algoritmo criptográfico que se usará. Para obtener una lista de los algoritmos disponibles, consulta Algoritmos de Cloud KMS, por ejemplo,
GOOGLE_SYMMETRIC_ENCRYPTION
. - ALLOWED_ACCESS_REASONS: Es la política de Key Access Justifications que define cero o más códigos de justificación permitidos para acceder a la clave de encriptación, por ejemplo,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
.
En el siguiente ejemplo de solicitud y cuerpo de la solicitud, se crea una clave de Cloud HSM 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" ] } }
Actualiza la política de una clave existente
Console
En la consola de Google Cloud , ve a la página Administración de claves.
Haz clic en el nombre del llavero de claves en el que creaste la clave.
Haz clic en el nombre de la clave para la que deseas actualizar la política de Key Access Justifications.
Haz clic en Editar la política de Key Access Justifications.
Realiza una de las siguientes acciones:
Para inhabilitar la política de Key Access Justifications en la clave, desmarca la casilla de verificación Configurar la política de Key Access Justifications.
Para cambiar los motivos de justificación permitidos, haz clic en el cuadro Motivos de justificación y selecciona o anula la selección de los códigos de motivos según sea necesario. Tanto el acceso iniciado por el cliente como la operación del sistema iniciada por Google son esenciales para el funcionamiento normal.
Para rechazar todos los códigos de motivo, selecciona Denegar todos los códigos de motivo (no recomendado). Esto evita que se use la clave, incluso si está habilitada y el solicitante tiene los permisos necesarios.
Haz clic en Guardar.
REST
Actualiza una clave existente en Cloud KMS con 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, reemplaza los siguientes valores de marcador de posición:
- PROJECT_ID: Es el ID del proyecto que contiene el llavero de la clave, por ejemplo,
919698201234
. - LOCATION: Es la ubicación del llavero de claves, por ejemplo,
asia-northeast1
. - KEY_RING: Es el nombre del llavero de claves que especificaste cuando creaste el proyecto de administración de claves y el llavero de claves de la carpeta de Assured Workloads.
- KEY_NAME: Es el nombre de la clave que quieres actualizar.
Cuerpo de la solicitud:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
En el cuerpo de la solicitud, reemplaza los siguientes valores de marcador de posición:
- PURPOSE: Es el propósito de la clave. Para obtener una lista de los diferentes propósitos de clave, consulta Propósitos de clave, por ejemplo,
ENCRYPT_DECRYPT
. - PROTECTION_LEVEL: Es el nivel de protección de la clave, por ejemplo,
SOFTWARE
oHSM
. - ALGORITHM: Es el algoritmo criptográfico que se usará. Para obtener una lista de los algoritmos disponibles, consulta Algoritmos de Cloud KMS, por ejemplo,
GOOGLE_SYMMETRIC_ENCRYPTION
. - ALLOWED_ACCESS_REASONS: Es la política de Key Access Justifications que define cero o más códigos de justificación permitidos para acceder a la clave de encriptación, por ejemplo,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"]
.
En el siguiente ejemplo de solicitud y cuerpo de solicitud, solo se permiten justificaciones de acceso 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" ] } }
Obtén la política de Key Access Justifications para una clave
REST
Obtén metadatos sobre una clave existente en Cloud KMS con 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, reemplaza los siguientes valores de marcador de posición por los tuyos:
- PROJECT_ID: Es el ID del proyecto que contiene el llavero de la clave, por ejemplo,
919698201234
. - LOCATION: Es la ubicación del llavero de claves, por ejemplo,
asia-northeast1
. - KEY_RING: Es el nombre del llavero de claves que especificaste cuando creaste el proyecto de administración de claves y el llavero de claves de tu carpeta de Assured Workloads, por ejemplo,
my-key-ring
. - KEY_NAME: Es el nombre de la clave que deseas obtener.
En el siguiente ejemplo de solicitud, se obtienen metadatos sobre una clave en 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" ] } }