Controle de acesso

O Cloud Monitoring controla o acesso a dados de monitoramento nos espaços de trabalho. Para isso, são usados os papéis e permissões de gerenciamento de identidade e acesso (IAM, na sigla em inglês).

VPC Service Controls

Além do IAM, o VPC Service Controls pode ser usado para controlar melhor o acesso aos dados de monitoramento.

O VPC Service Controls oferece segurança adicional para o Cloud Monitoring, o que ajuda a reduzir o risco de filtração externa de dados. Ao usar o VPC Service Controls, você pode adicionar os espaços de trabalho a perímetros de serviço que protegem os recursos e serviços do Cloud Monitoring de solicitações originadas fora do perímetro.

Para saber mais sobre os perímetros de serviço, consulte a documentação de configuração do perímetro de serviço do VPC Service Controls.

Para mais detalhes sobre o suporte do Monitoring para o VPC Service Controls, incluindo limitações conhecidas, consulte a documentação do VPC Service Controls do Monitoring.

Visão geral do IAM do Monitoring

Para usar o Monitoring, é preciso ter as permissões apropriadas do IAM concedidas no espaço de trabalho.

Em geral, cada método REST em uma API tem uma permissão associada, e você precisa ter permissão para usar o método correspondente. As permissões não são concedidas diretamente aos usuários. Em vez disso, elas são concedidas indiretamente por meio de papéis, que agrupam várias permissões para facilitar o gerenciamento delas. Para mais informações sobre esses conceitos, acesse a documentação do IAM sobre papéis, permissões e conceitos relacionados.

Os papéis que fornecem combinações comuns de permissões já estão predefinidos para você. No entanto, também é possível criar suas próprias combinações de permissões gerando papéis personalizados do IAM.

Papéis predefinidos

Os papéis do IAM a seguir são predefinidos pelo Cloud Monitoring. Eles concedem permissões apenas para o Monitoring.

Monitoring

Os papéis a seguir concedem permissões gerais para o Monitoring:

ID do papel
Nome do papel
Descrição
roles/monitoring.viewer
Visualizador do Monitoring
Concede a você acesso somente leitura ao Monitoring no Console do Google Cloud e na API.
roles/monitoring.editor
Editor do Monitoring
Oferece acesso de leitura e gravação ao Monitoring no Console do Google Cloud e na API,
e permite criar um espaço de trabalho.
roles/monitoring.admin
Administrador do Monitoring
Oferece acesso total ao Monitoring no Console do Google Cloud e permite criar um espaço de trabalho.

O papel a seguir é usado pelas contas de serviço para acesso somente de gravação:

ID do papel
Nome do papel
Descrição
roles/monitoring.metricWriter
Gravador de métricas do Monitoring
Permite gravar dados de monitoramento em um espaço de trabalho. Não permite o acesso ao Monitoring no Console do Google Cloud. Para contas de serviço.

Políticas de alertas

Os papéis a seguir concedem permissões apenas para políticas de alertas:

ID do papel
Nome do papel
Descrição
roles/monitoring.alertPolicyViewer
Visualizador de AlertPolicy do Monitoring
Oferece acesso somente leitura a políticas de alertas
roles/monitoring.alertPolicyEditor
Editor de AlertPolicy do Monitoring
Oferece acesso de leitura e gravação a políticas de alertas

Painéis

Os papéis a seguir concedem permissões somente para painéis:

ID do papel
Nome do papel
Descrição
roles/monitoring.dashboardViewer
Visualizador de configuração de painel do Monitoring
Oferece acesso somente leitura às configurações do painel
roles/monitoring.dashboardEditor
Editor de configuração de painel do Monitoring
Oferece acesso de leitura e gravação às configurações do painel

Canais de notificação

Os papéis a seguir concedem permissões apenas para canais de notificação:

ID do papel
Nome do papel
Descrição
roles/monitoring.notificationChannelViewer
Visualizador de NotificationChannel do Monitoring
Oferece acesso somente leitura a canais de notificação
roles/monitoring.notificationChannelEditor
Editor de NotificationChannel do Monitoring
Oferece acesso de leitura e gravação a canais de notificação

Monitoramento do serviço

Os papéis a seguir concedem permissões para o gerenciamento de serviços:

ID do papel
Nome do papel
Descrição
roles/monitoring.servicesViewer
Visualizador dos serviços do Monitoring
Oferece acesso somente leitura aos serviços
roles/monitoring.servicesEditor
Editor dos serviços do Monitoring
Oferece acesso de leitura e gravação aos serviços

Para mais informações sobre o monitoramento de serviços, consulte Monitoramento de SLO.

