Supervisa patrones de uso para cuentas de servicio y claves

En esta página, se explica cómo usar Cloud Monitoring para ver las métricas de uso de tus cuentas de servicio y claves de cuenta de servicio. Estas métricas te permiten ver y realizar un seguimiento de los patrones de uso, lo que puede ayudarte a identificar anomalías de forma automática o manual.

Las cuentas de servicio y las claves de cuenta de servicio aparecen en estas métricas si se usan para llamar a cualquier API de Google, incluidas las API que no forman parte de Google Cloud. Las métricas incluyen llamadas a la API correctas y fallidas. Por ejemplo, si una llamada a la API falla porque el emisor no está autorizado a llamar a esa API, o porque la solicitud hace referencia a un recurso que no existe, la cuenta de servicio o la clave que se usó para hacer esa llamada a la API aparece en las métricas.

Las claves de la cuenta de servicio también aparecen en estas métricas si un sistema enumera las claves mientras intenta autenticar una solicitud, incluso si el sistema no usa la clave para autenticar la solicitud. Este comportamiento es más común cuando se usan URL firmadas para Cloud Storage o cuando se autentica en aplicaciones de terceros. Como resultado, es posible ver las métricas de uso para las claves que no se usaron para la autenticación.

Monitoring conserva las métricas de cuenta de servicio por tiempo limitado. Si necesitas acceder a los datos durante un período más largo, puedes exportar los resultados a BigQuery de forma periódica. Para obtener más información, consulta Exportación de métricas de Monitoring en la documentación de soluciones.

Cuando usas una cuenta de servicio o una clave de cuenta de servicio, las métricas de uso suelen estar disponibles en unos minutos.

Antes de comenzar

  • Habilita las API de IAM and Cloud Monitoring.

    Habilita las API

Funciones requeridas

A fin de obtener los permisos que necesitas para ver el uso reciente de las cuentas de servicio y claves, pídele a tu administrador que te otorgue el rol de IAM de visualizador de Monitoring (roles/monitoring.viewer) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Consulta las métricas de uso de todas las cuentas de servicio o claves

Para ver las métricas de uso de las cuentas de servicio y las claves de cuenta de servicio, sigue estos pasos:

Console

Si quieres usar el Explorador de métricas para ver las métricas de un recurso supervisado, sigue estos pasos:

  1. En la consola de Google Cloud, ve a la página Explorador de métricas en Monitoring.
  2. Ir al Explorador de métricas

  3. En la barra de herramientas, selecciona la pestaña Explorador.
  4. Selecciona la pestaña Configuración.
  5. Expande el menú Seleccionar una métrica, ingresa IAM Service Account en la barra de filtros y, luego, usa los submenús para seleccionar una métrica y un tipo de recurso específicos:
    1. En el menú Recursos activos, selecciona Cuenta de servicio de IAM.
    2. En el menú Categorías de métricas activas, selecciona Service_account.
    3. En el menú Métricas activas, selecciona una métrica de cuenta de servicio. Las siguientes métricas están disponibles dentro del intervalo de tiempo seleccionado:
      • Para las métricas de uso de cuentas de servicio, selecciona Eventos de autenticación de cuentas de servicio.
      • Para las métricas de uso de las claves de cuenta de servicio, selecciona Eventos de autenticación de claves de cuenta de servicio.
    4. Haga clic en Apply.
  6. Opcional: Para configurar cómo se visualizan los datos, agrega filtros y usa los menús Agrupar por, Agregador y tipo de gráfico. Por ejemplo, puedes agrupar por etiquetas de recursos o métricas. Para obtener más información, consulta Selecciona métricas cuando uses el Explorador de métricas.
  7. Opcional: Cambia la configuración del gráfico:
    • Para obtener cuotas y otras métricas que informen una muestra por día, establece el período en al menos una semana y el tipo de trazado en Gráfico de barras apiladas.
    • Para las métricas con valor de distribución, establece el tipo de trazado en Gráfico de mapa de calor.

REST

El método timeSeries.list de la API de Cloud Monitoring te permite acceder a las métricas de uso de manera programática.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, como my-project.
  • METRIC_TYPE: El tipo de métrica que deseas verificar. Usa uno de los siguientes valores:
    • Para las métricas de uso de la cuenta de servicio, usa iam.googleapis.com%2Fservice_account%2Fauthn_events_count.
    • Para las métricas de uso de la clave de la cuenta de servicio, usa iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count.
  • END_TIME: El final del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: El inicio del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-04-12T00%3A00%3A00.00Z.

Método HTTP y URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22METRIC_TYPE%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Para enviar tu solicitud, expande una de estas opciones:

Para obtener más información sobre cómo leer las métricas de uso de manera programática, consulta Lee datos de métricas en la documentación de Monitoring.

Consulta las métricas de uso de una sola cuenta de servicio

Para ver las métricas de uso de una sola cuenta de servicio, sigue estos pasos:

Console

  1. En la consola de Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona el proyecto que contiene la cuenta de servicio.

  3. Haz clic en la dirección de correo electrónico de la cuenta de servicio.

  4. Haz clic en la pestaña Métricas. En el gráfico Tráfico de autenticación, se muestran las métricas de uso de la cuenta de servicio.

  5. Opcional: Para ver el gráfico en laExplorador de métricas que ofrece opciones adicionales de filtrado y visualización, haz clic en > Ver en el Explorador de métricas.

REST

