Control de acceso

Cloud Monitoring controla el acceso a los datos de supervisión en los lugares de trabajo mediante funciones y permisos de la administración de identidades y accesos (IAM).

Controles del servicio de VPC

Además de IAM, se pueden usar los controles del servicio de VPC para controlar aún más el acceso a los datos de supervisión.

Los Controles del servicio de VPC brindan seguridad adicional para Cloud Monitoring a fin de mitigar el riesgo de robo de datos. Con los Controles del servicio de VPC, puedes agregar espacios de trabajo a los perímetros de servicios que protejan los recursos y servicios de Cloud Monitoring de las solicitudes que se originan fuera del perímetro.

Para obtener más información sobre los perímetros de servicio, consulta la documentación de la configuración del perímetro de servicio de los controles del servicio de VPC.

Para obtener más detalles sobre la compatibilidad de Monitoring con los controles del servicio de VPC, incluidas las limitaciones conocidas, consulta la documentación los controles del servicio de VPC de Monitoring.

Descripción general de IAM de Monitoring

Para usar Monitoring, debes tener los permisos de IAM adecuados otorgados al lugar de trabajo.

En general, cada método REST en una API tiene un permiso asociado, y debes tener el permiso para usar el método correspondiente. Los permisos no se otorgan directamente a los usuarios. En cambio, los permisos se otorgan indirectamente a través de funciones, que agrupan varios permisos para facilitar su administración. Si deseas obtener más información sobre estos conceptos, consulta Conceptos relacionados con la administración del acceso.

Las funciones para combinaciones comunes de permisos están predefinidas, pero también puedes crear tus propias combinaciones de permisos si creas funciones personalizadas de IAM.

Funciones predefinidas

Las siguientes funciones de IAM están predefinidas por Cloud Monitoring. Estas otorgan permisos solo para Monitoring.

Monitoring

Las siguientes funciones otorgan permisos generales para Monitoring:

ID de la función
Nombre de la función
Descripción
roles/monitoring.viewer
Visualizador de Monitoring
Te da acceso de solo lectura a Monitoring en Google Cloud Console y la API.
roles/monitoring.editor
Editor de Monitoring
Otorga acceso de lectura y escritura a Monitoring en Google Cloud Console y la API,
y te permite crear un lugar de trabajo.
roles/monitoring.admin
Administrador de Monitoring
Otorga acceso completo a Monitoring en Google Cloud Console y te permite crear un lugar de trabajo.

Las cuentas de servicio usan la siguiente función para el acceso de solo escritura:

ID de la función
Nombre de la función
Descripción
roles/monitoring.metricWriter
Escritor de métricas de Monitoring
Permite escribir datos de supervisión en un lugar de trabajo; no permite el acceso a Monitoring en Google Cloud Console. Para cuentas de servicio.

Políticas de alertas

Las siguientes funciones otorgan permisos solo para políticas de alertas:

ID de la función
Nombre de la función
Descripción
roles/monitoring.alertPolicyViewer
Visualizador de políticas de alertas de Monitoring
Otorga acceso de solo lectura a las políticas de alertas
roles/monitoring.alertPolicyEditor
Editor de políticas de alertas de Monitoring
Otorga acceso de lectura y escritura a las políticas de alertas

Paneles

Las siguientes funciones otorgan permisos solo para los paneles:

ID de la función
Nombre de la función
Descripción
roles/monitoring.dashboardViewer
Visualizador de configuración del panel de Monitoring
Otorga acceso de solo lectura a la configuración del panel
roles/monitoring.dashboardEditor
Editor de configuración del panel de Monitoring
Otorga acceso de lectura y escritura a la configuración del panel

Canales de notificación

Las siguientes funciones otorgan permisos solo para los canales de notificaciones:

ID de la función
Nombre de la función
Descripción
roles/monitoring.notificationChannelViewer
Visualizador de canales de notificaciones de Monitoring
Otorga acceso de solo lectura a los canales de notificaciones
roles/monitoring.notificationChannelEditor
Editor de canales de notificaciones de Monitoring
Otorga acceso de lectura y escritura a los canales de notificaciones.

Supervisión de servicios

Las siguientes funciones otorgan permisos para administrar servicios:

