Encripta recursos de estaciones de trabajo con CMEK

De forma predeterminada, Cloud Workstations usa una Clave de propiedad de Google y administrada por Google para encriptar recursos de estaciones de trabajo, como VMs y discos persistentes, los datos están en reposo. Si tiene requisitos normativos o de cumplimiento específicos relacionados con las claves que protegen tus datos, puedes usar claves de encriptación administradas por el cliente (CMEK) que usan Cloud Key Management Service (Cloud KMS).

Para obtener más información sobre las CMEK en general, incluido cuándo y por qué habilitarlas, consulta la Documentación de Cloud KMS.

Antes de comenzar

Crea tus proyectos

  1. En la consola de Google Cloud, en la página del selector de proyectos, selecciona o crea dos Proyectos de Google Cloud:

    • Un proyecto clave contiene tus recursos de Cloud KMS, como un llavero de claves y una clave de encriptación simétrica.

    • Un proyecto de estaciones de trabajo contiene estaciones de trabajo encriptadas con un clave CMEK.

    Puedes usar el mismo proyecto para tu proyecto clave y el proyecto de estaciones de trabajo. pero te sugerimos que uses dos proyectos para separación de obligaciones.

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Aprende a hacer lo siguiente: que verifiquen si la facturación está habilitada proyecto.

  3. Habilitar las APIs necesarias en cada proyecto

  4. Asegúrate de instalar e inicializar el archivo CLI de gcloud Para inicializar la CLI de gcloud Ejecuta el siguiente comando:

    gcloud init
    

Roles obligatorios

Aunque puedes otorgar Cloud KMS Admin y de Administrador de Cloud Workstations a la misma persona, te recomendamos sigas el principio de privilegio mínimo cuando asignes roles. Como mejor otorga estos roles a dos personas separadas y pídeles que las coordinen, en lugar de pedirle a Cloud KMS que también Administrador de Cloud Workstations. Para obtener más información, consulta prácticas recomendadas de seguridad y usar IAM de forma segura.

A fin de obtener los permisos que necesitas para configurar CMEK, solicita a tu administrador que te otorgue el los siguientes roles de IAM:

  • Si eres el administrador de Cloud KMS, pídele a tu 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 clave.
  • 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.

Si quieres obtener más información para otorgar roles, consulta Administra el acceso.

También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.

Crear llavero de claves y clave de encriptación

En tu proyecto de clave, crea una clave y guarda su ID de recurso:

  1. Crea o selecciona llavero de claves.

    Puedes compartir llaveros de claves entre servicios, pero como práctica recomendada, que recomendamos que uses una clave diferente para cada recurso protegido. Consulta separación de obligaciones.

  2. Crea un clave de encriptación simétrica.

    Asegúrate de crear tu clave CMEK y la configuración de tu estación de trabajo en la en la misma región.

  3. Obtén el ID de recurso de la clave y guárdala para un paso posterior.

Verifica los parámetros de configuración de las estaciones de trabajo

Si no tienes parámetros de configuración de estaciones de trabajo disponibles en Consola de Google Cloud, pedirle a tu administrador de Cloud Workstations que cree un configuración de tu estación de trabajo o asegurarte de que tienes Administrador de Cloud Workstations IAM 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 una configuración de estación de trabajo, activa una CMEK desde el La consola de Google Cloud o la CLI de gcloud

Console

Otorga acceso de Cloud KMS a tu cuenta de servicio de Compute Engine y a tu agente de servicio de Compute Engine Rol de Encriptador/Desencriptador de CryptoKey y el rol de visualizador de Cloud KMS:

  1. En la consola de Google Cloud, ve a la página Administración de claves.

    Ir a Administración de claves

  2. Haz clic en el nombre del llavero de claves que contiene la clave.

  3. Selecciona la casilla de verificación de la clave que quieres usar.

    La pestaña Permisos aparece como un panel.

  4. En el cuadro de diálogo Agregar miembros, especifica la dirección de correo electrónico del La cuenta de servicio de Compute Engine y el agente de servicio de Compute Engine al que le estás otorgando acceso.

  5. En el menú desplegable Seleccionar un rol, elige Encriptador/Desencriptador de CryptoKey de Cloud KMS.

  6. Haz clic en Agregar otra función.

  7. En el menú desplegable Seleccionar un rol, selecciona Visualizador de Cloud KMS.

  8. Haz clic en Guardar.

