Permisos y funciones

Los KeyRings y CryptoKeys son recursos de Google Cloud Platform y se les pueden configurar políticas de IAM como a cualquier otro recurso. Las políticas de IAM no se pueden configurar en CryptoKeyVersions individuales. Consulta Cómo usar IAM con Cloud KMS para ver ejemplos de configuración de políticas.

Permisos necesarios

En las siguientes tablas, se enumeran los permisos que debe tener el emisor para llamar a cada método:

Método Permisos necesarios
locations.list Ninguno
locations.get Ninguno
locations.keyRings.list cloudkms.keyRings.list en el proyecto de Cloud que lo contiene
locations.keyRings.get cloudkms.keyRings.get para el KeyRing solicitado
locations.keyRings.create cloudkms.keyRings.create en el proyecto de Cloud que lo contiene
locations.keyRings.getIamPolicy cloudkms.keyRings.getIamPolicy para el KeyRing solicitado
locations.keyRings.setIamPolicy cloudkms.keyRings.setIamPolicy para el KeyRing solicitado
locations.keyRings.testIamPermissions Ninguno
locations.keyRings.cryptoKeys.list cloudkms.cryptoKeys.list para el KeyRing solicitado
locations.keyRings.cryptoKeys.get cloudkms.cryptoKeys.get para la CryptoKey solicitada
locations.keyRings.cryptoKeys.create cloudkms.cryptoKeys.create para el KeyRing que la contiene
locations.keyRings.cryptoKeys.encrypt cloudkms.cryptoKeyVersions.useToEncrypt para la CryptoKey solicitada
locations.keyRings.cryptoKeys.decrypt cloudkms.cryptoKeyVersions.useToDecrypt para la CryptoKey solicitada
locations.keyRings.cryptoKeys.patch cloudkms.cryptoKeys.update para la CryptoKey solicitada
locations.keyRings.cryptoKeys.updatePrimaryVersion cloudkms.cryptoKeys.update para la CryptoKey solicitada
locations.keyRings.cryptoKeys.getIamPolicy cloudkms.cryptoKeys.getIamPolicy para la CryptoKey solicitada
locations.keyRings.cryptoKeys.setIamPolicy cloudkms.cryptoKeys.setIamPolicy para la CryptoKey solicitada
locations.keyRings.cryptoKeys.testIamPermissions Ninguno
locations.keyRings.cryptoKeys.cryptoKeyVersions.list cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.get cloudkms.cryptoKeyVersions.get para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.create cloudkms.cryptoKeyVersions.create para la CryptoKey que la contiene
locations.keyRings.cryptoKeys.cryptoKeyVersions.patch cloudkms.cryptoKeyVersions.update para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.destroy cloudkms.cryptoKeyVersions.destroy para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.restore cloudkms.cryptoKeyVersions.restore para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricDecrypt (versión Beta) cloudkms.cryptoKeyVersions.useToDecrypt para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.asymmetricSign (versión Beta) cloudkms.cryptoKeyVersions.useToSign para la CryptoKeyVersion solicitada
locations.keyRings.cryptoKeys.cryptoKeyVersions.getPublicKey (versión Beta) cloudkms.cryptoKeyVersions.viewPublicKey para la CryptoKeyVersion solicitada

Funciones predefinidas

La siguiente tabla contiene las funciones predefinidas de IAM en Cloud Key Management Service junto con una lista correspondiente de todos los permisos de cada función. Ten en cuenta que cada permiso corresponde a un tipo de recurso específico.

Las funcionalidades básicas de Propietario, Editor y Lector están disponibles para las claves, además de las funciones predefinidas de Administrador, Encriptador/desencriptador, Encriptador y Desencriptador específicas de Cloud KMS.

Las funciones predefinidas permiten separar los deberes cuando resulta necesario. La función de Administrador está pensada para que los usuarios administren claves, no para que las usen, mientras que las funciones de Encriptador y Desencriptador están diseñadas para los servicios que pueden usar claves para encriptar y desencriptar datos, pero no administrarlas.

