Además de proporcionar recomendaciones, el recomendador usa el aprendizaje automático (AA) para proporcionar estadísticas detalladas. Las estadísticas son hallazgos que destacan patrones notables en el uso de recursos. Por ejemplo, puedes recopilar información adicional sobre el uso de permisos en el proyecto o identificar cuentas de servicio sin usar. Algunas estadísticas también se vinculan a recomendaciones, ya que las estadísticas proporcionan evidencia para ellas.
La administración de identidades y accesos (IAM) proporciona los siguientes tipos de estadísticas:
- Estadísticas de políticas: Hallazgos basados en el AA sobre el uso de permisos dentro del proyecto
- Estadísticas de cuentas de servicio: Hallazgos sobre las cuentas de servicio en el proyecto, como las cuentas de servicio que no se usaron en los últimos 90 días
Antes de comenzar
- Si quieres usar estadísticas de políticas, familiarízate con el recomendador de IAM.
- Lee acerca de las Estadísticas del recomendador (opcional).
Permisos necesarios
Los permisos necesarios para usar las estadísticas varían según lo que desees hacer.
Permisos para ver las estadísticas
Para ver las estadísticas, necesitas una función que incluya los siguientes permisos, en los que insight-type es iamPolicyInsights
o iamServiceAccountInsights
:
recommender.insight-type.get
recommender.insight-type.list
Para obtener estos permisos y seguir el principio de privilegio mínimo, pídele a tu administrador que te otorgue una de las siguientes funciones:
- Visualizador del recomendador de IAM (
roles/recommender.iamViewer
) - Revisor de seguridad de IAM (
roles/iam.securityReviewer
)
Como alternativa, el administrador puede otorgarte una función diferente con los permisos necesarios, como una función personalizada o una función predefinida con más permisos.
Permisos para modificar las estadísticas
Para modificar las estadísticas, necesitas una función que incluya los siguientes permisos, en los que insight-type es iamPolicyInsights
o iamServiceAccountInsights
:
recommender.insight-type.get
recommender.insight-type.list
recommender.insight-type.update
Para obtener estos permisos y seguir el principio de privilegio mínimo, pídele a tu administrador que te otorgue la función de administrador del recomendador de IAM (roles/recommender.iamAdmin
).
Como alternativa, el administrador puede otorgarte una función diferente con los permisos necesarios, como una función personalizada o una función predefinida con más permisos.
Enumera estadísticas
A fin de enumerar todas las estadísticas de un tipo específico para el proyecto, usa uno de los siguientes métodos:
gcloud
Usa el comando gcloud recommender insights list
para ver todas las estadísticas de un tipo específico dentro del proyecto.
Reemplaza insight-type-id
por el tipo de estadística que deseas enumerar. Usa google.iam.policy.Insight
para las estadísticas de políticas y google.iam.serviceAccount.Insight
para las estadísticas de cuentas de servicio.
gcloud recommender insights list --insight-type=insight-type-id \ --location=global
En el resultado, se enumeran todas las estadísticas de un tipo específico dentro del proyecto. Por ejemplo, enumerar todas las estadísticas de políticas para el proyecto genera un resultado similar al siguiente:
INSIGHT_ID LOCATION INSIGHT_TYPE CATEGORY INSIGHT_STATE LAST_REFRESH_TIME 07841f74-02ce-4de8-bbe6-fc4eabb68568 global google.iam.policy.Insight SECURITY ACCEPTED 2020-07-12T07:00:00Z 0d3ce433-f067-4e78-b6ae-03d7d1f6f040 global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 0e2cc488-38fb-4b9b-942c-cfe06a0ab88f global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 12b557be-d48f-49cf-a0b0-b3b73a178edf global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 279ef748-408f-44db-9a4a-1ff8865b9839 global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 29a4553d-9ffb-4508-9f13-77f40fc4e8b6 global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 2a00a91a-3e37-4dca-81f7-fb607d18053f global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 2baea818-df89-4ab3-8a48-0e752459d816 global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 4a59da9d-cde8-46cc-9c68-6980487175fb global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z 78fee8d9-c25c-4070-9f1b-ae5e4a4a164b global google.iam.policy.Insight SECURITY ACTIVE 2020-07-13T07:00:00Z
REST
El método insights.list
de la API de recomendador genera una lista de todas las estadísticas de un tipo específico dentro del proyecto.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
project-id
: El ID del proyecto de Google Cloudinsight-type-id
: El tipo de estadística que deseas enumerar. Para las estadísticas de políticas, usagoogle.iam.policy.Insight
. Para las estadísticas de cuentas de servicio, usagoogle.iam.serviceAccount.Insight
Método HTTP y URL:
GET https://recommender.googleapis.com/v1/projects/project-id/locations/global/insightTypes/insight-type-id/insights
Para enviar tu solicitud, expande una de estas opciones:
En la respuesta, se enumeran todas las estadísticas de un tipo específico dentro del proyecto. Por ejemplo, podría enumerar todas las estadísticas de políticas en el proyecto:
{ "insights": [ { "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 permission checks were authorized by this policy binding tuple.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2020-07-12T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/1234567890" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"b153ab487e4ae100\"" }, { "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/f4292f55-105b-4744-9dc3-fcacf59685bb", "description": "4 permission checks were authorized by this policy binding tuple.", "content": { "role": "roles/owner", "member": "serviceAccount:my-service-account2@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [ { "permission": "iam.roles.create" }, { "permission": "iam.roles.delete" }, { "permission": "iam.roles.list" }, { "permission": "iam.roles.update" } ], "inferredPermissions": [] }, "lastRefreshTime": "2020-07-12T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/6ab16c1d-edce-45e5-8d82-570fdd49892a" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/1234567890" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"49bb705553338fc3\"" } ] }
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas en esta página.
Obtén una sola estadística
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.
Antes de usar esta muestra, realiza los siguientes reemplazos:
insight-id
: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas en el proyectoinsight-type-id
: El tipo de estadística que deseas ver. Usagoogle.iam.policy.Insight
para las estadísticas de políticas ygoogle.iam.serviceAccount.Insight
para las estadísticas de cuentas de servicio
gcloud recommender insights describe insight-id \ --insight-type=insight-type-id --location=global
En el resultado, se muestra la estadística en detalle. Por ejemplo, la siguiente estadística indica que my-service-account@my-project.iam.gserviceaccount.com
usó cero permisos de la función de visualizador (roles/viewer
) en los últimos 90 días:
associatedRecommendations: - recommendation: projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f category: SECURITY content: condition: description: '' expression: '' location: '' title: '' exercisedPermissions: [] inferredPermissions: [] member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com role: roles/viewer description: 0 permission checks were authorized by this policy binding tuple. etag: '"d3cdec23cc712bd0"' insightSubtype: PERMISSIONS_USAGE lastRefreshTime: '2020-07-11T07:00:00Z' name: projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040 observationPeriod: 7776000s stateInfo: state: ACTIVE targetResources: - //cloudresourcemanager.googleapis.com/projects/1234567890
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas 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 de Google Cloudinsight-type-id
: El tipo de estadística que deseas ver. Para las estadísticas de políticas, usagoogle.iam.policy.Insight
. Para las estadísticas de cuentas de servicio, usagoogle.iam.serviceAccount.Insight
insight-id
: El ID de la estadística que deseas ver. Para encontrar el ID, enumera las estadísticas en el proyecto. 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/insight-type-id/insights/insight-id
Para enviar tu solicitud, expande una de estas opciones:
La respuesta contiene las estadísticas. Por ejemplo:
{ "name": "projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 permission checks were authorized by this policy binding tuple.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2020-07-12T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/1234567890" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"b153ab487e4ae100\"" }
Para obtener más información sobre los componentes de una estadística, consulta: Revisa las estadísticas en esta página.
Revisa las estadísticas
Las estadísticas se dividen en tipos y subtipos. Los tipos de estadísticas te indican para qué tipo de recurso está destinada la estadística. Los subtipos de estadísticas te indican qué tipo de información contiene la estadística.
IAM ofrece los siguientes tipos y subtipos de estadísticas:
Tipo de estadística | Subtipo de estadística |
---|---|
Estadísticas de políticas | PERMISSION_USAGE : Hallazgos basados en el AA sobre el uso de permisos dentro del proyecto |
Estadísticas de cuentas de servicio | SERVICE_ACCOUNT_USAGE : Hallazgos sobre qué cuentas de servicio del proyecto no se usaron en los últimos 90 días |
El subtipo determina el contenido de una estadística. Los subtipos de estadísticas enumerados en la tabla anterior tienen los siguientes componentes:
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 dePERMISSION_USAGE
ySERVICE_ACCOUNT_USAGE
siempre esSECURITY
.content
: El subtipo de estadística determina la información del campocontent
:Subtipo de estadística Contenido PERMISSION_USAGE
Informa el uso de los permisos de un miembro para una función específica. En este campo, se encuentran los siguientes componentes:
member
: El miembro cuyo uso de permisos se analizórole
: La función para la cual se analizó el uso de permisoscondition
: Cualquier condición relacionada con la vinculación que otorga la función al miembro. Si no hay condiciones, este campo contiene una condición vacíaexercisedPermissions
: Los permisos en la función que el miembro usó durante el período de observacióninferredPermissions
: Los permisos en la función que el recomendador de IAM determinó a través del AA, que es probable que el miembro necesite según los permisos que ejerció
SERVICE_ACCOUNT_USAGE
Informa la última vez que se autenticó la cuenta de servicio. En este campo, se encuentran los siguientes componentes:
serviceAccountId
: El ID numérico único de la cuenta de servicioemail
: La dirección de correo electrónico de la cuenta de serviciolastAuthenticatedTime
: 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á
description
: Un resumen legible de la estadísticaetag
: Una huella digital única que identifica el estado actual de una estadística. Cada vez que se modifica la estadística, se asigna un valor ETag nuevoPara cambiar el estado de una estadística, debes proporcionar la Etag de la estadística existente. Usar ETags 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, que esPERMISSION_USAGE
oSERVICE_ACCOUNT_USAGE
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ísticaname
: El nombre de la estadística, en el siguiente formato:projects/project-id/locations/global/insightTypes/insight-type-id/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-type-id
: El tipo de estadística. Las estadísticas de políticas tienen el tipogoogle.iam.policy.Insight
. Las estadísticas de cuentas de servicio tienen el tipogoogle.iam.serviceAccount.Insight
insight-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 de Google Cloud para el que se creó la estadística. Por ejemplo://cloudresourcemanager.googleapis.com/projects/1234567890
Califica una estadística 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
Usa el comando gcloud recommender insights mark-accepted
con el ID de estadística para marcar una estadística como ACCEPTED
.
Antes de usar el comando de muestra, reemplaza los siguientes valores:
insight-id
: El ID de la estadística que deseas marcar comoACCEPTED
. Para encontrar el ID, enumera las estadísticas en el proyectoinsight-type-id
: El tipo de estadística que deseas marcar comoACCEPTED
. Para las estadísticas de políticas, usagoogle.iam.policy.Insight
. Para las estadísticas de cuentas de servicio, usagoogle.iam.serviceAccount.Insight
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=insight-type-id --location=global \ --etag=etag
En el resultado, se muestra la estadística, ahora con el estado ACCEPTED
:
associatedRecommendations: - recommendation: projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/0573b702-96a5-4622-a916-c762e7b0731f category: SECURITY content: condition: description: '' expression: '' location: '' title: '' exercisedPermissions: [] inferredPermissions: [] member: serviceAccount:my-service-account@my-project.iam.gserviceaccount.com role: roles/viewer description: 0 permission checks were authorized by this policy binding tuple. etag: '"d3cdec23cc712bd0"' insightSubtype: PERMISSIONS_USAGE lastRefreshTime: '2020-07-11T07:00:00Z' name: projects/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/0d3ce433-f067-4e78-b6ae-03d7d1f6f040 observationPeriod: 7776000s stateInfo: state: ACCEPTED targetResources: - //cloudresourcemanager.googleapis.com/projects/1234567890
Para saber más sobre la información de estado de una estadística, consulta Revisa las estadísticas 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 de Google Cloudinsight-type-id
: El tipo de estadística que deseas marcar comoACCEPTED
. Para las estadísticas de políticas, usagoogle.iam.policy.Insight
. Para las estadísticas de cuentas de servicio, usagoogle.iam.serviceAccount.Insight
insight-id
: El ID de la estadística que deseas marcar comoACCEPTED
. Para encontrar el ID, enumera las estadísticas en el proyecto. El ID de una estadística es todo lo que se encuentra después deinsights/
en el camponame
de la estadísticaetag
: 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/insight-type-id/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/1234567890/locations/global/insightTypes/google.iam.policy.Insight/insights/07841f74-02ce-4de8-bbe6-fc4eabb68568", "description": "0 permission checks were authorized by this policy binding tuple.", "content": { "role": "roles/viewer", "member": "serviceAccount:my-service-account@my-project.iam.gserviceaccount.com", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [] }, "lastRefreshTime": "2020-07-12T07:00:00Z", "observationPeriod": "7776000s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1234567890/locations/global/recommenders/google.iam.policy.Recommender/recommendations/b1932220-867d-43d1-bd74-fb95876ab656" } ], "targetResources": [ "//cloudresourcemanager.googleapis.com/projects/1234567890" ], "insightSubtype": "PERMISSIONS_USAGE", "etag": "\"b153ab487e4ae100\"" }
Para saber más sobre la información de estado de una estadística, consulta Revisa las estadísticas en esta página.
Próximos pasos
- Obtén más información para ver y aplicar recomendaciones.
- Usa el Centro de recomendaciones a fin de ver y administrar todas las recomendaciones para el proyecto, incluidas las recomendaciones de IAM.
- Supervisa cuándo se usó una cuenta de servicio por última vez con las métricas de uso de la cuenta de servicio.