De forma predeterminada, Cloud Workstations usan una clave que es propiedad de Google y que administra Google para encriptar recursos de estaciones de trabajo, como VMs y discos persistentes, cuando los datos están en reposo. Si tienes requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen los datos, puedes usar claves de encriptación administradas por el cliente (CMEK) con Cloud Key Management Service (Cloud KMS).
Para obtener más información sobre las CMEK en general, incluso cuándo y por qué habilitarlas, consulta la documentación de Cloud KMS.
Antes de comenzar
Crea tus proyectos
En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea dos proyectos de Google Cloud:
Un proyecto de claves contiene tus recursos de Cloud KMS, incluidos un llavero de claves y una clave de encriptación simétrica.
Un proyecto de estaciones de trabajo contiene estaciones de trabajo encriptadas con una clave CMEK.
Puedes usar el mismo proyecto para tu proyecto de clave y de estaciones de trabajo, pero, como práctica recomendada, te sugerimos que uses dos proyectos para la separación de obligaciones.
Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
Habilita las APIs necesarias en cada proyecto.
En tu proyecto clave, asegúrate de que habilitaste la API de Cloud KMS.
En tu proyecto de estaciones de trabajo, asegúrate de que habilitaste las APIs de Cloud KMS y Cloud Workstations.
Asegúrate de instalar e inicializar la CLI de
gcloud
. Para inicializar la CLI degcloud
, ejecuta el siguiente comando:gcloud init
Roles obligatorios
Si bien puedes otorgar los roles de administrador de Cloud KMS y de administrador de estaciones de trabajo de Cloud a la misma persona, te recomendamos que sigas el principio de privilegio mínimo cuando asignes roles. Como práctica recomendada, otorga estos roles a dos personas diferentes y pídeles que se coordinen, en lugar de pedirle a tu administrador de Cloud KMS que también sea el administrador de Cloud Workstations. Para obtener más información, consulta las prácticas recomendadas de seguridad y usa IAM de forma segura.
Para obtener los permisos que necesitas para configurar CMEK, pídele a tu administrador que te otorgue los siguientes roles de IAM:
-
Si eres el administrador de Cloud KMS, pídele al administrador que te otorgue el siguiente rol para que puedas crear y administrar recursos de Cloud KMS:
Administrador de Cloud KMS (
roles/cloudkms.admin
) en tu proyecto de claves. -
Si eres el administrador de Cloud Workstations, pídele a tu administrador que te otorgue el siguiente rol para que puedas crear y actualizar estaciones de trabajo:
Administrador de Cloud Workstations (
roles/workstations.admin
) en tu proyecto de estaciones de trabajo.
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 mediante roles personalizados o cualquier otro rol predefinido.
Crea un llavero de claves y una clave de encriptación
En tu proyecto de claves, crea una clave y guarda el ID de recurso de la clave:
Crea o selecciona un llavero de claves.
Puedes compartir los anillos de claves entre servicios, pero como práctica recomendada, te recomendamos que uses una clave diferente para cada recurso protegido. Consulta separación de obligaciones.
Crea una clave de encriptación simétrica.
Asegúrate de crear la clave de CMEK y la configuración de la estación de trabajo en la misma región.
Obtén el ID de recurso de la clave y guárdalo para un paso posterior.
Verifica si hay configuraciones de estaciones de trabajo
Si no tienes configuraciones de estaciones de trabajo disponibles en la consola de Google Cloud, pídele al administrador de Cloud Workstations que cree una configuración de estación de trabajo por ti o asegúrate de tener un rol de IAM de administrador de Cloud Workstations en el proyecto para que puedas crear estos recursos por tu cuenta.
Usar claves de encriptación administradas por el cliente
Para usar una CMEK en la configuración de una estación de trabajo, activa la CMEK desde la consola de Google Cloud o la CLI de gcloud
.
Console
Otorga a tu cuenta de servicio y agente de servicio de Compute Engine la función Encriptador/Desencriptador de CryptoKey de Cloud KMS y el rol de visor de Cloud KMS:
En la consola de Google Cloud, ve a la página Administración de claves.
Haz clic en el nombre del llavero de claves que contiene la clave.
Selecciona la casilla de verificación de la clave que deseas usar.
La pestaña Permisos aparecerá como un panel.
En el cuadro de diálogo Agregar miembros, especifica la dirección de correo electrónico de la cuenta de servicio de Compute Engine y del agente de servicio de Compute Engine a la que le otorgarás acceso.
En el menú desplegable Seleccionar una función, selecciona Encriptador/desencriptador de CryptoKey de Cloud KMS.
Haz clic en Agregar otra función.
En el menú desplegable Seleccionar un rol, selecciona Visualizador de Cloud KMS.
Haz clic en Guardar.
Para habilitar CMEK desde la consola de Google Cloud, sigue estos pasos:
Sigue los pasos para crear una configuración de estación de trabajo.
Cuando especifiques la configuración de la máquina, busca la sección Opciones avanzadas.
Haz clic en expand_more Expandir más y selecciona Usar una clave de encriptación administrada por el cliente (CMEK).
En el campo Select a customer-managed key, selecciona la clave de encriptación administrada por el cliente que creaste en tu proyecto de claves.
Si la clave que creaste no aparece en la lista, haz clic en Ingresar clave de forma manual para seleccionarla por ID de recurso y, luego, ingresa el ID de recurso que anotaste anteriormente.
En el campo Cuenta de servicio, selecciona la cuenta de servicio que usa la clave.
Completa los otros pasos para crear la configuración de la estación de trabajo.
Crea, inicia y lanza la configuración de la estación de trabajo para encriptar los discos persistentes de tu proyecto con la clave de Cloud KMS especificada.
gcloud
En el siguiente ejemplo, se otorga un rol de IAM que proporciona acceso a una clave de Cloud KMS y, luego, se habilita CMEK especificando esa clave en la configuración de la estación de trabajo:
Otorga a la cuenta de servicio de KMS y al agente de servicio de Compute Engine de tu proyecto de estaciones de trabajo el rol de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) de Cloud KMS en la clave de CMEK. Esto permite que el servicio de Compute Engine cree recursos encriptados en tu proyecto con la clave de CMEK especificada.gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member serviceAccount:WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project KMS_PROJECT_ID gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member serviceAccount:service-WORKSTATIONS_PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --project KMS_PROJECT_ID
Reemplaza lo siguiente:
KEY_NAME
: Es el nombre de la clave.LOCATION
: Es el nombre de la región en la que creaste el llavero de claves.KEY_RING
: Es el nombre del llavero de claves.WORKSTATIONS_PROJECT_NUMBER
: Es el identificador numérico único generado automáticamente que se incluye como la primera parte de la cuenta de servicio predeterminada de Compute Engine del proyecto de estaciones de trabajo.KMS_PROJECT_ID
: Es el ID del proyecto, una cadena única que se usa para diferenciar tu proyecto de Cloud KMS de todos los demás en Google Cloud.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca
--help
.Para recuperar la cuenta de servicio de administración de estaciones de trabajo de tu proyecto de estación de trabajo, usa el siguiente comando:
gcloud beta services identity create --service=workstations.googleapis.com \ --project=WORKSTATIONS_PROJECT_ID
Reemplaza
WORKSTATIONS_PROJECT_ID
por el ID del proyecto de las estaciones de trabajo.Otorga a la cuenta de servicio de administración de estaciones de trabajo de tu proyecto el rol de visor de Cloud KMS (
roles/cloudkms.viewer
) en la clave CMEK. Esto permite que el servicio de estación de trabajo detecte la rotación de claves y vuelva a encriptar los recursos según sea necesario en tu proyecto.gcloud kms keys add-iam-policy-binding KEY_NAME \ --location LOCATION \ --keyring KEY_RING \ --member WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT \ --role roles/cloudkms.viewer \ --project KMS_PROJECT_ID
Reemplaza lo siguiente:
KEY_NAME
: Es el nombre de la clave.LOCATION
: Es el nombre de la región en la que creaste el llavero de claves.KEY_RING
: Es el nombre del llavero de claves.WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT
: la cuenta de servicio de administración de estaciones de trabajo que se obtuvo en el paso anteriorKMS_PROJECT_ID
: Es el ID del proyecto, una cadena única que se usa para diferenciar tu proyecto de claves de Cloud KMS de todos los demás en Google Cloud.
Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con la marca
--help
.Opcional: Si aún no creaste un clúster de estaciones de trabajo, crea uno con el comando de CLI
gcloud
clusters create.gcloud workstations clusters create \ WORKSTATIONS_CLUSTER_NAME --region=LOCATION \ --project=WORKSTATIONS_PROJECT_NUMBER
Reemplaza lo siguiente:
WORKSTATIONS_CLUSTER_NAME
: Es el nombre del clúster de estaciones de trabajo.LOCATION
: Es el nombre de la región de tu clúster de estaciones de trabajo.WORKSTATIONS_PROJECT_NUMBER
: Es el identificador numérico único generado automáticamente que se incluye como la primera parte de la cuenta de servicio predeterminada de Compute Engine del proyecto de estaciones de trabajo.
Si ya creaste un clúster, crea una configuración de estación de trabajo con la configuración de
encryption_key
.Para crear una configuración de estación de trabajo con el tipo de máquina
e2-standard-2
, un tiempo de espera inactivo de3600s
y recursos de estación de trabajo encriptados con CMEK, ejecuta el siguiente comando de la CLI degcloud
:gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \ --cluster=WORKSTATIONS_CLUSTER_NAME \ --region=LOCATION \ --machine-type="e2-standard-2" \ --idle-timeout=3600 \ --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \ --kms-key-service-account="WORKSTATIONS_PROJECT_NUMBER-compute@developer.gserviceaccount.com" \ --project=WORKSTATIONS_PROJECT_NUMBER
Reemplaza lo siguiente:
WORKSTATIONS_CONFIG_NAME
: Es el nombre de la configuración de la estación de trabajo.WORKSTATIONS_CLUSTER_NAME
: Es el nombre del clúster de la estación de trabajo.LOCATION
: Es el nombre de la región de tu clúster.KMS_PROJECT_ID
: Es el ID del proyecto, una cadena única que se usa para diferenciar tu proyecto de todos los demás en Google Cloud.KEY_RING
: Es el nombre del llavero de claves.KEY_NAME
: Es el nombre de la clave.WORKSTATIONS_PROJECT_NUMBER
: Es el identificador numérico único generado automáticamente que se incluye como la primera parte de la cuenta de servicio predeterminada de Compute Engine del proyecto de estaciones de trabajo.
Después de crear una configuración de estación de trabajo, Cloud KMS encripta los discos persistentes de tu proyecto con la clave de Cloud KMS especificada.
Rota las claves de encriptación administradas por el cliente
Cuando otorgas a la cuenta de servicio de administración de estaciones de trabajo el rol de visor de Cloud KMS (roles/cloudkms.viewer
) en la clave de CMEK, el servicio de estación de trabajo puede detectar la rotación de claves y volver a encriptar tu disco principal con la nueva versión de clave primaria.
La nueva encriptación se produce después de que detengas la estación de trabajo. Cada vez que detienes una estación de trabajo encriptada, el servicio de la estación de trabajo verifica si se rotó la clave. Si se rotó la clave, el servicio de la estación de trabajo crea una instantánea del disco principal de la estación de trabajo y lo borra. La próxima vez que inicies la estación de trabajo, el servicio de la estación de trabajo creará un disco nuevo a partir de la instantánea con la nueva versión de clave primaria.
Cuotas de Cloud KMS y Cloud Workstations
Cuando usas CMEK en Cloud Workstations, tus proyectos pueden consumir cuotas de solicitudes criptográficas de Cloud KMS. Por ejemplo, los repositorios encriptados con CMEK pueden consumir estas cuotas para cada carga o descarga. Las operaciones de encriptación y desencriptación con claves CMEK afectan las cuotas de Cloud KMS solo si usas claves de hardware (Cloud HSM) o externas (Cloud EKM). Para obtener más información, consulta Cuotas de Cloud KMS.
Claves externas
Puedes usar Cloud External Key Manager (Cloud EKM) para encriptar datos en Google Cloud mediante claves externas que administras.
Cuando usas una clave de Cloud EKM, Google no tiene control sobre la disponibilidad de tu clave administrada de forma externa. Si la clave no está disponible, no se puede iniciar tu estación de trabajo.
Para obtener más consideraciones sobre el uso de claves externas, consulta Cloud External Key Manager.
¿Qué sigue?
- Lee sobre las claves de encriptación administradas por el cliente.
- Obtén más información sobre ¿Qué es la encriptación?