Función Permisos incluidos: Para el tipo de recurso:
roles/cloudkms.admin
cloudkms.keyRings.setIamPolicy KeyRing
cloudkms.cryptoKeys.setIamPolicy CryptoKey
cloudkms.keyRings.create KeyRing
cloudkms.cryptoKeys.create CryptoKey
cloudkms.cryptoKeyVersions.create CryptoKeyVersion
cloudkms.cryptoKeys.update CryptoKey
cloudkms.cryptoKeyVersions.update CryptoKeyVersion
cloudkms.cryptoKeyVersions.destroy CryptoKeyVersion
cloudkms.cryptoKeyVersions.restore CryptoKeyVersion
cloudkms.keyRings.list KeyRing
cloudkms.cryptoKeys.list CryptoKey
cloudkms.cryptoKeyVersions.list CryptoKeyVersion
cloudkms.keyRings.get KeyRing
cloudkms.cryptoKeys.get CryptoKey
cloudkms.cryptoKeyVersions.get CryptoKeyVersion
cloudkms.keyRings.getIamPolicy KeyRing
cloudkms.cryptoKeys.getIamPolicy CryptoKey
roles/cloudkms.cryptoKeyEncrypterDecrypter
cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
roles/cloudkms.cryptoKeyEncrypter cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
roles/cloudkms.cryptoKeyDecrypter cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
roles/cloudkms.publicKeyViewer (versión Beta)
cloudkms.cryptoKeyVersions.viewPublicKey CryptoKeyVersion
roles/cloudkms.signer (versión Beta)
cloudkms.cryptoKeyVersions.useToSign CryptoKeyVersion
roles/cloudkms.signerVerifier (versión Beta)
cloudkms.cryptoKeyVersions.useToSign CryptoKeyVersion
cloudkms.cryptoKeyVersions.viewPublicKey CryptoKeyVersion
roles/viewer
cloudkms.keyRings.list KeyRing
cloudkms.cryptoKeys.list CryptoKey
cloudkms.cryptoKeyVersions.list CryptoKeyVersion
cloudkms.keyRings.get KeyRing
cloudkms.cryptoKeys.get CryptoKey
cloudkms.cryptoKeyVersions.get CryptoKeyVersion
cloudkms.keyRings.getIamPolicy KeyRing
cloudkms.cryptoKeys.getIamPolicy CryptoKey
roles/editor
Todos los permisos de roles/viewer más los siguientes:
cloudkms.keyRings.create KeyRing
cloudkms.cryptoKeys.create CryptoKey
cloudkms.cryptoKeyVersions.create CryptoKeyVersion
cloudkms.cryptoKeys.update CryptoKey
cloudkms.cryptoKeyVersions.update CryptoKeyVersion
roles/owner
Todos los permisos de roles/editor más los siguientes:
cloudkms.cryptoKeyVersions.useToEncrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToDecrypt CryptoKeyVersion
cloudkms.cryptoKeyVersions.useToSign (versión Beta) CryptoKeyVersion
cloudkms.cryptoKeyVersions.viewPublicKey (versión Beta) CryptoKeyVersion
cloudkms.keyRings.setIamPolicy KeyRing
cloudkms.cryptoKeys.setIamPolicy CryptoKey
cloudkms.cryptoKeyVersions.destroy CryptoKeyVersion
cloudkms.cryptoKeyVersions.restore CryptoKeyVersion

Ten en cuenta que las funciones roles/owner, roles/editor y roles/viewer también incluyen permisos para otros servicios de Google Cloud Platform.

Funciones personalizadas

Cloud IAM también permite crear funciones personalizadas. Puedes crear una función personalizada de Cloud IAM con uno o más permisos y luego asignarla a los usuarios que conforman la organización. Estas funciones te permiten aplicar el principio del mínimo privilegio, a fin de garantizar que el usuario y las cuentas de servicio de tu organización solo tengan los permisos necesarios para ejercer las funciones previstas. Consulta Creación y administración de funciones personalizadas para obtener más información.

A fin de ayudarte a definir funciones personalizadas, en la siguiente tabla se indican los flujos de usuarios comunes y los permisos necesarios para realizar operaciones en Cloud KMS. La lista no es exhaustiva.

