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 monitorizar 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 APIs que no forman parte de Trusted Cloud by S3NS. Las métricas incluyen las llamadas a la API correctas y las fallidas. Por ejemplo, si una llamada a una API falla porque el llamante no está autorizado para 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 haya usado para esa llamada a la API aparecerá en las métricas.
Las claves de cuenta de servicio también aparecen en estas métricas si un sistema muestra las claves al intentar autenticar una solicitud, aunque el sistema no utilice la clave para autenticar la solicitud. Este comportamiento es más habitual cuando se usan URLs firmadas para Cloud Storage o cuando se autentican aplicaciones de terceros. Por lo tanto, es posible ver métricas de uso de claves que no se han usado para la autenticación.
Los siguientes elementos no aparecen en las métricas de cuentas de servicio ni en las de claves de cuentas de servicio:
- Claves de autenticación HMAC de Cloud Storage
- Solicitudes autenticadas por claves de API vinculadas a cuentas de servicio
Monitoring conserva las métricas de las cuentas de servicio durante 6 semanas. Después de usar una cuenta de servicio o una clave de cuenta de servicio, las métricas de uso suelen estar disponibles en unos minutos.
Antes de empezar
-
Enable the IAM and Cloud Monitoring APIs.
Roles obligatorios
Para obtener los permisos que necesitas para ver el uso reciente de las cuentas de servicio y las claves, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de Monitoring (roles/monitoring.viewer
) en el proyecto.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
Ver métricas de uso de todas las cuentas de servicio o claves
Para ver las métricas de uso de tus cuentas de servicio o claves de cuenta de servicio, sigue estos pasos:
Consola
Para ver las métricas de un recurso monitorizado con el explorador de métricas, haz lo siguiente:
-
En la Trusted Cloud consola, ve a la página leaderboard Explorador de métricas:
Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuya sección sea Monitorización.
- En la barra de herramientas de la Trusted Cloud consola, selecciona tu Trusted Cloud proyecto. En las configuraciones de App Hub, selecciona el proyecto host de App Hub o el proyecto de gestión de la carpeta habilitada para aplicaciones.
- En el elemento Métrica, despliega el menú Seleccionar una métrica,
introduce
IAM Service Account
en la barra de filtros y, a continuación, usa los submenús para seleccionar un tipo de recurso y una métrica específicos:- En el menú Recursos activos, selecciona Cuenta de servicio de IAM.
- En el menú Categorías de métricas activas, selecciona Service_account.
- En el menú Métricas activas, seleccione una métrica de cuenta de servicio.
En el intervalo de tiempo seleccionado, están disponibles las siguientes métricas:
- Para ver las métricas de uso de la cuenta de servicio, selecciona Eventos de autenticación de cuenta de servicio.
- Para ver las métricas de uso de claves de cuenta de servicio, selecciona Eventos de autenticación de claves de cuenta de servicio.
- Haz clic en Aplicar.
Para quitar series temporales de la visualización, usa el elemento de filtro.
Para combinar series temporales, usa los menús del elemento "Agregación". Por ejemplo, para mostrar el uso de la CPU de tus VMs en función de su zona, define el primer menú como Media y el segundo como zona.
Todas las series temporales se muestran cuando el primer menú del elemento Agregación se define como Sin agregar. Los ajustes predeterminados del elemento Agregación se determinan en función del tipo de métrica que hayas seleccionado.
- En el caso de las cuotas y otras métricas que registran una muestra al día, haga lo siguiente:
- En el panel Visualización, defina el Tipo de widget como Gráfico de barras apiladas.
- Define el periodo en al menos una semana.
REST
El método timeSeries.list
de la API de Cloud Monitoring te permite acceder a las métricas de uso de forma programática.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Trusted Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.-
METRIC_TYPE
: el tipo de métrica que quieres consultar. Se debe utilizar uno de los siguientes valores:-
Para obtener métricas de uso de cuentas de servicio, usa
iam.googleapis.com%2Fservice_account%2Fauthn_events_count
. -
Para obtener métricas de uso de claves de cuentas de servicio, usa
iam.googleapis.com%2Fservice_account%2Fkey%2Fauthn_events_count
.
-
Para obtener métricas de uso de cuentas de servicio, usa
END_TIME
: el final del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como porcentaje. Por ejemplo,2020-06-12T00%3A00%3A00.00Z
.START_TIME
: el inicio del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como 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, despliega una de estas opciones:
Para obtener más información sobre cómo leer métricas de uso mediante programación, consulta el artículo Leer datos de métricas de la documentación de Monitoring.
Ver 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:
Consola
En la Trusted Cloud consola, ve a la página Cuentas de servicio.
Selecciona el proyecto que contiene tu cuenta de servicio.
Haz clic en la dirección de correo de tu cuenta de servicio.
Haz clic en la pestaña Métricas. El gráfico Tráfico de autenticación muestra las métricas de uso de la cuenta de servicio.
Opcional: Para ver el gráfico en la página Explorador de métricas, que ofrece más opciones de filtrado y visualización, haz clic en > Ver en Explorador de métricas.
REST
El método timeSeries.list
de la API Cloud Monitoring , cuando se usa con filtros específicos, te permite obtener métricas de uso de una sola cuenta de servicio. Después, puedes usar esas métricas para determinar cuándo se usó la cuenta por última vez.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Trusted Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.-
SERVICE_ACCOUNT_ID
: el ID numérico único de tu cuenta de servicio. Para encontrar el ID numérico único de tu cuenta de servicio, sigue estos pasos:-
En la Trusted Cloud consola, ve a la página Cuentas de servicio.
Ve a la página Cuentas de servicio. - Haz clic en la dirección de correo de tu cuenta de servicio. El ID numérico único de tu cuenta de servicio es el valor del campo ID único.
-
END_TIME
: el final del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como porcentaje. Por ejemplo,2020-06-12T00%3A00%3A00.00Z
.START_TIME
: el inicio del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como 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, despliega una de estas opciones:
La respuesta contiene un objeto timeSeries
con todos los eventos de autenticación recientes de la cuenta de servicio especificada.
Ver 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:
Consola
En la Trusted Cloud consola, ve a la página Cuentas de servicio.
Selecciona el proyecto que contiene la cuenta de servicio asociada a tu clave.
Haz clic en la dirección de correo de la cuenta de servicio asociada a tu clave.
Haz clic en la pestaña Métricas. El gráfico Tráfico de autenticación por clave muestra métricas de uso de todas las claves asociadas a la cuenta de servicio.
En la leyenda del gráfico, haz clic en el ID de la clave de la cuenta de servicio de la que quieras ver las métricas de uso. El gráfico se actualiza para mostrar las métricas de esa clave de cuenta de servicio.
Opcional: Para ver el gráfico en la página Explorador de métricas, que ofrece más opciones de filtrado y visualización, haz clic en > Ver en Explorador de métricas.
REST
Primero, obtén el ID de la clave de la cuenta de servicio.
Muestra las claves de la cuenta de servicio:
El método
projects.serviceAccounts.keys.list
muestra todas las claves de cuenta de servicio de una cuenta de servicio.Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Trusted Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.SA_NAME
: el nombre de la cuenta de servicio cuyas claves quieres enumerar.KEY_TYPES
: opcional. Lista de tipos de claves separadas por comas que quiere incluir en la respuesta. El tipo de clave indica si una clave la gestiona el usuario (USER_MANAGED
) o el sistema (SYSTEM_MANAGED
). Si se deja en blanco, se devuelven todas las claves.
Método HTTP y URL:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.s3ns-system.iam.gserviceaccount.com/keys?keyTypes=KEY_TYPES
Para enviar tu solicitud, despliega una de estas opciones:
Deberías recibir una respuesta JSON similar a la siguiente:
{ "keys": [ { "name": "projects/my-project/serviceAccounts/my-service-account@my-project.s3ns-system.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.s3ns-system.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.s3ns-system.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 "disable_reason": "SERVICE_ACCOUNT_KEY_DISABLE_REASON_EXPOSED" "extended_status": "SERVICE_ACCOUNT_KEY_EXTENDED_STATUS_KEY_EXPOSED" "extended_status_message": "exposed at: https://www.github.com/SomePublicRepo" } ] }
Usa los metadatos de la respuesta para identificar la clave que quieras monitorizar. A continuación, copia el ID único de la clave que aparece al 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 hay después de
keys/
.Por ejemplo, el ID único del siguiente nombre de clave es
0f561cc41650ff521899de2fd653bd3de08e2da4
:"name": "projects/my-project/serviceAccounts/my-account@my-project.s3ns-system.iam.gserviceaccount.com/keys/0f561cc41650ff521899de2fd653bd3de08e2da4"
A continuación, usa el ID para ver las métricas de uso de la clave de cuenta de servicio.
El método timeSeries.list
de la API Cloud Monitoring , cuando se usa con filtros específicos, te permite obtener métricas de uso de una sola clave de cuenta de servicio. Después, puede usar esas métricas para determinar cuándo se usó la clave por última vez.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: tu ID de proyecto. Trusted Cloud Los IDs de proyecto son cadenas alfanuméricas, comomy-project
.KEY_ID
: el ID único de tu clave de cuenta de servicio.END_TIME
: el final del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como porcentaje. Por ejemplo,2020-06-12T00%3A00%3A00.00Z
.START_TIME
: el inicio del intervalo de tiempo que quieres comprobar, en formato RFC 3339 codificado como 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, despliega una de estas opciones:
La respuesta contiene un objeto timeSeries
con todos los eventos de autenticación recientes de la clave de cuenta de servicio especificada.
Ver la actividad sospechosa de una cuenta de servicio
Puedes usar Event Threat Detection para monitorizar la actividad sospechosa de las cuentas de servicio. Event Threat Detection informa cuando las cuentas de servicio inactivas activan acciones. Las cuentas de servicio inactivas son cuentas de servicio que no se han usado durante más de 180 días.
Siguientes pasos
- Consulta cómo inhabilitar cuentas de servicio o eliminar cuentas de servicio.
- Consulta cómo eliminar claves de cuentas de servicio.
- Descubre las funciones que ofrece Monitoring.