Soluciona errores de Security Command Center

En esta página, se proporciona una lista de guías de referencia y técnicas para corregir errores de SCC.

Antes de comenzar

Necesitas funciones adecuadas de Identity and Access Management (IAM) para ver o editar los resultados, y acceder o modificar los recursos de Google Cloud. Si encuentras errores de permiso cuando accedes a Security Command Center en la consola de Google Cloud, pídele ayuda al administrador. Para obtener información sobre las funciones, consulta Control de acceso. Para resolver los errores de recursos, lee la documentación de los productos afectados.

Revisa los resultados en la consola de Google Cloud

Los errores de SCC son errores de configuración que impiden que Security Command Center funcione según lo esperado. La fuente Security Command Center genera estos resultados.

Siempre que Security Command Center esté configurado para tu organización o proyecto, generará resultados de errores a medida que los detecte. Puedes ver los errores de SCC en la consola de Google Cloud.

Usa el siguiente procedimiento para revisar los resultados en la consola de Google Cloud:

  1. Ve a la pestaña Resultados de Security Command Center en la consola de Google Cloud.

    Ir a hallazgos

  2. Selecciona tu organización o proyecto de Google Cloud.

    Selector de proyectos

  3. En la sección Filtros rápidos, en la subsección Nombre visible de origen, selecciona Security Command Center.

  4. Para ver los detalles de un resultado específico, haz clic en el nombre del resultado en Category. El panel de detalles de resultados se expande para mostrar información que incluye lo siguiente:

    • Resumen generado por IAVista previa: Una explicación generada de forma dinámica del problema que se encontró
    • Descripción: Una breve explicación del error que se detectó
    • Hora del evento: Cuándo ocurrió el hallazgo
    • Nombre visible del recurso: El recurso afectado
    • Próximos pasos: Instrucciones para resolver el error
    • Nombre canónico del resultado: Un identificador único para el resultado
    • Nombre visible de la fuente: Security Command Center
  5. Para ver la definición completa de JSON del resultado, haz clic en la pestaña JSON (opcional).

    En el panel, se muestra la definición JSON del resultado, en la que puedes inspeccionar todos los atributos del resultado.

Desactivación de errores de SCC después de la corrección

Después de corregir un resultado SCC error, Security Command Center establece de forma automática el estado del resultado en INACTIVE durante el siguiente análisis. El tiempo que tarda Security Command Center en establecer el estado de un resultado corregido en INACTIVE depende de cuándo soluciones el resultado y el programa del análisis que detecta el error.

Para obtener información sobre la frecuencia de análisis de un resultado de SCC error, consulta el resumen del resultado en Detectores de errores.

Corrige los errores de SCC

En esta sección, se incluyen instrucciones de solución para todos los errores de SCC.

API disabled

Nombre de categoría en la API: API_DISABLED

Uno de los siguientes servicios está inhabilitado para el proyecto:

El servicio inhabilitado no puede generar resultados.

Para solucionar el problema, sigue estos pasos:

  1. A fin de determinar qué API está inhabilitada, revisa el resultado.
  2. Habilita la API

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

APS no resource value configs match any resources

Nombre de categoría en la API: APS_NO_RESOURCE_VALUE_CONFIGS_MATCH_ANY_RESOURCES

Las configuraciones de valores de recursos se definen para las simulaciones de rutas de ataque, pero no coinciden con ninguna instancia de recurso de tu entorno. En su lugar, las simulaciones usan el conjunto de recursos de alto valor predeterminado.

Es posible que la configuración de los valores de los recursos no coincida con ningún recurso por los siguientes motivos, que se identifican en la descripción del resultado en la consola de Google Cloud:

  • Ninguna de las opciones de configuración de los valores de los recursos coincide con ninguna instancia de los recursos.
  • Una o más configuraciones de valores de recursos que especifican NONE anulan todas las demás configuraciones válidas.
  • Todas las configuraciones de valor de recursos definidas especifican un valor de NONE.