Configurações da verificação de tempo de atividade

Os papéis a seguir concedem permissões somente para configurações da verificação de tempo de atividade:

ID do papel
Nome do papel
Descrição
roles/monitoring.uptimeCheckConfigViewer
Visualizador de configurações de verificação de tempo de atividade do Monitoring
Oferece acesso somente leitura a configurações de verificação de tempo de atividade
roles/monitoring.uptimeCheckConfigEditor
Editor de configurações de verificação de tempo de atividade do Monitoring
Oferece acesso de leitura e gravação a configurações de verificação de tempo de atividade

Espaços de trabalho

Para criar ou gerenciar um espaço de trabalho, você precisa usar o Console do Google Cloud. Para informações sobre os papéis necessários para criar um espaço de trabalho, consulte papéis predefinidos do Monitoring.

Google Cloud

Os papéis a seguir concedem permissões para muitos serviços e recursos no Google Cloud, incluindo o Monitoring:

ID do papel
Nome do papel
Descrição
roles/viewer
Visualizador do projeto
Concede a você acesso somente leitura ao Monitoring no Console do Google Cloud e na API.
roles/editor
Editor do projeto
Concede acesso de leitura e gravação ao Monitoring no Console do Google Cloud e na API
e permite que você use um espaço de trabalho existente. Não é possível criar um espaço de trabalho com esse papel.
roles/owner
Proprietário do projeto
Oferece acesso total ao Monitoring no Console do Google Cloud e na API
e permite criar um espaço de trabalho.

Papéis personalizados

É possível também criar seus próprios papéis personalizados contendo listas de permissões. Para mais detalhes sobre papéis e permissões, consulte Permissões e papéis e Papéis personalizados nesta página.

Permissões e papéis

Nesta seção, listamos as permissões e papéis do IAM que se aplicam ao Monitoring.

Permissões da API

Cada método da API Monitoring requer uma permissão específica do IAM, conforme listado na tabela a seguir.

Método da API Monitoring Permissão Tipo de recurso
projects.alertPolicies.create monitoring.alertPolicies.create project1
projects.alertPolicies.delete monitoring.alertPolicies.delete AlertPolicy
projects.alertPolicies.get monitoring.alertPolicies.get AlertPolicy
projects.alertPolicies.list monitoring.alertPolicies.list project1
projects.alertPolicies.patch monitoring.alertPolicies.update AlertPolicy
projects.dashboards.create monitoring.dashboards.create project1
projects.dashboards.delete monitoring.dashboards.delete project1
projects.dashboards.get monitoring.dashboards.get project1
projects.dashboards.list monitoring.dashboards.list project1
projects.dashboards.patch monitoring.dashboards.update project1
projects.groups.create monitoring.groups.create project1
projects.groups.delete monitoring.groups.delete Group
projects.groups.get monitoring.groups.get Group
projects.groups.list monitoring.groups.list project1
projects.groups.update monitoring.groups.update Group
projects.groups.members.list monitoring.groups.get Group
projects.metricDescriptors.create monitoring.metricDescriptors.create projeto
projects.metricDescriptors.delete monitoring.metricDescriptors.delete MetricDescriptor
projects.metricDescriptors.get monitoring.metricDescriptors.get MetricDescriptor
projects.metricDescriptors.list monitoring.metricDescriptors.list projeto
projects.monitoredResourceDescriptors.get monitoring.monitoredResourceDescriptors.get MonitoredResourceDescriptor
projects.monitoredResourceDescriptors.list monitoring.monitoredResourceDescriptors.list projeto
projects.notificationChannelDescriptors.get monitoring.notificationChannelDescriptors.get NotificationChannelDescriptor
projects.notificationChannelDescriptors.list monitoring.notificationChannelDescriptors.list project1
projects.notificationChannels.create monitoring.notificationChannels.create project1
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 project1
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 project1
projects.services.delete monitoring.services.delete Service
projects.services.get monitoring.services.get Service
projects.services.list monitoring.services.list project1
projects.services.patch monitoring.services.update Service
projects.services.serviceLevelObjectives.create monitoring.slos.create project1
projects.services.serviceLevelObjectives.delete monitoring.slos.delete ServiceLevelObjective
projects.services.serviceLevelObjectives.get monitoring.slos.get ServiceLevelObjective
projects.services.serviceLevelObjectives.list monitoring.slos.list project1
projects.services.serviceLevelObjectives.patch monitoring.slos.update ServiceLevelObjective
projects.timeSeries.create monitoring.timeSeries.create projeto
projects.timeSeries.list monitoring.timeSeries.list projeto
projects.timeSeries.query monitoring.timeSeries.list projeto
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 O projeto precisa estar em um espaço de trabalho.