ID de la función
Nombre de la función
Descripción
roles/monitoring.servicesViewer
Visualizador de servicios de Monitoring
Otorga acceso de solo lectura a los servicios
roles/monitoring.servicesEditor
Editor de servicios de Monitoring
Otorga acceso de lectura y escritura a los servicios

Para obtener más información sobre la supervisión de servicios, consulta Supervisión de SLO.

Configuración de verificaciones de tiempo de actividad

Las siguientes funciones otorgan permisos solo para la configuración de verificaciones de tiempo de actividad:

ID de la función
Nombre de la función
Descripción
roles/monitoring.uptimeCheckConfigViewer
Visualizador de configuración de verificaciones de tiempo de actividad de Monitoring
Otorga acceso de solo lectura a la configuración de verificaciones de tiempo de actividad
roles/monitoring.uptimeCheckConfigEditor
Editor de configuración de verificaciones de tiempo de actividad de Monitoring
Otorga acceso de lectura y escritura a la configuración de verificaciones del tiempo de actividad

Lugares de trabajo

Para crear o administrar un lugar de trabajo, debes usar Google Cloud Console. A fin de obtener información sobre las funciones necesarias para crear un lugar de trabajo, consulta las funciones predefinidas de Monitoring.

Google Cloud

Las siguientes funciones otorgan permisos para muchos servicios y recursos en Google Cloud, incluido Monitoring:

ID de la función
Nombre de la función
Descripción
roles/viewer
Visualizador del proyecto
Te da acceso de solo lectura a Monitoring en Google Cloud Console y la API.
roles/editor
Editor del proyecto
Te otorga acceso de lectura/escritura a Monitoring en Google Cloud Console y la API
y te permite usar un lugar de trabajo existente. No puedes crear un lugar de trabajo con esta función.
roles/owner
Propietario del proyecto
Otorga acceso completo a Monitoring en Google Cloud Console y a la API,
y te permite crear un lugar de trabajo.

Funciones personalizadas

También puedes crear tus propias funciones personalizadas que contengan listas de permisos. Para obtener más detalles acerca de las funciones y los permisos, ve a Permisos y funciones y Funciones personalizadas en esta página.

Permisos y funciones

En esta sección, se enumeran los permisos y funciones de IAM que se aplican a Monitoring.

Permisos de la API

Cada método API de Monitoring requiere un permiso de IAM específico, como se muestra en la siguiente tabla.