Flujo de usuarios Permisos necesarios
cuando se usa la API:
Permisos necesarios
cuando se usa GCP Console
(consulta la nota al pie 1):
Crear un KeyRing cloudkms.keyRings.create para el proyecto al que pertenece Los mismos permisos que se necesitan para la API
Crear una CryptoKey cloudkms.cryptoKeys.create para el KeyRing que la contiene Los permisos necesarios para la API más los siguientes:

cloudkms.keyRings.list para el proyecto al que pertenece

Crear una CryptoKeyVersion cloudkms.cryptoKeyVersions.create para la CryptoKey que la contiene Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Habilitar una CryptoKeyVersion cloudkms.cryptoKeyVersions.update para la CryptoKeyVersion solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Inhabilitar una CryptoKeyVersion cloudkms.cryptoKeyVersions.update para la CryptoKeyVersion solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Destruir una CryptoKeyVersion cloudkms.cryptoKeyVersions.destroy para la CryptoKeyVersion solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Restablecer una CryptoKeyVersion cloudkms.cryptoKeyVersions.restore para la CryptoKeyVersion solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Rotar manualmente una CryptoKey cloudkms.cryptoKeyVersions.create y cloudkms.cryptoKeys.update para la CryptoKey solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Configurar el período de rotación de una CryptoKey cloudkms.cryptoKeys.update para la CryptoKey solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Encriptar datos con una CryptoKey simétrica cloudkms.cryptoKeyVersions.useToEncrypt para la CryptoKey solicitada No disponible en GCP Console
Desencriptar datos con una CryptoKey simétrica cloudkms.cryptoKeyVersions.useToDecrypt para la CryptoKey solicitada No disponible en GCP Console
Crear una firma con una CryptoKey asimétrica (versión Beta) cloudkms.cryptoKeyVersions.useToSign para la CryptoKey solicitada No disponible en GCP Console
Desencriptar datos con una CryptoKey asimétrica versión Beta) cloudkms.cryptoKeyVersions.asymmetricDecrypt para la CryptoKey solicitada No disponible en GCP Console
Recuperar la porción pública de una CryptoKey asimétrica (versión Beta) cloudkms.cryptoKeyVersions.viewPublicKey para la CryptoKey solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.get para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.get para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Configurar los permisos en un KeyRing cloudkms.keyRings.setIamPolicy para el KeyRing solicitado Los permisos necesarios para la API más los siguientes:

cloudkms.keyRings.getIamPolicy para el KeyRing solicitado

Configurar los permisos en una CryptoKey cloudkms.cryptoKeys.setIamPolicy para la CryptoKey solicitada Los permisos necesarios para la API más los siguientes:

cloudkms.cryptoKeys.getIamPolicy para la CryptoKey solicitada

Ver los KeyRings de un proyecto con GCP Console N/A cloudkms.keyRings.list para el proyecto al que pertenece
Ver las CryptoKeys y los metadatos de un KeyRing con GCP Console N/A cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.get para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

Ver las CryptoKeyVersions y los metadatos de una CryptoKey con GCP Console N/A cloudkms.cryptoKeyVersions.list para la CryptoKey solicitada

cloudkms.cryptoKeys.get para la CryptoKey solicitada

cloudkms.cryptoKeys.list para el KeyRing solicitado

cloudkms.keyRings.get para el KeyRing solicitado

cloudkms.keyRings.list para el proyecto al que pertenece

1 Estos permisos son obligatorios para navegar por la IU hasta una página de recursos. Siempre y cuando un usuario cuente con los permisos suficientes para un recurso específico (como un KeyRing o una CryptoKey), también se puede proporcionar un vínculo directo a la página de ese recurso.

Cómo verificar permisos

A fin de probar sus permisos en cualquier KeyRing y CryptoKey de Cloud KMS, cualquier identidad puede ejecutar cloudkms.keyRings.testIamPermissions y cloudkms.cryptoKeys.testIamPermissions.

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud KMS