Permissões do console para o Monitoring

Cada recurso do Monitoring no Console do Google Cloud requer que você tenha a permissão da API usada para implementar o recurso. Por exemplo, a capacidade de procurar grupos exige que você tenha permissão para os métodos list e get aplicáveis aos grupos e aos membros deles. Você pode perder a funcionalidade se as permissões necessárias forem revogadas.

A tabela a seguir lista as permissões necessárias para usar o Monitoring no Console do Google Cloud:

activity Permissões exigidas Por tipo de recurso
Acesso completo somente leitura O conjunto de permissões incluídas no papel roles/monitoring.viewer projeto1.
Console de acesso de leitura e gravação O conjunto de permissões incluídas no papel roles/monitoring.editor projeto1.
Acesso total ao console O conjunto de permissões incluídas no papel roles/monitoring.admin projeto1.

1 O projeto precisa estar em um espaço de trabalho.

Papéis

Na tabela a seguir, listamos os papéis do IAM que concedem acesso ao Monitoring e as permissões associadas a cada papel. Vários desses papéis são gradativos: por exemplo, roles/monitoring.editor inclui todas as permissões de roles/monitoring.viewer e mais um conjunto de permissões.

É possível atribuir os papéis apenas para envolvidos no projeto, e os projetos precisam estar em espaços de trabalho.

Monitorar

Os papéis do Monitoring incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.viewer
Visualizador do Monitoring
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.analyzedMetrics.get1
monitoring.analyzedMetrics.list1
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
opsconfigmonitoring.resourceMetadata.list
resourcemanager.projects.get
resourcemanager.projects.list
stackdriver.projects.get
roles/monitoring.editor
Editor do Monitoring
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update
monitoring.analyzedMetrics.create1
monitoring.analyzedMetrics.delete1
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
stackdriver.projects.edit
stackdriver.projects.get
stackdriver.resourceMetadata.write
roles/monitoring.admin
Administrador do Monitoring
As permissões em roles/monitoring.editor, além do seguinte:
monitoring.notificationChannels.getVerificationCode

1 Essas permissões estão presentes para dar suporte ao Monitoring no Console do Google Cloud. Não é possível usá-las em papéis personalizados.

O papel a seguir é usado pelas contas de serviço para conceder acesso somente de gravação:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.metricWriter
Gravador de métricas do Monitoring
monitoring.metricDescriptors.create
monitoring.metricDescriptors.get
monitoring.metricDescriptors.list
monitoring.monitoredResourceDescriptors.get
monitoring.monitoredResourceDescriptors.list
monitoring.timeSeries.create

Políticas de alertas

Os papéis de política de alertas incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.alertPolicyViewer
Visualizador de AlertPolicy do Monitoring
monitoring.alertPolicies.get
monitoring.alertPolicies.list
roles/monitoring.alertPolicyEditor
Editor de AlertPolicy do Monitoring
monitoring.alertPolicies.create
monitoring.alertPolicies.delete
monitoring.alertPolicies.get
monitoring.alertPolicies.list
monitoring.alertPolicies.update

Painéis

Os papéis dos painéis incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.dashboardViewer
Visualizador de configuração de painel do Monitoring
monitoring.dashboards.get
monitoring.dashboards.list
roles/monitoring.dashboardEditor
Editor de configuração de painel do Monitoring
monitoring.dashboards.get
monitoring.dashboards.list
monitoring.dashboards.create
monitoring.dashboards.delete
monitoring.dashboards.update

Canais de notificação

Os papéis de canais de notificação incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.notificationChannelViewer
Visualizador de NotificationChannel do Monitoring
monitoring.notificationChannelDescriptors.get
monitoring.notificationChannelDescriptors.list
monitoring.notificationChannels.get
monitoring.notificationChannels.list
roles/monitoring.notificationChannelEditor
Editor de NotificationChannel do 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

Monitoramento de serviço

Os papéis de monitoramento de serviço incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.servicesViewer
Visualizador dos serviços do Monitoring
monitoring.services.get
monitoring.services.list
monitoring.slos.get
monitoring.slos.list
roles/monitoring.servicesEditor
Editor dos serviços do 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

Configurações da verificação de tempo de atividade

Os papéis de configuração de verificações de tempo de atividade incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/monitoring.uptimeCheckConfigViewer
Visualizador de configurações de verificação de tempo de atividade do Monitoring
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
roles/monitoring.uptimeCheckConfigEditor
Editor de configurações de verificação de tempo de atividade do Monitoring
monitoring.uptimeCheckConfigs.create
monitoring.uptimeCheckConfigs.delete
monitoring.uptimeCheckConfigs.get
monitoring.uptimeCheckConfigs.list
monitoring.uptimeCheckConfigs.update