Para habilitar CMEK desde la consola de Google Cloud, sigue estos pasos:

  1. Sigue los pasos para Crea una configuración de estación de trabajo.

  2. Cuando especifiques tu máquina configuración, Busca la sección Opciones avanzadas.

  3. Haz clic en expand_more. Expande Más y selecciona Usar clave de encriptación administrada por el cliente (CMEK).

    1. En el campo Selecciona una clave administrada por el cliente, elige la clave de encriptación administrada por el cliente que creaste en tu proyecto clave.

      Si la clave que creaste no aparece en la lista, haz clic en Ingresar clave manualmente para selecciona la clave por ID de recurso y, luego, ingresa el ID de recurso que anotaste anteriormente.

    2. En el campo Cuenta de servicio, selecciona la cuenta de servicio que usa la .

  4. Completa los demás pasos para crear la configuración de tu estación de trabajo.

  5. Crear, iniciar e iniciar la configuración de la estación de trabajo para encriptar la discos persistentes del 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, habilita CMEK especificando esa clave en la configuración de la estación de trabajo:

  1. Otorga el servicio Cloud KMS a la cuenta de servicio de KMS y al agente de servicio de Compute Engine para tus estaciones de trabajo. Rol de Encriptador/Desencriptador de CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave CMEK. Esto permite que el servicio de Compute Engine cree recursos encriptados en tu proyecto con la clave 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 la clave. de Google.
    • KEY_RING: Es el nombre del llavero de claves.
    • WORKSTATIONS_PROJECT_NUMBER: la API de identificador numérico único generado que se incluye como la primera parte de la cuenta de servicio predeterminada de Compute Engine del 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 los demás en Google Cloud.

    Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con el --help.

  2. Para recuperar la cuenta de servicio de administración de estaciones de trabajo para tu estación de trabajo, sigue estos pasos: proyecto, usa el siguiente comando:

    gcloud beta services identity create --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

    Reemplaza WORKSTATIONS_PROJECT_ID por tus estaciones de trabajo el ID del proyecto.

  3. Otorga a la cuenta de servicio de administración de estaciones de trabajo para tu proyecto la Rol de visualizador 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 volver a encriptar 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 la clave. de Google.
    • KEY_RING: Es el nombre del llavero de claves.
    • WORKSTATIONS_MANAGEMENT_SERVICE_ACCOUNT: el cuenta de servicio de administración de estaciones de trabajo obtenida del paso anterior.
    • KMS_PROJECT_ID: El ID del proyecto, una cadena única que se usa para diferenciar tu proyecto de clave de Cloud KMS de los demás en Google Cloud.

    Para obtener información sobre todas las marcas y los valores posibles, ejecuta el comando con el --help.

  4. Opcional: Si aún no creaste un clúster de estación de trabajo, crea uno con el creación de clústeres Comando gcloud de la CLI.

    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 la estación de trabajo.
    • LOCATION: Es el nombre de la región del clúster de la estación de trabajo.
    • WORKSTATIONS_PROJECT_NUMBER: la API de identificador numérico único generado que se incluye como la primera parte de la cuenta de servicio predeterminada de Compute Engine del proyecto de estaciones de trabajo
  5. Si ya creaste un clúster, crear 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, haz lo siguiente: tiempo de espera de inactividad de 3600s y recursos de estación de trabajo encriptados con CMEK, se ejecuta el siguiente comando gcloud de la CLI:

    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 la configuración de la estación de trabajo.
    • WORKSTATIONS_CLUSTER_NAME: Es el nombre del clúster de tu estación de trabajo.
    • LOCATION: Es el nombre de la región del 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: la API de identificador numérico único generado 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 en tu proyecto con el servicio de Cloud KMS especificado .

Cuotas de Cloud KMS y Cloud Workstations

Cuando usas CMEK en Cloud Workstations, tus proyectos pueden consumir solicitudes criptográficas de Cloud KMS y cuotas. 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 deja de estar disponible, no se puede iniciar la estación de trabajo.

Para obtener más consideraciones sobre el uso de claves externas, consulta Cloud External Key Manager.

¿Qué sigue?