Para solucionar el problema, sigue estos pasos:

  1. Ve a la página Simulación de ruta de ataque en la configuración de Security Command Center:

    Ir a la configuración

  2. Selecciona tu organización. Se abrirá la página Simulación de ruta de ataque con la configuración existente.

  3. En la columna Valor del recurso de la lista Configuraciones de valores de recursos, verifica los valores de None.

  4. Para cualquier configuración que especifique None, haz lo siguiente:

    1. Haz clic en el nombre de cualquier configuración de valor de recurso para mostrar sus especificaciones.

    2. Si es necesario, edita las especificaciones de los atributos de recursos para reducir la cantidad de instancias de recursos que coinciden con la configuración.

  5. Si el problema no se debe a una especificación None demasiado amplia, haz lo siguiente:

    1. Haz clic en los nombres de cada configuración que especifica un valor de HIGH, MEDIUM o LOW para mostrar las especificaciones de los atributos de recursos.

    2. Revisa y, según sea necesario, edita la configuración para corregir el permiso, el tipo de recurso, la etiqueta o la especificación de la etiqueta a fin de que coincida con los recursos deseados.

  6. Si es necesario, crea una nueva configuración de valor de recurso.

Tus cambios se aplican a la siguiente simulación de ruta de ataque.

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

APS resource value assignment limit exceeded

Nombre de categoría en la API: APS_RESOURCE_VALUE_ASSIGNMENT_LIMIT_EXCEEDED

En la última simulación de la ruta de ataque, la cantidad de instancias de recursos de alto valor, identificadas por los parámetros de configuración de valores de recursos, superó el límite de 1,000 instancias de recursos en un conjunto de recursos de alto valor. Como resultado, Security Command Center excluyó el exceso de instancias del conjunto de recursos de alto valor.

Para solucionar este resultado, puedes probar las siguientes acciones:

  • Usa etiquetas o etiquetas para reducir la cantidad de coincidencias para un tipo de recurso determinado o dentro de un alcance específico. Las etiquetas se deben aplicar a las instancias de recursos antes de que puedan coincidir con una configuración de valor de recurso.
  • Crea una configuración de valor de recurso que asigne un valor de recurso de NONE a un subconjunto de los recursos que se especifican en otra configuración. Especificar un valor de NONE anula cualquier otra configuración y excluye las instancias de recursos de tu conjunto de recursos de alto valor.
  • Reduce la especificación del atributo de recurso de alcance en la configuración del valor del recurso.
  • Borra las configuraciones de valores de los recursos que asignan un valor de LOW.

Para obtener instrucciones sobre cómo crear, editar o borrar la configuración de un valor de recurso, consulta Define y administra tu conjunto de recursos de alto valor.

Obtén más información sobre la configuración de análisis y los recursos admitidos de este tipo de resultado.

GKE service account missing permissions

Nombre de categoría en la API: GKE_SERVICE_ACCOUNT_MISSING_PERMISSIONS

La detección de amenazas a contenedores no puede generar resultados para un clúster de Google Kubernetes Engine, ya que a la cuenta de servicio predeterminada de GKE del clúster le faltan permisos. Esto impide que la detección de amenazas a contenedores se habilite de forma correcta en el clúster.

Para solucionar este problema, restablece la cuenta de servicio predeterminada de GKE y confirma que la cuenta de servicio tenga el rol Kubernetes Engine Service Agent (roles/container.serviceAgent).

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

KTD blocked by admission controller

Nombre de categoría en la API: KTD_BLOCKED_BY_ADMISSION_CONTROLLER

No se puede habilitar la detección de amenazas a contenedores en un clúster porque un controlador de admisión de terceros impide la implementación del objeto DaemonSet de Kubernetes requerido.

Para solucionar este resultado, asegúrate de que los controladores de admisión que se ejecutan en el clúster permitan que Container Threat Detection cree los objetos de Kubernetes necesarios.

Revisa el controlador de admisión