Método de la API de Monitoring Permiso Tipo de recurso
projects.alertPolicies.create monitoring.alertPolicies.create proyecto1
projects.alertPolicies.delete monitoring.alertPolicies.delete AlertPolicy
projects.alertPolicies.get monitoring.alertPolicies.get AlertPolicy
projects.alertPolicies.list monitoring.alertPolicies.list proyecto1
projects.alertPolicies.patch monitoring.alertPolicies.update AlertPolicy
projects.dashboards.create monitoring.dashboards.create proyecto1
projects.dashboards.delete monitoring.dashboards.delete proyecto1
projects.dashboards.get monitoring.dashboards.get proyecto1
projects.dashboards.list monitoring.dashboards.list proyecto1
projects.dashboards.patch monitoring.dashboards.update proyecto1
projects.groups.create monitoring.groups.create proyecto1
projects.groups.delete monitoring.groups.delete Group
projects.groups.get monitoring.groups.get Group
projects.groups.list monitoring.groups.list proyecto1
projects.groups.update monitoring.groups.update Group
projects.groups.members.list monitoring.groups.get Group
projects.metricDescriptors.create monitoring.metricDescriptors.create proyecto
projects.metricDescriptors.delete monitoring.metricDescriptors.delete MetricDescriptor
projects.metricDescriptors.get monitoring.metricDescriptors.get MetricDescriptor
projects.metricDescriptors.list monitoring.metricDescriptors.list proyecto
projects.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.get MonitoredResourceDescriptor
projects.monitoredResourceDescriptors.list monitoring.monitoredResourceDescriptors.list proyecto
projects.notificationChannelDescriptors.get monitoring.notificationChannelDescriptors.get NotificationChannelDescriptor
projects.notificationChannelDescriptors.list monitoring.notificationChannelDescriptors.list proyecto1
projects.notificationChannels.create monitoring.notificationChannels.create proyecto1
projects.notificationChannels.delete monitoring.notificationChannels.delete NotificationChannel
projects.notificationChannels.get monitoring.notificationChannels.get NotificationChannel
projects.notificationChannels.getVerificationCode monitoring.notificationChannels.getVerificationCode NotificationChannel
projects.notificationChannels.list monitoring.notificationChannels.list proyecto1
projects.notificationChannels.patch monitoring.notificationChannels.update NotificationChannel
projects.notificationChannels.sendVerificationCode monitoring.notificationChannels.sendVerificationCode NotificationChannel
projects.notificationChannels.verify monitoring.notificationChannels.verify NotificationChannel
projects.services.create monitoring.services.create proyecto1
projects.services.delete monitoring.services.delete Service
projects.services.get monitoring.services.get Service
projects.services.list monitoring.services.list proyecto1
projects.services.patch monitoring.services.update Service
projects.services.serviceLevelObjectives.create monitoring.slos.create proyecto1
projects.services.serviceLevelObjectives.delete monitoring.slos.delete ServiceLevelObjective
projects.services.serviceLevelObjectives.get monitoring.slos.get ServiceLevelObjective
projects.services.serviceLevelObjectives.list monitoring.slos.list proyecto1
projects.services.serviceLevelObjectives.patch monitoring.slos.update ServiceLevelObjective
projects.timeSeries.create monitoring.timeSeries.create proyecto
projects.timeSeries.list monitoring.timeSeries.list proyecto
projects.timeSeries.query monitoring.timeSeries.list project
projects.uptimeCheckConfigs.create monitoring.uptimeCheckConfigs.create UptimeCheckConfig
projects.uptimeCheckConfigs.delete monitoring.uptimeCheckConfigs.delete UptimeCheckConfig
projects.uptimeCheckConfigs.get monitoring.uptimeCheckConfigs.get UptimeCheckConfig
projects.uptimeCheckConfigs.list monitoring.uptimeCheckConfigs.list UptimeCheckConfig
projects.uptimeCheckConfigs.patch monitoring.uptimeCheckConfigs.update UptimeCheckConfig

1 El proyecto debe estar en un lugar de trabajo.

Permisos de Console para Monitoring

Cada función de Monitoring en Google Cloud Console requiere que tengas el permiso para la API que se usa con el fin de implementarla. Por ejemplo, la capacidad de explorar grupos requiere que tengas permiso para los métodos list y get aplicables a grupos y miembros del grupo. Es posible que pierdas la funcionalidad si se revocan los permisos necesarios.

En la siguiente tabla, se enumeran los permisos necesarios para usar Monitoring en Google Cloud Console:

activity Permisos necesarios Para el tipo de recurso
Acceso completo de solo lectura El conjunto de permisos incluidos en la función roles/monitoring.viewer proyecto1
Consola de acceso de lectura y escritura El conjunto de permisos incluidos en la función roles/monitoring.editor proyecto1
Acceso completo a la consola El conjunto de permisos incluidos en la función roles/monitoring.admin proyecto1

1 El proyecto debe estar en un lugar de trabajo.

Funciones

En la siguiente tabla, se enumeran las funciones de IAM que otorgan acceso a Monitoring y los permisos asociados con cada función. Varias de estas funciones están graduadas: por ejemplo, la función roles/monitoring.editor incluye todos los permisos de la función roles/monitoring.viewer, más un conjunto adicional de permisos.

Las funciones se pueden asignar solo a nivel de proyecto y los proyectos deben estar en los lugares de trabajo.

Supervisa

