En esta página, se muestra cómo administrar las estadísticas de las cuentas de servicio, hallazgos sobre qué cuentas de servicio del proyecto no se usaron en el pasado 90 días.
Antes de comenzar
-
Enable the Recommender API.
- Lee acerca de las Estadísticas del recomendador (opcional).
Roles obligatorios
Para obtener los permisos que necesitas para administrar las estadísticas de cuentas de servicio, pídele a tu administrador que te otorgue los siguientes roles de IAM en el proyecto en el que deseas administrar las estadísticas:
-
Para ver las estadísticas de cuentas de servicio: Visualizador del recomendador de IAM (
roles/recommender.iamViewer
) -
Para modificar las estadísticas de la cuenta de servicio, sigue estos pasos:
Administrador del recomendador de IAM (
roles/recommender.iamAdmin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para administrar las estadísticas de cuentas de servicio. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para administrar las estadísticas de cuentas de servicio:
-
Para ver las estadísticas de cuentas de servicio:
-
recommender.iamServiceAccountinsights.get
-
recommender.iamServiceAccountinsights.list
-
-
Para modificar las estadísticas de cuentas de servicio:
recommender.iamServiceAccountinsights.update
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Enumera estadísticas de cuentas de servicio
Para enumerar todas las estadísticas de la cuenta de servicio de tu proyecto, usa uno de los siguientes métodos:gcloud
Usa el comando gcloud recommender
insights list
para ver todas las estadísticas de las cuentas de servicio de tu
en un proyecto final.
Antes de ejecutar el comando, reemplaza los siguientes valores:
PROJECT_ID
: el ID del proyecto para el que deseas enumerar las estadísticas.
gcloud recommender insights list --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
El resultado enumera todas las estadísticas de la cuenta de servicio de tu en un proyecto final. Por ejemplo:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 446303ba-2a14-49cc-b9fa-e2d2499d4f82 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-1@my-project.iam.gserviceaccount.com was inactive. 4cfd82c3-7320-4dc6-9b67-ca0756bbd54c SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-2@my-project.iam.gserviceaccount.com was inactive. a627bed7-c8f4-4611-89c9-2a9a8618ca1b SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-3@my-project.iam.gserviceaccount.com was inactive. a922dd59-df0a-422d-a2a4-096195e1dae5 SECURITY ACTIVE 2022-05-24T07:00:00Z LOW SERVICE_ACCOUNT_USAGE Service account sa-4@my-project.iam.gserviceaccount.com was inactive.
REST
El método insights.list
de la API de recomendador enumera todas las estadísticas de la cuenta de servicio del proyecto.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID
: el ID del proyecto para el que deseas enumerar las estadísticas.
Método HTTP y URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights
Para enviar tu solicitud, expande una de estas opciones:
En la respuesta, se enumeran todas las estadísticas de la cuenta de servicio de tu en un proyecto final. Por ejemplo:
{ "insights": [ { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }, { "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/4cfd82c3-7320-4dc6-9b67-ca0756bbd54c", "description": "Service account sa-2@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "105496400997178042131", "email": "sa-2@my-project.iam.gserviceaccount.com" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "16070400s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"783a32b635d79a4e\"", "severity": "LOW" } ] }
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas de la cuenta de servicio en esta página.
Obtén una sola estadística de cuenta de servicio
Para obtener más información sobre una sola estadística, incluida la descripción, el estado y las recomendaciones asociadas, usa uno de los siguientes métodos:
gcloud
Usa el comando gcloud recommender
insights describe
con tu ID de estadística para ver información sobre una sola estadística de IAM.
-
INSIGHT_ID
: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas en el proyecto. PROJECT_ID
: El ID del proyecto para el que deseas administrar las estadísticas
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global
En el resultado, se muestra la estadística en detalle. Por ejemplo, la siguiente estadística indica que la cuenta de servicio sa-1@my-project.iam.gserviceaccount.com
no se autenticó desde el 11 de octubre de 2020.
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"9d797dd04263c855"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas de la cuenta de servicio en esta página.
REST
Con el método insights.get
de la API de recomendador, se obtiene una sola estadística.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
PROJECT_ID
: el ID del proyecto para el que deseas administrar las estadísticas. -
INSIGHT_ID
: El ID de la estadística que deseas ver. Si no conoces el ID de estadística, puedes enumerar las estadísticas en tu proyecto para encontrarlo. El ID de una estadística es todo lo que se encuentra después deinsights/
en el camponame
de la estadística
Método HTTP y URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene las estadísticas. Por ejemplo, la siguiente estadística indica que la cuenta de servicio sa-1@my-project.iam.gserviceaccount.com
no se autenticó desde el 11 de octubre de 2020.
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-09-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"9d797dd04263c855\"", "severity": "LOW" }
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas de la cuenta de servicio en esta página.
Revisa las estadísticas de la cuenta de servicio
Después de obtener una sola estadística, puedes revisar su contenido para comprender el patrón de uso de recursos que destaca.
Los subtipos determinan el contenido de una estadística.
Las estadísticas de la cuenta de servicio (google.iam.serviceAccount.Insight
) tienen el subtipo SERVICE_ACCOUNT_USAGE
.
Las estadísticas de SERVICE_ACCOUNT_USAGE
tienen los siguientes componentes (en cualquier orden):
-
associatedRecommendations
: Los identificadores de cualquier recomendación asociada con la estadística. Si no hay recomendaciones asociadas con la estadística, este campo estará vacío. category
: La categoría de las estadísticas deSECURITY
y siempre es .-
content
: Informa la última vez que se autenticó la cuenta de servicio. En este campo, se encuentran los siguientes componentes:email
: Es la dirección de correo electrónico de la cuenta de servicio.lastAuthenticatedTime
: La hora más reciente en que la cuenta de servicio se autenticó. Si la cuenta de servicio no tiene ninguna autenticación registrada, este campo no se incluiráserviceAccountId
: Es el ID numérico único de la cuenta de servicio.
-
description
: Un resumen legible de la estadística -
etag
: un identificador único para el estado actual de una estadística. Cada vez que se modifica la estadística, se asigna un valoretag
nuevoPara cambiar el estado de una estadística, debes proporcionar la
etag
de la estadística existente. Usaretag
ayuda a garantizar que cualquier operación se realice solo si la estadística no cambió desde la última recuperación. -
insightSubtype
: el subtipo de estadística. -
lastRefreshTime
: La fecha en la que se actualizó la estadística por última vez, lo que indica la actualidad de los datos que se usaron para generar la estadística -
name
: El nombre de la estadística, en el siguiente formato:projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID
Los marcadores de posición tienen los siguientes valores:
PROJECT_ID
: El ID del proyecto en el que se generó la estadísticaINSIGHT_ID
: Un ID único para la estadística
-
observationPeriod
: El período hasta llegar a la estadística. Los datos de origen que se usaron para generar la estadística finalizan enlastRefreshTime
y comienzan enlastRefreshTime
menosobservationPeriod
-
stateInfo
: Las estadísticas atraviesan varias transiciones de estado después de la propuesta:-
ACTIVE
: Se generó la estadística, pero no se realizó ninguna acción o se realizó una acción sin actualizar el estado de la estadística. Las estadísticas activas se actualizan cuando cambian los datos subyacentes. -
ACCEPTED
: Se realizaron acciones en función de la estadística. Se aceptan las estadísticas cuando una recomendación asociada se marcó comoCLAIMED
,SUCCEEDED
oFAILED
, o la estadística se aceptó directamente. Cuando una estadística se encuentra en el estadoACCEPTED
, el contenido de la estadística no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de su aceptación.
-
-
targetResources
: el nombre completo del recurso del proyecto para el que se creó la estadística. Por ejemplo,//cloudresourcemanager.googleapis.com/projects/123456789012
.
Marca una estadística de cuenta de servicio como ACCEPTED
Si realizas acciones basadas en una estadística activa, puedes marcar esa estadística como ACCEPTED
. El estado ACCEPTED
le indica a la API de recomendador que realizaste acciones basadas en esta estadística, lo que ayuda a definir mejor las recomendaciones.
Las estadísticas aceptadas se conservan durante 90 días después de que se marcan como ACCEPTED
.
gcloud
Utiliza el
Comando gcloud recommender insights mark-accepted
con el ID de estadística que se debe marcar
una estadística como ACCEPTED
.
-
INSIGHT_ID
: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas correspondientes a en un proyecto final. PROJECT_ID
: El ID del proyecto para el que deseas administrar las estadísticas-
ETAG
: Un identificador para una versión de la estadística. Para obtener laetag
, haz lo siguiente:-
Obtén la estadística mediante el comando
gcloud recommender insights describe
. -
Busca y copia el valor
etag
del resultado, incluidas las comillas delimitantes. Por ejemplo,"d3cdec23cc712bd0"
-
Obtén la estadística mediante el comando
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.serviceAccount.Insight \ --project=PROJECT_ID \ --location=global \ --etag=ETAG
En el resultado, se muestra la estadística, ahora con el estado ACCEPTED
:
category: SECURITY content: email: sa-1@my-project.iam.gserviceaccount.com lastAuthenticatedTime: '2020-10-11T07:00:00Z' serviceAccountId: '103185812403937829397' description: Service account sa-1@my-project.iam.gserviceaccount.com was inactive. etag: '"39c4199dcec92848"' insightSubtype: SERVICE_ACCOUNT_USAGE lastRefreshTime: '2022-05-24T07:00:00Z' name: projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82 observationPeriod: 19008000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/123456789012
Para obtener más información sobre la información de estado de una estadística, consulta Revisa las estadísticas de la cuenta de servicio en esta página.
REST
Mediante el método insights.markAccepted
de la API de recomendador, se marca una estadística como ACCEPTED
.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
PROJECT_ID
: el ID del proyecto para el que deseas administrar las estadísticas. -
INSIGHT_ID
: El ID de la estadística que deseas ver. Si ID de la estadística, puedes encontrarla enumerar las estadísticas en un proyecto final. El ID de una estadística es todo lo que se encuentra después deinsights/
en el camponame
de la estadística -
ETAG
: Un identificador para una versión de la estadística. Para obtener laetag
, haz lo siguiente:- Obtén la estadística mediante el método
insights.get
. - Busca y copia el valor
etag
de la respuesta.
- Obtén la estadística mediante el método
Método HTTP y URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/INSIGHT_ID:markAccepted
Cuerpo JSON de la solicitud:
{ "etag": "ETAG" }
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene la estadística, ahora con el estado ACCEPTED
:
{ "name": "projects/123456789012/locations/global/insightTypes/google.iam.serviceAccount.Insight/insights/446303ba-2a14-49cc-b9fa-e2d2499d4f82", "description": "Service account sa-1@my-project.iam.gserviceaccount.com was inactive.", "content": { "serviceAccountId": "103185812403937829397", "email": "sa-1@my-project.iam.gserviceaccount.com", "lastAuthenticatedTime": "2020-10-11T07:00:00Z" }, "lastRefreshTime": "2022-05-24T07:00:00Z", "observationPeriod": "19008000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/123456789012" ], "insightSubtype": "SERVICE_ACCOUNT_USAGE", "etag": "\"39c4199dcec92848\"", "severity": "LOW" }
Para obtener más información sobre la información de estado de una estadística, consulta Revisa las estadísticas de la cuenta de servicio en esta página.
¿Qué sigue?
- Revisa las otras opciones disponibles herramientas para comprender el uso de las cuentas de servicio.
- Usa el Centro de recomendaciones a fin de ver y administrar todas las recomendaciones para el proyecto, incluidas las recomendaciones de IAM.