En esta página, se muestra cómo administrar las estadísticas de políticas a nivel del conjunto de datos, que son hallazgos basados en aprendizaje automático sobre el uso de permisos de tu 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 enfocan las estadísticas de políticas para los conjuntos de datos. El recomendador también ofrece políticas observaciones para los siguientes tipos de recursos:
A veces, las estadísticas de políticas a nivel del conjunto de datos se vinculan a recomendaciones de roles. Las recomendaciones de roles sugieren acciones puede tomar para remediar los problemas identificados por las estadísticas de políticas a nivel de conjunto de datos.
Antes de comenzar
-
Enable the Recommender API.
- Familiaríazate con las recomendaciones de función de IAM.
- Lee acerca de las Estadísticas del recomendador (opcional).
Roles obligatorios
A fin de obtener los permisos que necesitas para administrar las estadísticas de políticas a nivel del conjunto de datos, solicita a tu administrador que te otorgue el los siguientes roles de IAM en tu proyecto:
- Propietario de datos de BigQuery ("roles/bigquery.dataOwner")
- Administrador del recomendador de IAM ("roles/recommender.iamAdmin")
- Administra las estadísticas de políticas a nivel del conjunto de datos con la CLI de gcloud o la API de REST: Consumidor de uso de servicio ("roles/serviceusage.serviceUsageConsumer")
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 políticas a nivel del conjunto de datos. 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 políticas a nivel del conjunto de datos:
-
Consulta las estadísticas de políticas a nivel del conjunto de datos:
-
recommender.iamPolicyInsights.get
-
recommender.iamPolicyInsights.list
-
-
Modifica las estadísticas de políticas a nivel del conjunto de datos:
recommender.iamPolicyInsights.update
-
Administra las estadísticas de políticas a nivel de conjunto de datos con gcloud CLI o la API de REST:
serviceusage.services.use
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Enumera las estadísticas de políticas a nivel del conjunto de datos
Para enumerar todas las estadísticas de políticas a nivel del conjunto de datos 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 políticas a nivel del conjunto de datos de tu proyecto.
Antes de ejecutar el comando, reemplaza los siguientes valores:
PROJECT_ID
: el ID del proyecto para el que deseas enumerar las estadísticas.LOCATION
: Es la ubicación de la conjuntos de datos cuyas estadísticas quieres enumerar.
gcloud recommender insights list --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION\ --filter="insightSubtype:PERMISSIONS_USAGE_BIGQUERY_DATASET"
En el resultado, se enumeran todas las estadísticas de políticas a nivel del 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 de Recommender enumera todas las estadísticas de políticas a nivel del conjunto de datos para tu 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.LOCATION
: La ubicación de los conjuntos de datos cuyas estadísticas deseas enumerar.
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, expande una de estas opciones:
En la respuesta, se enumeran todas las estadísticas de políticas a nivel del 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 Revisa las estadísticas de políticas a nivel del conjunto de datos en esta página.
Obtén una sola estadística de políticas a nivel del conjunto de datos
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 correspondientes a en un proyecto final. PROJECT_ID
: El ID del proyecto para el que deseas administrar las estadísticasLOCATION
: Es la ubicación del conjunto de datos cuya estadística deseas obtener.
gcloud recommender insights describe INSIGHT_ID \ --insight-type=google.iam.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION
En el resultado, se muestra la estadística en detalle. Por ejemplo, la siguiente estadística indica que todos los usuarios con el rol de editor en el proyecto my-project
(projectEditor:my-project
) tienen el rol de editor de datos de BigQuery (roles/bigquery.dataEditor
) en el conjunto de datos dataset-1
, pero que no se usó 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 Revisa estadísticas de políticas a nivel del conjunto de datos 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. LOCATION
: Es la ubicación de la del conjunto de datos cuya estadística quieres obtener.-
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/LOCATION/insightTypes/google.iam.policy.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 todos los usuarios con el rol Editor en el proyecto
my-project
(projectEditor:my-project
) tiene el rol de Editor de datos de BigQuery
(roles/bigquery.dataEditor
) en el conjunto de datos dataset-1
, pero que ninguno de los
permisos en ese rol se usaron 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 Revisa estadísticas de políticas a nivel del conjunto de datos en esta página.
Revisa las estadísticas de las políticas a nivel del conjunto de datos
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.
Estadísticas de políticas a nivel del conjunto de datos (google.iam.policy.Insight
)
tienen el subtipo PERMISSIONS_USAGE_BIGQUERY_DATASET
.
Las estadísticas de PERMISSIONS_USAGE_BIGQUERY_DATASET
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 el uso de los permisos de una principal para una función específica. En este campo, se encuentran los siguientes componentes:condition
: Cualquier condición relacionada con la vinculación que otorga la función a la principal. Si no hay condiciones, este campo contiene una condición vacía.exercisedPermissions
: Los permisos en el rol que la principal usó durante el período de observacióninferredPermissions
: Los permisos en el rol que el recomendador de IAM determinó a través del AA, que es probable que la principal necesite según los permisos que ejerció.member
: la principal cuyo uso de permisos se analizórole
: La función para la cual se analizó el uso de permisos
-
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/LOCATION/insightTypes/google.iam.policy.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ísticaLOCATION
: Es la ubicación de la conjunto de datos al que corresponde la estadística.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
: Es el nombre completo del recurso del conjunto de datos para el que se creó la estadística. Por ejemplo,//bigquery.googleapis.com/projects/my-project/datasets/my-dataset
.
Marca una estadística de política a nivel del conjunto de datos 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ísticasLOCATION
: Es la ubicación de la conjunto de datos cuya estadística deseas marcar comoACCEPTED
.-
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.policy.Insight \ --project=PROJECT_ID \ --location=LOCATION \ --etag=ETAG
En el resultado, se 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 la información de estado de una estadística, consulta Revisa las estadísticas de políticas a nivel del conjunto de datos 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. LOCATION
: La ubicación del conjunto de datos cuya estadística deseas marcar comoACCEPTED
.-
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 -
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/LOCATION/insightTypes/google.iam.policy.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/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 la información de estado de una estadística, consulta Revisa estadísticas de políticas a nivel del conjunto de datos en esta página.
¿Qué sigue?
- Aprende a ver y aplicar recomendaciones de políticas para los conjuntos de datos de BigQuery.
- Usa el Centro de recomendaciones a fin de ver y administrar todas las recomendaciones para el proyecto, incluidas las recomendaciones de IAM.