El método timeSeries.list de la API de Cloud Monitoring, cuando se usa con filtros específicos, te permite obtener métricas de uso para una sola cuenta de servicio. Luego, puedes usar esas métricas para determinar cuándo se usó la cuenta por última vez.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, como my-project.
  • SERVICE_ACCOUNT_ID: El ID numérico único de la cuenta de servicio. Para encontrar el ID numérico único de la cuenta de servicio, sigue estos pasos:
    1. En la consola de Cloud, ve a la página Cuentas de servicio.

      Ir a la página Cuentas de servicio
    2. Haz clic en la dirección de correo electrónico de la cuenta de servicio. El ID numérico único de la cuenta de servicio es el valor en el campo ID único.
  • END_TIME: El final del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: El inicio del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-04-12T00%3A00%3A00.00Z.

Método HTTP y URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fauthn_events_count%22%20AND%20resource.labels.unique_id%3D%22SERVICE_ACCOUNT_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene un objeto timeSeries con todos los eventos de autenticación recientes para la cuenta de servicio especificada.

Consulta las métricas de uso de una sola clave de cuenta de servicio

Para ver las métricas de uso de una sola clave de cuenta de servicio, sigue estos pasos:

Console

  1. En la consola de Cloud, ve a la página Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona el proyecto que contiene la cuenta de servicio asociada con la clave.

  3. Haz clic en la dirección de correo electrónico de la cuenta de servicio asociada con la clave.

  4. Haz clic en la pestaña Métricas. En el gráfico Tráfico de autenticación por clave, se muestran las métricas de uso de todas las claves asociadas con la cuenta de servicio.

  5. En la leyenda del gráfico, haz clic en el ID de la clave de la cuenta de servicio de la que deseas ver las métricas de uso. El gráfico se actualiza para mostrar las métricas de esa clave de cuenta de servicio.

  6. Opcional: Para ver el gráfico en laExplorador de métricas que ofrece opciones adicionales de filtrado y visualización, haz clic en > Ver en el Explorador de métricas.

REST

Primero, obtén el ID de la clave de la cuenta de servicio.

  1. Enumera las claves de cuenta de servicio:

    Con el método projects.serviceAccounts.keys.list, se enumeran todas las claves de cuenta de servicio de una cuenta de servicio.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, como my-project.
    • SA_NAME: Es el nombre de la cuenta de servicio cuyas claves deseas enumerar.
    • KEY_TYPES: Este valor es opcional. Es una lista separada por comas de los tipos de claves que deseas incluir en la respuesta. El tipo de clave indica si una clave es administrada por el usuario (USER_MANAGED) o por el sistema (SYSTEM_MANAGED). Si se deja en blanco, se mostrarán todas las claves.

    Método HTTP y URL:

    GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES

    Para enviar tu solicitud, expande una de estas opciones:

    Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

    {
      "keys": [
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/90c48f61c65cd56224a12ab18e6ee9ca9c3aee7c",
          "validAfterTime": "2020-03-04T17:39:47Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/e5e3800831ac1adc8a5849da7d827b4724b1fce8",
          "validAfterTime": "2020-03-31T23:50:09Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED"
        },
        {
          "name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com/keys/b97699f042b8eee6a846f4f96259fbcd13e2682e",
          "validAfterTime": "2020-05-17T18:58:13Z",
          "validBeforeTime": "9999-12-31T23:59:59Z",
          "keyAlgorithm": "KEY_ALG_RSA_2048",
          "keyOrigin": "GOOGLE_PROVIDED",
          "keyType": "USER_MANAGED",
          "disabled": true
        }
      ]
    }
    

  2. Usa los metadatos de la respuesta para identificar la clave de la que deseas hacer un seguimiento. Luego, copia el ID único de la clave desde el final del campo name.

    El campo name tiene el siguiente formato:

    "name": "projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_EMAIL/keys/KEY_ID"
    

    El ID único de la clave es todo lo que se encuentra después de keys/.

    Por ejemplo, el ID único en el siguiente nombre de clave es 0f561cc41650ff521899de2fd653bd3de08e2da4:

    "name": "projects/my-project/serviceAccounts/my-account@my-project.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
    

Luego, usa el ID para ver las métricas de uso de la clave de la cuenta de servicio.

El método timeSeries.list de la API de Cloud Monitoring, cuando se usa con filtros específicos, te permite obtener métricas de uso para una sola clave de cuenta de servicio. Luego, puedes usar esas métricas para determinar cuándo se usó la clave por última vez.

Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

  • PROJECT_ID: El ID del proyecto de Google Cloud Los ID de proyecto son strings alfanuméricas, como my-project.
  • KEY_ID: El ID único de la clave de cuenta de servicio.
  • END_TIME: El final del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-06-12T00%3A00%3A00.00Z.
  • START_TIME: El inicio del intervalo que deseas verificar, con formato RFC 3339 codificado por porcentaje. Por ejemplo, 2020-04-12T00%3A00%3A00.00Z.

Método HTTP y URL:

GET https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%3D%22iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count%22%20AND%20metric.labels.key_id%3D%22KEY_ID%22&interval.endTime=END_TIME&interval.startTime=START_TIME

Para enviar tu solicitud, expande una de estas opciones:

La respuesta contiene un objeto timeSeries con todos los eventos de autenticación recientes para la clave de cuenta de servicio especificada.

Exporta métricas

Puedes usar Monitoring para exportar tus métricas a BigQuery. Exportar métricas es útil para realizar análisis a largo plazo, ya que Monitoring solo retiene métricas por un tiempo limitado.

Para obtener instrucciones, consulta Exportación de métricas de Monitoring en la documentación de soluciones.

Próximos pasos