Configurações do espaço de trabalho

Para criar ou gerenciar um espaço de trabalho, você precisa usar o Console do Google Cloud. Para informações sobre os papéis necessários para criar um espaço de trabalho, consulte papéis predefinidos do Monitoring.

Google Cloud

Os papéis do Google Cloud incluem estas permissões:

ID do papel
Nome do papel
Inclui as permissões
roles/viewer
Visualizador do projeto
As permissões do Monitoring são iguais às de roles/monitoring.viewer.
roles/editor
Editor do projeto
As permissões do Monitoring são iguais às de roles/monitoring.editor.
roles/owner
Proprietário do projeto
As permissões do Monitoring são iguais às de roles/editor.

Como conceder papéis do IAM

Os proprietários do projeto, os editores e as contas de serviço padrão do Compute Engine e do App Engine já têm as permissões necessárias. No entanto, para outras contas de usuário, talvez seja necessário conceder esses papéis explicitamente.

Por exemplo, para que uma conta de usuário leia ou grave descritores de métricas usando a API do Monitoring, esse usuário precisa ter as permissões de IAM monitoring.metricDescriptors.* apropriadas. Elas são fornecidas por meio da atribuição dos papéis predefinidos Visualizador do Monitoring (roles/monitoring.viewer) e Editor do Monitoring (roles/monitoring.editor). Para mais informações, consulte as permissões da API.

Essas permissões são concedidas usando a ferramenta de linha de comando da gcloud do SDK do Cloud ou o Console do Google Cloud.

SDK do Cloud

Use o comando gcloud projects add-iam-policy-binding para conceder o papel monitoring.viewer ou monitoring.editor.

Por exemplo:

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"

Use o comando gcloud projects get-iam-policy para confirmar os papéis concedidos:

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

Console do Cloud

  1. Acesse o Console do Cloud:

    Acessar o Console do Cloud

  2. Se necessário, clique na lista suspensa de projetos do Google Cloud e selecione o nome do projeto em que você quer ativar a API.

  3. Para expandir o menu de navegação, clique em Menu .

  4. Clique em IAM e Admin.

  5. Se o usuário for um membro, clique em Editar para modificar as permissões. Você pode modificar o papel atual ou adicionar um papel adicional. Para salvar as alterações, clique em Salvar.

  6. Se o usuário não for membro, faça o seguinte:

    1. Clique em Adicionar.
    2. Insira o nome de usuário na caixa de texto Novos membros.
    3. Em Selecionar um papel, clique no menu .
    4. Na barra de filtro , digite o papel apropriado:
      • O Editor do Monitoring concede acesso de leitura e gravação.
      • O Leitor do Monitoring concede acesso somente leitura.

Papéis personalizados

Para criar um papel personalizado com as permissões do Monitoring, faça o seguinte:

  • Para um papel que conceda permissões apenas da API do Monitoring, escolha dentre as permissões na seção Permissões da API.

  • Para um papel que conceda permissões para o Monitoring no Console do Google Cloud, escolha entre os grupos de permissões na seção Permissões do Console para o Monitoring.

  • Para conceder a capacidade de gravar dados de monitoramento, inclua as permissões do papel roles/monitoring.metricWriter na seção Papéis.

Para mais informações sobre papéis personalizados, consulte Noções básicas sobre papéis personalizados do IAM.

Escopos de acesso do Compute Engine

Os escopos de acesso são o método legado de especificar permissões para as instâncias de VM do Compute Engine. Os escopos de acesso a seguir se aplicam ao Monitoring:

Escopo de acesso Permissões concedidas
https://www.googleapis.com/auth/monitoring.read As mesmas permissões de roles/monitoring.viewer.
https://www.googleapis.com/auth/monitoring.write As mesmas permissões de roles/monitoring.metricWriter.
https://www.googleapis.com/auth/monitoring Acesso completo ao Monitoring.
https://www.googleapis.com/auth/cloud-platform Acesso completo a todas as APIs do Cloud ativadas.

Para mais detalhes, consulte Escopos de acesso.

Prática recomendada. Como os papéis do IAM da conta de serviço são fáceis de configurar e alterar, uma prática recomendada é fornecer às instâncias de VM o escopo de acesso mais avançado, cloud-platform. Além disso, use os papéis do IAM para restringir o acesso. APIs e operações específicas. Para mais detalhes, consulte Permissões da conta de serviço.