En esta página, se describe cómo usar el asesor de Storage Intelligence para identificar y volver a encriptar los objetos que incumplen la configuración de aplicación de la encriptación en su bucket.
Cuando aplicas o restringes los tipos de encriptación de un bucket, Cloud Storage aplica esa configuración a todos los objetos nuevos o reescritos en el bucket. Sin embargo, Cloud Storage no vuelve a encriptar de forma automática los objetos existentes que subiste antes de que se aplicara la configuración. Esos objetos permanecen encriptados con su método de encriptación original. Para obtener más información sobre los métodos de encriptación disponibles, consulta Opciones de encriptación de datos.
El asesor de Storage Intelligence muestra el hallazgo Los objetos incumplen las reglas de encriptación aplicadas cuando un bucket contiene objetos que usan un método de encriptación restringido. Un hallazgo es una anomalía o una brecha en la configuración de seguridad que se detecta a partir de tus métricas y metadatos de objetos que requieren tu atención. Para obtener una descripción general del asesor de Storage Intelligence, consulta Acerca del asesor de Storage Intelligence. Para obtener una lista completa de los hallazgos, consulta el catálogo de referencia de hallazgos.
Umbrales que activan un hallazgo
Cuando habilitas Storage Intelligence, Cloud Storage evalúa automáticamente los metadatos de encriptación a nivel de objeto en función de los parámetros de configuración de aplicación de la encriptación a nivel de bucket en tu proyecto, carpeta u organización. El asesor de Storage Intelligence genera un hallazgo cuando un bucket cumple con los siguientes criterios:
- El bucket restringe uno o más métodos de encriptación en su
configuración
enforcedEncryptionAllowedTypes, como la encriptación estándar (encriptación predeterminada de Google oGMEK), las claves de encriptación administradas por el cliente (CMEK) o las claves de encriptación proporcionadas por el cliente (CSEK). - El bucket contiene al menos un objeto en el que el campo de metadatos
encryptionTypeno está en la listaenforcedEncryptionAllowedTypesdel bucket.
Los hallazgos de referencia iniciales aparecen en un plazo de 48 horas después de habilitar Storage Intelligence y se actualizan cada 24 horas. Para reducir el volumen de alertas, el asesor de Storage Intelligence agrega los incumplimientos a nivel de objeto por bucket en tu panel. Puedes consultar los metadatos de encriptación a nivel de objeto en los conjuntos de datos de Storage Insights.
Responde a un hallazgo
Para responder al hallazgo, identifica los objetos afectados en cada bucket y vuelve a escribir los objetos que no cumplen con los requisitos con un método de encriptación permitido:
Consulta los detalles del hallazgo para identificar los buckets afectados y sus tipos de encriptación permitidos (
CMEK,GMEKoCSEK).Opcional: Para enumerar los objetos de un bucket afectado que incumple la configuración de encriptación aplicada, consulta tu conjunto de datos de Storage Insights en BigQuery. Si no configuraste un conjunto de datos vinculado, consulta Configura conjuntos de datos de Storage Insights.
SELECT bucket, name, encryptionType FROM `DATASET_NAME.object_attributes_latest_snapshot_view` WHERE bucket = 'BUCKET_NAME' AND encryptionType NOT IN (ALLOWED_ENCRYPTION_TYPES) AND timeDeleted IS NULL AND softDeleteTime IS NULL;
Reemplaza lo siguiente:
DATASET_NAME: Es el nombre de tu conjunto de datos vinculado de Storage Insights en BigQuery.BUCKET_NAME: Es el nombre del bucket afectado.ALLOWED_ENCRYPTION_TYPES: Es una lista separada por comas de los tipos de encriptación que permite el bucket, como'CMEK'o'CMEK', 'GMEK'.
Usa la siguiente tabla para seleccionar el método de reencriptación de tus objetos activos:
Situación Acción recomendada Detalles El bucket permite claves de encriptación administradas por el cliente ( CMEK)Vuelve a encriptar los objetos con CMEK Para los objetos GMEKactivos, exporta archivos de manifiesto CSV desde BigQuery y ejecuta un trabajo de operaciones por lotes de Storage para volver a escribir los objetos con una clave de Cloud KMS. Para los objetos encriptados con CSEK, ejecuta el comandogcloud storage objects update.El bucket permite la encriptación estándar ( GMEK)Vuelve a encriptar objetos con la encriptación estándar (GMEK) Verifica que el bucket no tenga una clave de Cloud KMS predeterminada y, luego, usa el comando gcloud storage objects updatecon la marca--clear-encryption-keypara volver a escribir los objetos afectados con la encriptación estándar.El bucket solo permite claves de encriptación proporcionadas por el cliente ( CSEK)Vuelve a encriptar los objetos con CSEK Usa el comando gcloud storage objects updatecon la marca--encryption-keypara volver a escribir los objetos afectados con tu clave de encriptación AES-256.Después de volver a encriptar todos los objetos que no cumplen con los requisitos en un bucket, el hallazgo se borra para ese bucket durante el siguiente ciclo de actualización de 24 horas. Sin embargo, el hallazgo permanece activo en los siguientes casos hasta que tú o Cloud Storage borren de forma permanente las versiones de los objetos retenidos:
- Control de versiones de objetos: Cuando reescribes un objeto activo,
Cloud Storage conserva el objeto original que no cumple con los requisitos como una
versión no actual. Para borrar el hallazgo, borra las versiones no actuales del objeto o configura una regla de administración del ciclo de vida de los objetos de
Delete. - Eliminación no definitiva: Cuando reescribes o borras un objeto, Cloud Storage conserva la versión original que no cumple con los requisitos en un estado de eliminación no definitiva hasta que venza el período de retención de eliminación no definitiva del bucket.
- Control de versiones de objetos: Cuando reescribes un objeto activo,
Cloud Storage conserva el objeto original que no cumple con los requisitos como una
versión no actual. Para borrar el hallazgo, borra las versiones no actuales del objeto o configura una regla de administración del ciclo de vida de los objetos de
Vuelve a encriptar los objetos con CMEK
Si el bucket permite claves de encriptación administradas por el cliente (CMEK), vuelve a encriptar los
objetos afectados según su método de encriptación actual.
Vuelve a encriptar los objetos encriptados con GMEK a gran escala con las operaciones por lotes de Storage
Para volver a encriptar objetos encriptados con GMEK con CMEK a gran escala, exporta archivos de manifiesto CSV desde BigQuery y ejecuta un trabajo de operaciones por lote en objetos almacenados:
Ejecuta la siguiente consulta de
EXPORT DATAen BigQuery para crear un manifiesto CSV con conjuntos de datos de Storage Insights para los objetos activos afectados que usan la encriptación estándar (GMEK):EXPORT DATA OPTIONS( uri='gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv', format='CSV', overwrite=true, header=true ) AS SELECT bucket, name FROM `DATASET_NAME.object_attributes_latest_snapshot_view` WHERE bucket = 'BUCKET_NAME' AND encryptionType = 'GMEK' AND timeDeleted IS NULL AND softDeleteTime IS NULL;
Reemplaza lo siguiente:
DESTINATION_BUCKET: Es el nombre del bucket de Cloud Storage en el que quieres almacenar los archivos de manifiesto CSV exportados.DATASET_NAME: Es el nombre de tu conjunto de datos vinculado de Storage Insights en BigQuery.BUCKET_NAME: Es el nombre del bucket afectado.
Completa los requisitos previos de las operaciones por lotes de Storage y pídele a tu administrador que otorgue el rol de encriptador/desencriptador de CryptoKey de Cloud KMS (
roles/cloudkms.cryptoKeyEncrypterDecrypter) en la clave de Cloud KMS a los siguientes agentes de servicio:- El agente de servicio de operaciones por lotes de Storage
(
service-PROJECT_NUMBER@gcp-sa-storagebatchoperations.iam.gserviceaccount.com) - El agente de servicio de Cloud Storage
(
service-PROJECT_NUMBER@gs-project-accounts.iam.gserviceaccount.com)
Reemplaza
PROJECT_NUMBERpor el número del proyecto que contiene el bucket.- El agente de servicio de operaciones por lotes de Storage
(
Ejecuta el comando
gcloud storage batch-operations jobs createpara crear un trabajo de operaciones por lotes de Storage con el archivo de manifiesto y volver a escribir los objetos con tu clave de Cloud KMS. Para verificar la configuración del trabajo antes de modificar los objetos, incluye la marca--dry-run:gcloud storage batch-operations jobs create JOB_NAME \ --bucket="BUCKET_NAME" \ --manifest-location="gs://DESTINATION_BUCKET/manifests/objects_violating_enforced_policies_*.csv" \ --rewrite-object="kms-key=KMS_KEY"
Reemplaza lo siguiente:
JOB_NAME: Es un ID único para el trabajo por lotes, comore-encrypt-objects-job.BUCKET_NAME: Es el nombre del bucket afectado.DESTINATION_BUCKET: Es el nombre del bucket que contiene tus archivos de manifiesto exportados.KMS_KEY: Es el nombre del recurso de la clave de Cloud KMS que quieres usar para encriptar los objetos. La clave debe estar en la misma ubicación que el bucket y usar el formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.
Vuelve a encriptar los objetos encriptados con CSEK con Google Cloud CLI
Debido a que Google Cloud no almacena claves de encriptación proporcionadas por el cliente (CSEK),
las operaciones por lotes de Storage no pueden desencriptar objetos encriptados con CSEK. Para volver a encriptar
los objetos encriptados con CSEK con CMEK, ejecuta el comando gcloud storage objects update
con las marcas --decryption-keys y --encryption-key:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --decryption-keys=DECRYPTION_KEY \ --encryption-key=KMS_KEY
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre del bucket afectado.OBJECT_NAME: Es el nombre del objeto encriptado con CSEK que deseas volver a encriptar. Para actualizar varios objetos en un solo comando, usa comodines de URI o la marca--read-paths-from-stdin(-I).DECRYPTION_KEY: Es la clave AES-256 codificada en Base64 RFC 4648 que encripta el objeto.KMS_KEY: Es el nombre del recurso de la clave de Cloud KMS que quieres usar para encriptar el objeto, en el formatoprojects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/CRYPTO_KEY.
Vuelve a encriptar los objetos con la encriptación estándar (GMEK)
Para volver a encriptar objetos con la encriptación estándar (encriptación predeterminada de Google o
GMEK), verifica que el bucket no tenga una clave de Cloud KMS predeterminada
y borra la clave de encriptación personalizada en cada objeto afectado:
Verifica que el bucket no tenga una clave de Cloud KMS predeterminada. Cuando borras la clave de encriptación personalizada de un objeto, Cloud Storage encripta el objeto con la encriptación estándar (
GMEK) solo si el bucket no tiene una clave de Cloud KMS predeterminada. Si el bucket tiene una clave de Cloud KMS predeterminada, Cloud Storage encripta el objeto con esa clave. Si el bucket también restringe la CMEK, la reescritura falla.Para quitar una clave de Cloud KMS predeterminada del bucket, ejecuta el comando
gcloud storage buckets updatecon la marca--clear-default-encryption-key:gcloud storage buckets update gs://BUCKET_NAME \ --clear-default-encryption-key
Reemplaza
BUCKET_NAMEpor el nombre del bucket afectado.Usa el comando
gcloud storage objects updatecon la marca--clear-encryption-keypara volver a escribir los objetos afectados con la encriptación estándar. Si los objetos están encriptados con claves de encriptación proporcionadas por el cliente (CSEK), también incluye la marca--decryption-keys:gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --clear-encryption-key \ [--decryption-keys=DECRYPTION_KEY]
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre del bucket afectado.OBJECT_NAME: Es el nombre del objeto que deseas volver a encriptar. Para actualizar varios objetos en un solo comando, usa comodines de URI (comogs://BUCKET_NAME/**) o la marca--read-paths-from-stdin(-I).DECRYPTION_KEY: Si el objeto está encriptado conCSEK, la clave AES-256 codificada en Base64 según RFC 4648 que encripta el objeto. Si el objeto está encriptado conCMEK, omite la marca--decryption-keys.
Vuelve a encriptar los objetos con CSEK
Si el bucket solo permite claves de encriptación proporcionadas por el cliente (CSEK), usa el
comando gcloud storage objects update con la marca --encryption-key
para volver a escribir los objetos afectados con tu clave de encriptación AES-256. Si un objeto
está encriptado con una CSEK diferente, incluye también la marca --decryption-keys:
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME \ --encryption-key=YOUR_ENCRYPTION_KEY \ [--decryption-keys=DECRYPTION_KEY]
Reemplaza lo siguiente:
BUCKET_NAME: Es el nombre del bucket afectado.OBJECT_NAME: el nombre del objeto que deseas volver a encriptar. Para actualizar varios objetos en un solo comando, usa comodines de URI o la marca--read-paths-from-stdin(-I).YOUR_ENCRYPTION_KEY: Es la cadena de clave de encriptación AES-256 codificada en Base64 según el RFC 4648.DECRYPTION_KEY: Si el objeto está encriptado con unaCSEKdiferente, la clave AES-256 codificada en Base64 según RFC 4648 que encripta el objeto. Si el objeto está encriptado conGMEKoCMEK, omite la marca--decryption-keys.
¿Qué sigue?
- Tareas clave:
- Explora otros hallazgos:
- Vuelve a encriptar los objetos que incumplen las políticas de CMEK predeterminadas del bucket
- Optimiza el uso de los datos de Coldline Storage y Archive Storage
- Mejora el rendimiento mitigando los errores de solicitudes con límite de frecuencia
- Identifica el consumo de almacenamiento superior a la tendencia
- Administra la salida entre regiones
- Revisa el catálogo de referencia de hallazgos
- Conceptos relacionados: