En este documento, se muestra cómo usar claves de encriptación administradas por el cliente (CMEK) para encriptar y controlar los datos inactivos en un servicio en la nube a través de Cloud Key Management Service. CMEK se integra en la personalización de código para Gemini Code Assist.
Si no usas una CMEK, Google administra automáticamente las claves que encriptan los datos de forma predeterminada. Este comportamiento se conoce como encriptación predeterminada de Google. Con este comportamiento predeterminado, no tienes control sobre las claves de encriptación.
En este documento, harás lo siguiente:
- Obtén información para crear una CMEK.
- Otorga permisos a la cuenta de servicio de Gemini Code Assist.
- Crea un índice de repositorio de código con una CMEK.
- Quita el acceso a un repositorio de CMEK.
De forma predeterminada, Gemini para Google Cloud encripta el contenido del cliente en reposo. Gemini controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina Encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluido Gemini. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Gemini es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Antes de comenzar
-
In the Google Cloud console, activate Cloud Shell.
En tu entorno de shell, ejecuta el comando
gcloud components update
para asegurarte de haber actualizado todos los componentes instalados de la CLI de gcloud a la versión más reciente. Para este paso, puedes instalar y, luego, inicializar gcloud CLI, o bien puedes usar Cloud Shell.gcloud components update
Crea una CMEK y otorga permisos
Para crear una CMEK y otorgarle permisos a la cuenta de servicio de Gemini Code Assist en la clave, realiza las siguientes tareas:
En el Google Cloud proyecto en el que deseas administrar tus claves, haz lo siguiente:
Crea un llavero de claves y una clave mediante una de las siguientes opciones:
- Crea el llavero de claves y la clave directamente en Cloud KMS.
- Usa una clave administrada de forma externa. Crea la clave externa y, luego, crea una clave de Cloud EKM para que la clave esté disponible a través de Cloud KMS.
Otorga la función de IAM de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) a la cuenta de servicio de Gemini Code Assist. Otorga este permiso en la clave que creaste.Console
Ve a Administración de claves.
Selecciona la clave que creaste.
Otorga acceso a la cuenta de servicio de Gemini Code Assist:
- Haz clic en Agregar principal.
- Agrega la cuenta de servicio de Gemini Code Assist. La cuenta de servicio es
service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com
, en la que PROJECT_NUMBER es el número de proyecto del proyecto Google Cloud en el que está habilitado Gemini Code Assist. - En Selecciona una función, selecciona Cloud KMS > Encriptador/desencriptador de CryptoKey de Cloud KMS.
- Haz clic en Guardar.
Repite el paso anterior para otorgar acceso a la cuenta que creará el índice del repositorio de código con una CMEK.
Regresa a la página Administración de claves y vuelve a seleccionar la clave.
Selecciona Mostrar panel de información. Deberías ver los roles en la columna Función/Miembro.
gcloud
Para otorgar acceso a la cuenta de servicio de Gemini Code Assist, en un entorno de shell, usa el comando
kms keys add-iam-policy-binding
:gcloud kms keys add-iam-policy-binding KEY_NAME \ --project=PROJECT_ID \ --location=LOCATION \ --keyring=KEYRING_NAME \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-cloudaicompanion.iam.gserviceaccount.com" \ --role="roles/cloudkms.cryptoKeyEncrypterDecrypter"
Reemplaza lo siguiente:
- KEY_NAME: Es el nombre de la clave.
- PROJECT_ID: El ID del proyecto que contiene la clave.
- LOCATION: Es la ubicación de la clave.
- KEYRING_NAME: Es el nombre del llavero de claves.
- PROJECT_NUMBER: El número de proyecto del proyecto Google Cloud con Gemini Code Assist habilitado.
Repite el paso anterior para otorgar acceso a la cuenta que creará el índice del repositorio de código con una CMEK.
Para obtener más información sobre este comando, consulta la documentación de
gcloud kms keys add-iam-policy-binding
.
Ahora puedes crear un índice de repositorio de código con un CMEK con la API y especificar la clave que se usará para la encriptación.
Crea un índice de repositorio de código con una CMEK
En gcloud CLI
, crea un repositorio nuevo en el servicio que tenga protección de una CMEK:
gcloud gemini code-repository-indexes create CODE_REPOSITORY_INDEX_NAME \
--location=LOCATION \
--kms-key="projects/KEY_PROJECT_ID/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME"
Reemplaza lo siguiente:
- CODE_REPOSITORY_INDEX_NAME: Es el nombre del índice del nuevo repositorio de código que crearás.
- LOCATION: Es la ubicación de la clave.
- KEY_PROJECT_ID: Es el ID del proyecto de claves.
- KEYRING_NAME: Es el nombre del llavero de claves.
- KEY_NAME: Es el nombre de la clave.
Quita el acceso a un repositorio de CMEK
Existen varias formas de quitar el acceso a un repositorio encriptado mediante una CMEK:
- Revoca el rol de encriptador/desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de Gemini Code Assist mediante la consola de Google Cloud o la CLI de gcloud.
- Inhabilita de forma temporal la CMEK.
- Destruye de forma permanente la CMEK.
Te recomendamos revocar los permisos de la cuenta de servicio de Gemini Code Assist antes de inhabilitar o destruir una clave. Los cambios en los permisos son coherentes en cuestión de segundos, por lo que puedes observar el impacto de inhabilitar o destruir una clave.