Las funciones de Monitoring incluyen los siguientes permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.viewer
Visualizador de Monitoring
cloudnotifications.activities.list
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.dashboards.get
monitoring.dashboards.list
monitoring.groups.get
monitoring.groups.list
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
monitoring.publicWidgets.get
monitoring.publicWidgets.list
monitoring.services.get
monitoring.services.list
monitoring.slos.get
monitoring.slos.list
monitoring.timeSeries.list
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
resourcemanager.projects.get
resourcemanager.projects.list
stackdriver.projects.get
roles/monitoring.editor
Editor de Monitoring
cloudnotifications.activities.list
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update
monitoring.dashboards.create
monitoring.dashboards.delete
monitoring.dashboards.get
monitoring.dashboards.list
monitoring.dashboards.update
monitoring.groups.create
monitoring.groups.delete
monitoring.groups.get
monitoring.groups.list
monitoring.groups.update
monitoring.metricDescriptors.create
monitoring.metricDescriptors.delete
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannels.create
monitoring.notificationChannels.delete
monitoring.notificationChannels.get
monitoring.notificationChannels.list
monitoring.notificationChannels.sendVerificationCode
monitoring.notificationChannels.update
monitoring.notificationChannels.verify
monitoring.publicWidgets.create
monitoring.publicWidgets.delete
monitoring.publicWidgets.get
monitoring.publicWidgets.list
monitoring.publicWidgets.update
monitoring.services.create
monitoring.services.delete
monitoring.services.get
monitoring.services.list
monitoring.services.update
monitoring.slos.create
monitoring.slos.delete
monitoring.slos.get
monitoring.slos.list
monitoring.slos.update
monitoring.timeSeries.create
monitoring.timeSeries.list
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update
opsconfigmonitoring.resourceMetadata.write
resourcemanager.projects.get
resourcemanager.projects.list
serviceusage.services.enable
stackdriver.projects.edit
stackdriver.projects.get
stackdriver.resourceMetadata.write
roles/monitoring.admin
Administrador de Monitoring
Los permisos en roles/monitoring.editor, más lo siguiente:
monitoring.notificationChannels.getVerificationCode

Las cuentas de servicio usan la siguiente función para el acceso de solo escritura:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.metricWriter
Escritor de métricas de Monitoring
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create

Políticas de alertas

Las funciones de política de alertas incluyen los siguientes permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.alertPolicyViewer
Visualizador de políticas de alertas de Monitoring
monitoring.alertPolicies.get
monitoring.alertPolicies.list
roles/monitoring.alertPolicyEditor
Editor de políticas de alertas de Monitoring
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update

Paneles

Las funciones de paneles incluyen estos permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.dashboardViewer
Visualizador de configuración del panel de Monitoring
monitoring.dashboards.get
monitoring.dashboards.list
roles/monitoring.dashboardEditor
Editor de configuración del panel de Monitoring
monitoring.dashboards.get
monitoring.dashboards.list
monitoring.dashboards.create
monitoring.dashboards.delete
monitoring.dashboards.update

Canales de notificación

Las funciones de los canales de notificación incluyen los siguientes permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.notificationChannelViewer
Visualizador de canales de notificaciones de Monitoring
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
roles/monitoring.notificationChannelEditor
Editor de canales de notificaciones de Monitoring
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.create
monitoring.notificationChannels.delete
monitoring.notificationChannels.get
monitoring.notificationChannels.list
monitoring.notificationChannels.sendVerificationCode
monitoring.notificationChannels.update
monitoring.notificationChannels.verify

Supervisión de servicios

Las funciones de supervisión de servicios incluyen estos permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.servicesViewer
Visualizador de servicios de Monitoring
monitoring.services.get
monitoring.services.list
monitoring.slos.get
monitoring.slos.list
roles/monitoring.servicesEditor
Editor de servicios de Monitoring
monitoring.services.create
monitoring.services.delete
monitoring.services.get
monitoring.services.list
monitoring.services.update
monitoring.slos.create
monitoring.slos.delete
monitoring.slos.get
monitoring.slos.list
monitoring.slos.update

Configuración de verificaciones de tiempo de actividad

Las funciones de configuración de verificaciones de tiempo de actividad incluyen estos permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/monitoring.uptimeCheckConfigViewer
Visualizador de configuración de verificaciones de tiempo de actividad de Monitoring
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
roles/monitoring.uptimeCheckConfigEditor
Editor de configuración de verificaciones de tiempo de actividad de Monitoring
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update

Configuración de los lugares de trabajo

Para crear o administrar un lugar de trabajo, debes usar Google Cloud Console. A fin de obtener información sobre las funciones necesarias para crear un lugar de trabajo, consulta las funciones predefinidas de Monitoring.

Google Cloud

Las funciones de Google Cloud incluyen estos permisos:

ID de la función
Nombre de la función
Permisos incluidos
roles/viewer
Visualizador del proyecto
Los permisos de Monitoring son los mismos que los de roles/monitoring.viewer.
roles/editor
Editor del proyecto
Los permisos de Monitoring son los mismos que los de roles/monitoring.editor.
roles/owner
Propietario del proyecto
Los permisos de Monitoring son los mismos que los de roles/editor.

