En esta página se explica cómo gestionar las estadísticas de políticas a nivel de conjunto de datos, que son conclusiones basadas en aprendizaje automático sobre el uso de permisos de tus conjuntos de datos de BigQuery. Las estadísticas de políticas pueden ayudarte a identificar qué principales tienen permisos que no necesitan.
En esta página se explica cómo obtener información valiosa sobre las políticas de los conjuntos de datos. Recomendador también ofrece estadísticas de políticas para los siguientes tipos de recursos:
En ocasiones, las estadísticas de políticas a nivel de conjunto de datos están vinculadas a recomendaciones de roles. Las recomendaciones de roles sugieren acciones que puedes llevar a cabo para solucionar los problemas identificados por las estadísticas de políticas a nivel de conjunto de datos.
Antes de empezar
-
Enable the Recommender API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin
), which contains theserviceusage.services.enable
permission. Learn how to grant roles. - Familiarízate con las recomendaciones de roles de gestión de identidades y accesos.
- Asegúrate de que tienes activado a nivel de organización o de proyecto el nivel Premium o Enterprise de Security Command Center. Para obtener más información, consulta las preguntas sobre la facturación.
- Opcional: Consulta información sobre las estadísticas de Recomendador.
Roles obligatorios
Para obtener los permisos que necesitas para gestionar las estadísticas de políticas a nivel de conjunto de datos, pide a tu administrador que te conceda los siguientes roles de IAM en tu proyecto:
- Propietario de datos de BigQuery (`roles/bigquery.dataOwner`)
- Administrador del recomendador de gestión de identidades y accesos (`roles/recommender.iamAdmin`)
- Gestiona las estadísticas de las políticas a nivel de conjunto de datos con la CLI de gcloud o la API REST: Consumidor de uso de servicios (`roles/serviceusage.serviceUsageConsumer`)
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Estos roles predefinidos contienen los permisos necesarios para gestionar las estadísticas de políticas a nivel de conjunto de datos. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para gestionar las estadísticas de las políticas a nivel de conjunto de datos, se necesitan los siguientes permisos:
-
Para ver estadísticas de políticas a nivel de conjunto de datos, sigue estos pasos:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
Modificar las estadísticas de las políticas a nivel de conjunto de datos:
recommender.iamPolicyInsights.update
-
Gestiona las estadísticas de las políticas a nivel de conjunto de datos con la CLI de gcloud o la API REST:
serviceusage.services.use
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Mostrar estadísticas de políticas a nivel de conjunto de datos
Para enumerar todas las estadísticas de políticas a nivel de conjunto de datos de tu proyecto, utiliza uno de los siguientes métodos:gcloud
Usa el comando gcloud recommender
insights list
para ver todos los consejos sobre políticas a nivel de conjunto de datos de tu
proyecto.
Antes de ejecutar el comando, sustituye los siguientes valores:
PROJECT_ID
: ID del proyecto del que quieres obtener una lista de estadísticas.LOCATION
: la ubicación de los conjuntos de datos de los que quieres obtener estadísticas.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION\ --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"
En la salida se muestran todos los valiosos datos de las políticas a nivel de conjunto de datos de tu proyecto en la ubicación especificada. Por ejemplo:
INSIGHT_ID CATEGORY INSIGHT_STATE LAST_REFRESH_TIME SEVERITY INSIGHT_SUBTYPE DESCRIPTION 101d03ad-6148-4628-943e-fcf1a3af6b57 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 15133dd9-4cbc-41e9-8990-b189241676d8 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 1590aeae-d5bf-4e3d-b7d5-e230212f5faf SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 4 of the permissions in this role binding were used in the past 90 days. 280e5a14-4d09-4ac6-8e14-be7407611ad7 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 0 of the permissions in this role binding were used in the past 90 days. 34102078-085f-45d3-ae72-81da16c75781 SECURITY ACTIVE 2024-02-02T08:00:00Z LOW PERMISSIONS_USAGE_BIGQUERY_DATASET 10 of the permissions in this role binding were used in the past 90 days.
REST
El método insights.list
de la API Recommender muestra todos los detalles de la política a nivel de conjunto de datos de tu proyecto.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
PROJECT_ID
: ID del proyecto del que quieres obtener una lista de estadísticas.LOCATION
: la ubicación de los conjuntos de datos de los que quieres obtener estadísticas.
Método HTTP y URL:
GET https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights?filter=insightSubtype%20%3D%20PERMISSIONS_USAGE_BIGQUERY_DATASET
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta muestra todos los insights de políticas a nivel de conjunto de datos de tu proyecto en la ubicación especificada. Por ejemplo:
{ "insights": [ { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }, { "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/15133dd9-4cbc-41e9-8990-b189241676d8", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataViewer", "member": "projectViewer:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "17" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/bc9b4c28-cc93-4a91-97ea-ff67e3cef1b4" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-2" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"eafa79df1b329063\"", "severity": "LOW" } ] }
Para obtener más información sobre los componentes de una estadística, consulta la sección Revisar estadísticas de políticas a nivel de conjunto de datos de esta página.
Obtener una sola estadística de la política a nivel de conjunto de datos
Para obtener más información sobre una estadística concreta, como su descripción, su estado y las recomendaciones asociadas, utilice uno de los siguientes métodos:
gcloud
Usa el comando gcloud recommender
insights describe
con el ID de la estadística para ver información sobre una sola estadística.
-
INSIGHT_ID
: ID de la estadística que quieres ver. Para encontrar el ID, lista las estadísticas de tu proyecto. PROJECT_ID
: el ID del proyecto del que quieres gestionar las estadísticas.LOCATION
: la ubicación del conjunto de datos del que quieres obtener información valiosa.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION
El resultado muestra la estadística detallada. Por ejemplo, la siguiente estadística indica que todos los usuarios con el rol Editor en el proyecto my-project
(projectEditor:my-project
) tienen el rol Editor de datos de BigQuery (roles/bigquery.dataEditor
) en el conjunto de datos dataset-1
, pero que no se ha usado ninguno de los permisos de ese rol en los últimos 90 días:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACTIVE targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
Para obtener más información sobre los componentes de una estadística, consulta la sección Revisar estadísticas de políticas a nivel de conjunto de datos de esta página.
REST
El método insights.get
de la API Recommender obtiene una sola estadística.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
-
PROJECT_ID
: el ID del proyecto del que quieres gestionar las estadísticas. LOCATION
: la ubicación del conjunto de datos del que quieres obtener información valiosa.-
INSIGHT_ID
: el ID de la estadística que quieres ver. Si no sabes cuál es el ID de la estadística, puedes encontrarlo consultando la lista de estadísticas de tu proyecto. El ID de una estadística es todo lo que hay 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/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la estadística. Por ejemplo, la siguiente estadística indica que todos los usuarios con el rol Editor en el proyecto my-project
(projectEditor:my-project
) tienen el rol Editor de datos de BigQuery (roles/bigquery.dataEditor
) en el conjunto de datos dataset-1
, pero que no se ha usado ninguno de los permisos de ese rol en los últimos 90 días:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACTIVE" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
Para obtener más información sobre los componentes de una estadística, consulta la sección Revisar estadísticas de políticas a nivel de conjunto de datos de esta página.
Consultar estadísticas de políticas a nivel de conjunto de datos
Una vez que obtengas una estadística, puedes revisar su contenido para comprender el patrón de uso de recursos que destaca.
El contenido de una estadística se determina en función de sus subtipos.
La información valiosa sobre políticas a nivel de conjunto de datos (google.iam.policy.Insight
) tiene el subtipo PERMISSIONS_USAGE_BIGQUERY_DATASET
.
Las estadísticas de PERMISSIONS_USAGE_BIGQUERY_DATASET
tienen los siguientes componentes, no necesariamente en este orden:
-
associatedRecommendations
: los identificadores de las recomendaciones asociadas a la estadística. Si no hay recomendaciones asociadas a la estadística, este campo estará vacío. -
category
: La categoría de las estadísticas de gestión de identidades y accesos siempre esSECURITY
. -
content
: informa sobre el uso de permisos de una entidad de seguridad para un rol específico. Este campo contiene los siguientes componentes:condition
: cualquier condición asociada a la vinculación que concede el rol a la cuenta principal. Si no hay ninguna condición, este campo contiene una condición vacía.exercisedPermissions
: los permisos del rol que ha usado la entidad principal durante el periodo de observación.inferredPermissions
: Los permisos del rol que Recommender ha determinado, mediante ML, que es probable que la entidad principal necesite en función de los permisos que ha utilizado.member
: la entidad principal cuyo uso de permisos se ha analizado.role
: el rol para el que se ha analizado el uso del permiso.
-
description
: resumen de la estadística legible por humanos. -
etag
: identificador único del estado actual de una estadística. Cada vez que cambia la estadística, se asigna un nuevo valoretag
.Para cambiar el estado de una estadística, debe proporcionar el
etag
de la estadística en cuestión. El uso deetag
ayuda a asegurarse de que las operaciones solo se realicen si la estadística no ha cambiado desde la última vez que la recuperaste. -
insightSubtype
: el subtipo de estadística. -
lastRefreshTime
: fecha de la última actualización de la estadística, que indica la actualización de los datos utilizados para generarla. -
name
: el nombre de la estadística, con el siguiente formato:projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID
Los marcadores de posición tienen los siguientes valores:
-
PROJECT_ID
: ID del proyecto en el que se ha generado la estadística. LOCATION
: ubicación del conjunto de datos al que se refiere la estadística.INSIGHT_ID
: ID único de la estadística.
-
-
observationPeriod
: el periodo previo a la estadística. Los datos de origen que se han usado para generar la estadística terminan ellastRefreshTime
y empiezan ellastRefreshTime
menosobservationPeriod
. -
stateInfo
: las estadísticas pasan por varias transiciones de estado después de que se proponen:-
ACTIVE
: Se ha generado la estadística, pero no se ha tomado ninguna medida o se ha tomado una medida sin actualizar el estado de la estadística. Los estadísticas activos se actualizan cuando cambian los datos subyacentes. -
ACCEPTED
: se ha tomado alguna medida en función de la estadística. Las estadísticas se aceptan cuando una recomendación asociada se marca comoCLAIMED
,SUCCEEDED
oFAILED
, o bien cuando se aceptan directamente. Cuando una estadística está en el estadoACCEPTED
, su contenido no puede cambiar. Las estadísticas aceptadas se conservan durante 90 días después de aceptarse.
-
-
targetResources
: el nombre completo del recurso del conjunto de datos al que pertenece la estadística. Por ejemplo,//bigquery.googleapis.com/projects/my-project/datasets/my-dataset
.
Marcar una estadística de política a nivel de conjunto de datos como ACCEPTED
Si tomas medidas basándote en una estadística activa, puedes marcarla como
ACCEPTED
. El estado ACCEPTED
indica a la API Recommender que has tomado medidas en función de esta información valiosa, lo que ayuda a mejorar tus recomendaciones.
Las estadísticas aceptadas se conservan durante 90 días después de marcarse como ACCEPTED
.
gcloud
Usa el comando
gcloud recommender insights mark-accepted
con el ID de la estadística para marcarla como ACCEPTED
.
-
INSIGHT_ID
: ID de la estadística que quieres ver. Para encontrar el ID, lista las estadísticas de tu proyecto. PROJECT_ID
: el ID del proyecto del que quieres gestionar las estadísticas.LOCATION
: ubicación del conjunto de datos cuya estadística quieres marcar comoACCEPTED
.-
ETAG
: identificador de una versión de la estadística. Para obtener eletag
, haz lo siguiente:-
Obtén la información valiosa con el comando
gcloud recommender insights describe
. -
Busca y copia el valor de
etag
en el resultado, incluidas las comillas. Por ejemplo,"d3cdec23cc712bd0"
.
-
Obtén la información valiosa con el comando
gcloud recommender insights mark-accepted INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION \ --etag=ETAG
El resultado muestra la estadística, ahora con el estado ACCEPTED
:
associatedRecommendations: - recommendation: projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f951-1ceb-488e-9e49-f17eb21f6e5e category: SECURITY content: condition: description: '' expression: '' location: '' title: '' currentTotalPermissionsCount: '37' exercisedPermissions: [] inferredPermissions: [] member: projectEditor:my-project role: roles/bigquery.dataEditor description: 0 of the permissions in this role binding were used in the past 90 days. etag: '"5f2f352a738f7a24"' insightSubtype: PERMISSIONS_USAGE_BIGQUERY_DATASET lastRefreshTime: '2024-02-04T08:00:00Z' name: projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57 observationPeriod: 7776000s severity: LOW stateInfo: state: ACCEPTED targetResources: - //bigquery.googleapis.com/projects/my-project/datasets/dataset-1
Para obtener más información sobre el estado de una estadística, consulta la sección Revisar estadísticas de políticas a nivel de conjunto de datos de esta página.
REST
El método insights.markAccepted
de la API Recommender marca una estadística como ACCEPTED
.
Antes de usar los datos de la solicitud, haz las siguientes sustituciones:
-
PROJECT_ID
: el ID del proyecto del que quieres gestionar las estadísticas. LOCATION
: ubicación del conjunto de datos cuya estadística quieres marcar comoACCEPTED
.-
INSIGHT_ID
: el ID de la estadística que quieres ver. Si no sabes cuál es el ID de la estadística, puedes encontrarlo consultando la lista de estadísticas de tu proyecto. El ID de una estadística es todo lo que hay después deinsights/
en el camponame
de la estadística. -
ETAG
: identificador de una versión de la estadística. Para obtener eletag
, haz lo siguiente:- Obtén la información valiosa con el método
insights.get
. - Busca y copia el valor
etag
de la respuesta.
- Obtén la información valiosa con el método
Método HTTP y URL:
POST https://recommender.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/insightTypes/google.iam.policy.Insight/insights/INSIGHT_ID:markAccepted
Cuerpo JSON de la solicitud:
{ "etag": "ETAG" }
Para enviar tu solicitud, despliega una de estas opciones:
La respuesta contiene la estadística, ahora con el estado ACCEPTED
:
{ "name": "projects/1069248613794/locations/us/insightTypes/google.iam.policy.Insight/insights/101d03ad-6148-4628-943e-fcf1a3af6b57", "description": "0 of the permissions in this role binding were used in the past 90 days.", "content": { "role": "roles/bigquery.dataEditor", "member": "projectEditor:my-project", "condition": { "expression": "", "title": "", "description": "", "location": "" }, "exercisedPermissions": [], "inferredPermissions": [], "currentTotalPermissionsCount": "37" }, "lastRefreshTime": "2024-02-02T08:00:00Z", "observationPeriod": "7779600s", "stateInfo": { "state": "ACCEPTED" }, "category": "SECURITY", "associatedRecommendations": [ { "recommendation": "projects/1069248613794/locations/us/recommenders/google.iam.policy.Recommender/recommendations/9327f952-1ceb-488e-9e49-f17eb21f6e5e" } ], "targetResources": [ "//bigquery.googleapis.com/projects/my-project/datasets/dataset-1" ], "insightSubtype": "PERMISSIONS_USAGE_BIGQUERY_DATASET", "etag": "\"35d4af47524d3f0c\"", "severity": "LOW" }
Para obtener más información sobre el estado de una estadística, consulta la sección Revisar estadísticas de políticas a nivel de conjunto de datos de esta página.
Siguientes pasos
- Consulta cómo ver y aplicar recomendaciones de políticas a conjuntos de datos de BigQuery.
- Usa el centro de recomendaciones para ver y gestionar todas las recomendaciones de tu proyecto, incluidas las de IAM.