Controle de acesso

O Stackdriver Monitoring controla o acesso a dados de monitoramento nos espaços de trabalho. Para isso, são usados os papéis e permissões do Cloud Identity and Access Management (Cloud IAM).

Visão geral

Para usar o Monitoring, é preciso ter as permissões apropriadas do Cloud 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 Cloud 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 Cloud IAM.

Papéis predefinidos

Os papéis do Cloud IAM a seguir são predefinidos pelo Stackdriver 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
Oferece acesso somente leitura ao console do Stackdriver Monitoring e à API
roles/monitoring.editor
Editor do Monitoring
Oferece acesso de leitura e gravação ao console do Stackdriver Monitoring e à API e permite gravar dados de monitoramento em um espaço de trabalho
roles/monitoring.admin
Administrador do Monitoring
Oferece acesso total a todos os recursos do Monitoring

O papel a seguir é usado pelas contas de serviço para conceder 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 acesso ao console do Stackdriver Monitoring. 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 de 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ço, consulte Monitoramento de serviço: como trabalhar com a API.

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

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
Oferece acesso somente leitura ao console do Stackdriver Monitoring e à API
roles/editor
Editor do projeto
Oferece acesso de leitura e gravação ao console do Stackdriver Monitoring e à API
roles/owner
Proprietário do projeto
Oferece acesso total ao console do Stackdriver Monitoring e à API

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, você encontra uma lista das permissões e papéis do Cloud IAM que se aplicam ao Monitoring.

Permissões da API

Cada método da API do Monitoring requer uma permissão específica do Cloud 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 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 O projeto precisa estar em um espaço de trabalho.

Permissões do console do Stackdriver Monitoring

Cada recurso do console do Stackdriver Monitoring exige que você tenha a permissão para a 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. O console do Stackdriver Monitoring pode perder a funcionalidade se as permissões necessárias forem revogadas.

Na tabela a seguir, você vê uma lista das permissões exigidas para usar o console do Stackdriver Monitoring:

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

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

Papéis

Na tabela a seguir, você vê uma lista dos papéis do Cloud 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.

Monitoring

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 existem para gerar compatibilidade com o console do Stackdriver Monitoring. 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.dashboardsViewer
Visualizador de configuração de painel do Monitoring
monitoring.dashboards.get
monitoring.dashboards.list
roles/monitoring.dashboardsEditor
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

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 Cloud 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 monitoring.metricDescriptors.* apropriadas do Cloud IAM. 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 não estiver presente, clique no botão Adicionar e, em seguida, clique na lista suspensa ao lado da opção Selecionar um papel. Caso contrário, clique para alternar na coluna Papéis ao lado do usuário existente cujas permissões você quer editar.

  6. No painel Gerenciar papéis, mova o ponteiro para o lado esquerdo e role até Monitoring.

  7. No painel Gerenciar papéis, mova o ponteiro para o lado direito e selecione 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 do console do Stackdriver Monitoring, escolha dentre os grupos de permissão na seção Permissões do console do Stackdriver 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 Cloud 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 Cloud IAM para restringir o acesso a APIs e operações específicas. Para mais detalhes, consulte Permissões da conta de serviço.