Otorga funciones de IAM

Los propietarios del proyecto, los editores y las cuentas de servicio predeterminadas de Compute Engine y App Engine ya tienen los permisos necesarios. Sin embargo, para otras cuentas de usuario, es posible que debas otorgar estas funciones de forma explícita.

Por ejemplo, para que una cuenta de usuario lea o escriba descriptores de métricas mediante la API de Monitoring, ese usuario debe tener los permisos monitoring.metricDescriptors.* de IAM adecuados. Para ello, otorga las funciones predefinidas de Visualizador de Monitoring (roles/monitoring.viewer) y Editor de Monitoring (roles/monitoring.editor). Para obtener más información, consulta los permisos de la API.

Estos permisos se pueden otorgar con la herramienta de línea de comandos de gcloud de SDK de Cloud o con Google Cloud Console (Cloud Console).

SDK de Cloud

Usa el comando gcloud projects add-iam-policy-binding para otorgar la función monitoring.viewer o monitoring.editor.

Por ejemplo:

export PROJECT_ID="my-test-project"
export EMAIL_ADDRESS="myuser@gmail.com"
gcloud projects add-iam-policy-binding \
      $PROJECT_ID \
      --member="user:$EMAIL_ADDRESS" \
      --role="roles/monitoring.editor"

Puedes confirmar las funciones otorgadas con el comando gcloud projects get-iam-policy:

export PROJECT_ID="my-test-project"
gcloud projects get-iam-policy $PROJECT_ID

Cloud Console

  1. Visita Cloud Console:

    Ir a Cloud Console

  2. Si es necesario, haz clic en la lista desplegable de proyectos de Google Cloud y selecciona el nombre del proyecto en el que deseas habilitar la API.

  3. Para expandir el menú de navegación, haz clic en Menú .

  4. Haz clic en IAM y administración.

  5. Si el usuario es miembro, haz clic en Editar para modificar sus permisos. Puedes modificar la función existente o agregar una función adicional. Para guardar los cambios, haz clic en Guardar.

  6. Si el usuario no es miembro, haz lo siguiente:

    1. Haga clic en Add.
    2. Ingresa el nombre de usuario en el cuadro de texto Nuevos miembros.
    3. En Selecciona una función, haga clic en Menú .
    4. En la barra de filtros , ingresa la función adecuada:
      • La función Editor de Monitoring otorga acceso de lectura y escritura.
      • La función Visualizador de Monitoring otorga acceso de solo lectura.

Funciones personalizadas

Para crear una función personalizada con permisos de Monitoring, realiza las siguientes acciones:

  • Para una función que otorgue permisos solo a la API de Monitoring, elige los permisos en la sección de Permisos de la API.

  • Para una función que otorgue permisos para Monitoring en Google Cloud Console, elige entre grupos de permisos en la sección Permisos de Console para Monitoring.

  • Para otorgar la capacidad de escribir datos de supervisión, incluye los permisos de la función roles/monitoring.metricWriter en la sección Funciones.

Para obtener más información sobre las funciones personalizadas, consulta Comprende las funciones personalizadas de IAM.

Permisos de acceso de Compute Engine

Los niveles de acceso son el método heredado de especificar permisos para tus instancias de VM de Compute Engine. Los siguientes niveles de acceso se aplican a Monitoring:

Nivel de acceso Permisos otorgados
https://www.googleapis.com/auth/monitoring.read Los mismos permisos que en roles/monitoring.viewer
https://www.googleapis.com/auth/monitoring.write Los mismos permisos que en roles/monitoring.metricWriter
https://www.googleapis.com/auth/monitoring Acceso completo a Monitoring
https://www.googleapis.com/auth/cloud-platform Acceso completo a todas las API de Cloud habilitadas

Para obtener más información, consulta Permisos de acceso.

Prácticas recomendadas: Debido a que las funciones de IAM de la cuenta de servicio son fáciles de configurar y cambiar, se recomienda configurar las instancias de VM con el permiso de acceso más eficaz (cloud-platform) y, luego, usar las funciones de IAM para restringir el acceso a operaciones y API específicas. Para obtener más información, consulta Permisos de la cuenta de servicio.