Verifica si el controlador de admisión en tu clúster rechaza la implementación del objeto DaemonSet de detección de amenazas a contenedores.

  1. En la descripción del resultado en los detalles de los resultados en la consola de Google Cloud, revisa el mensaje de error de Kubernetes incluido. El mensaje de error de Kubernetes debería ser similar al siguiente:

    generic::failed_precondition: incompatible admission webhook:
    admission webhook "example.webhook.sh" denied the request:
    [example-constraint] you must provide labels: {"example-required-label"}.
    
  2. En los registros de auditoría de actividad de administradores de Cloud del proyecto que contiene tu clúster, busca el mensaje de error que se muestra en el campo Descripción de los detalles del resultado.

  3. Si el controlador de admisión funciona, pero rechaza la implementación del objeto DaemonSet de Container Threat Detection, configura el controlador de admisión a fin de que la cuenta de servicio administrada por Google de Container Threat Detection administre los objetos en el espacio de nombres kube-system.

    La cuenta de servicio de Container Threat Detection debe poder administrar objetos específicos de Kubernetes.

Para obtener más información sobre el uso de controladores de admisión con Container Threat Detection, consulta PodSecurityPolicy y los controladores de admisión.

Confirma la corrección

Después de corregir el error, Security Command Center intenta habilitar automáticamente la detección de amenazas a contenedores. Después de esperar a que se complete la habilitación, sigue estos pasos para verificar si Container Threat Detection está activa:

  1. Ve a la página Cargas de trabajo de Kubernetes Engine en la consola.

    Ir a Cargas de trabajo de Kubernetes

  2. Si es necesario, selecciona Mostrar cargas de trabajo del sistema.

  3. En la página Cargas de trabajo, primero filtra las cargas de trabajo por el nombre del clúster.

  4. Busca la carga de trabajo container-watcher. Si container-watcher está presente y su estado muestra OK, significa que la detección de amenazas a contenedores está activa.

KTD image pull failure

Nombre de categoría en la API: KTD_IMAGE_PULL_FAILURE

No se puede habilitar Container Threat Detection en el clúster porque una imagen de contenedor requerida no se puede extraer (descargar) desde gcr.io, el host de imágenes de Container Registry.

La extracción o descarga de una imagen de contenedor puede fallar por cualquiera de varios motivos posibles.

Verifica lo siguiente:

  • Asegúrate de que la configuración de la red de VPC, el DNS o el firewall no bloquee el acceso de red del clúster al host de imagen gcr.io.
  • Si el clúster es privado, asegúrate de que el Acceso privado a Google esté habilitado para permitir el acceso al host de la imagen gcr.io.
  • Si la configuración de red o el Acceso privado a Google no son la causa de la falla, consulta la documentación de solución de problemas de GKE para detectar errores ImagePullBackOff y ErrImagePull.

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

KTD service account missing permissions

Nombre de categoría en la API: KTD_SERVICE_ACCOUNT_MISSING_PERMISSIONS

A la cuenta de servicio de Container Threat Detection que se identifica en los detalles de búsqueda en la consola de Google Cloud le faltan los permisos necesarios. Todos o algunos de los resultados de Container Threat Detection no se envían a Security Command Center.

Para solucionar el problema, sigue estos pasos:

  1. Otorga la función Agente de servicio de Container Threat Detection (roles/containerthreatdetection.serviceAgent) a la cuenta de servicio. Para obtener más información, consulta Cómo otorgar una sola función.

    Como alternativa, si deseas usar una función personalizada, asegúrate de que tenga los permisos en la función de agente de servicio de Container Threat Detection.

  2. Asegúrate de que no haya políticas de denegación de IAM que impidan que la cuenta de servicio use cualquiera de los permisos de la función de agente de servicio de Container Threat Detection. Si hay una política de denegación que bloquea el acceso, agrega la cuenta de servicio como una principal de excepción en la política de denegación.

Para más información sobre la cuenta de servicio de Container Threat Detection, y la función y los permisos que requiere,

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

Misconfigured Cloud Logging Export

Nombre de categoría en la API: MISCONFIGURED_CLOUD_LOGGING_EXPORT

El proyecto configurado para la exportación continua a Cloud Logging no está disponible. Como resultado, Security Command Center no puede enviar resultados a Logging.

Realiza una de las siguientes acciones para solucionar este problema:

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

VPC Service Controls Restriction

Nombre de categoría en la API: VPC_SC_RESTRICTION

Las estadísticas del estado de la seguridad no pueden producir ciertos resultados para un proyecto, ya que está protegido por un perímetro de servicio. Debes otorgar a la cuenta de servicio de Security Command Center acceso entrante al perímetro de servicio.

El identificador de la cuenta de servicio es una dirección de correo electrónico con el siguiente formato:

service-RESOURCE_KEYWORD-RESOURCE_ID@security-center-api.iam.gserviceaccount.com

Reemplaza lo siguiente:

  • RESOURCE_KEYWORD: Es la palabra clave org o project, según el recurso que sea propietario de la cuenta de servicio.
  • RESOURCE_ID: Uno de los siguientes:
    • el ID de la organización si la cuenta de servicio es propiedad de la organización
    • El número de proyecto si la cuenta de servicio es propiedad de un proyecto

Si tienes cuentas de servicio a nivel de proyecto y a nivel de organización, aplica la corrección en ambas.

Para solucionar el problema, sigue estos pasos.

Paso 1: Determina qué perímetro de servicio bloquea las estadísticas del estado de seguridad

  1. Obtén el ID único de los Controles del servicio de VPC y el ID del proyecto asociado con el resultado:
    1. Para ver los detalles del resultado, haz clic en el nombre de su categoría.
    2. En el campo Descripción, copia el ID único de los Controles del servicio de VPC, por ejemplo, 5e4GI409D6BTWfOp_6C-uSwmTpOQWcmW82sfZW9VIdRhGO5pXyCJPQ.
    3. En el campo Ruta de acceso del recurso, copia el ID del proyecto.
  2. Obtén el ID de la política de acceso y el nombre del perímetro de servicio:

    1. En la consola de Google Cloud, ve a la página Explorador de registros.

      Ir al Explorador de registros

    2. En la barra de herramientas, selecciona el proyecto asociado al resultado.

      Selector de proyectos

    3. En el cuadro de búsqueda, ingresa el ID único del error.

      Busca por UID de error

      Si el error no aparece en los resultados de la consulta, extiende el cronograma en Histograma y, luego, vuelve a ejecutar la consulta.

    4. Haz clic en el error que aparece.

    5. Haz clic en Expand nested fields.

    6. Copia el valor del campo servicePerimeterName. El valor tiene el siguiente formato:

      accessPolicies/ACCESS_POLICY/servicePerimeters/SERVICE_PERIMETER

      En este ejemplo, el nombre completo del recurso del perímetro de servicio es accessPolicies/540107806624/servicePerimeters/vpc_sc_misconfigured.

      • ACCESS_POLICY es el ID de la política de acceso, por ejemplo, 540107806624.
      • SERVICE_PERIMETER es el nombre del perímetro de servicio, por ejemplo, vpc_sc_misconfigured.

      Nombre completo del recurso del perímetro de servicio

    7. Para obtener el nombre visible que corresponde al ID de la política de acceso, usa gcloud CLI.

      Si no puedes realizar consultas a nivel de la organización, pídele a tu administrador que realice este paso.

      gcloud access-context-manager policies list --organization ORGANIZATION_ID
      

      Reemplaza ORGANIZATION_ID por el ID numérico de la organización.

      Obtendrás un resultado similar al siguiente:

      NAME          ORGANIZATION  SCOPES                 TITLE           ETAG
      540107806624  549441802605                         default policy  2a9a7e30cbc14371
      352948212018  549441802605  projects/393598488212  another_policy  d7b47a9ecebd4659

      El nombre visible es el título que corresponde al ID de la política de acceso. Toma nota del nombre visible de la política de acceso y del nombre del perímetro de servicio. Los necesitarás en la siguiente sección.

Paso 2: Crea una regla de entrada que otorgue acceso al proyecto

En esta sección, se requiere que tengas acceso a nivel de la organización a los Controles del servicio de VPC. Si no tienes acceso a nivel de la organización, pídele a tu administrador que realice estos pasos.

En los próximos pasos, crearás una regla de entrada en el perímetro de servicio que identificaste en el paso 1.

Para otorgar a una cuenta de servicio acceso entrante a un perímetro de servicio, sigue estos pasos.

  1. Ve a los Controles del servicio de VPC.

    Ir a los Controles del servicio de VPC

  2. En la barra de herramientas, selecciona tu organización de Google Cloud.

    Selector de proyectos

  3. En la lista desplegable, selecciona la política de acceso que contiene el perímetro de servicio al que deseas otorgar acceso.

    Lista de políticas de acceso

    Los perímetros de servicio asociados con la política de acceso aparecen en la lista.

  4. Haz clic en el nombre del perímetro de servicio.

  5. Haz clic en Editar perímetro.

  6. En el menú de navegación, haz clic en Política de entrada.

  7. Haga clic en Agregar regla.

  8. Configura la regla de la siguiente manera:

    Atributos FROM del cliente de la API

    1. En Fuente, selecciona Todas las fuentes.
    2. En Identidad, selecciona Identidades seleccionadas.
    3. En el campo Agregar usuario o cuenta de servicio, haz clic en Seleccionar.
    4. Ingresa la dirección de correo electrónico de la cuenta de servicio. Si tienes cuentas de servicio a nivel de proyecto y a nivel de organización, agrega ambas.
    5. Haz clic en Guardar.

    Atributos TO de los recursos y servicios de GCP

    1. En Proyecto, selecciona Todos los proyectos o selecciona el proyecto especificado en el resultado.

    2. En Servicios, selecciona Todos los servicios o selecciona cada uno de los siguientes servicios individuales que requieren las Estadísticas del estado de seguridad:

      • API de BigQuery
      • API de Autorización Binaria
      • API de Cloud Logging
      • Cloud Monitoring API
      • API de Compute Engine
      • API de Kubernetes Engine

    Si un perímetro de servicio restringe el acceso a un servicio requerido, Security Health Analytics no puede producir resultados para ese servicio.

  9. En el menú de navegación, haz clic en Guardar.

Para obtener más información, consulta Configura políticas de entrada y salida.

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

Security Command Center service account missing permissions

Nombre de categoría en la API: SCC_SERVICE_ACCOUNT_MISSING_PERMISSIONS

A la cuenta de servicio administrada por Google de Security Command Center le faltan los permisos necesarios para funcionar de forma adecuada.

El identificador de la cuenta de servicio es una dirección de correo electrónico con el siguiente formato:

service-RESOURCE_KEYWORD-RESOURCE_ID@security-center-api.iam.gserviceaccount.com

Reemplaza lo siguiente:

  • RESOURCE_KEYWORD: Es la palabra clave org o project, según el recurso que sea propietario de la cuenta de servicio.
  • RESOURCE_ID: Uno de los siguientes:
    • el ID de la organización si la cuenta de servicio es propiedad de la organización
    • El número de proyecto si la cuenta de servicio es propiedad de un proyecto

Si tienes cuentas de servicio a nivel de proyecto y a nivel de organización, aplica la corrección en ambas.

Para solucionar el problema, sigue estos pasos:

  1. Otorga la función de agente de servicio del centro de seguridad (roles/securitycenter.serviceAgent) a la cuenta de servicio.

    Para obtener más información, consulta Cómo otorgar una sola función.

    Como alternativa, si deseas usar una función personalizada, asegúrate de que tenga los permisos de la función Agente de servicio del centro de seguridad.

  2. Asegúrate de que no haya políticas de denegación de IAM que impidan que la cuenta de servicio use cualquiera de los permisos en las funciones necesarias. Si hay una política de denegación que bloquea el acceso, agrega la cuenta de servicio como una principal de excepción en la política de denegación.

Obtén información sobre los elementos admitidos y la configuración de análisis de este tipo de resultados.

¿Qué sigue?

Obtén más información sobre los errores de Security Command Center.