Controlo de acesso com a IAM

Este documento ajuda a compreender como o Cloud Logging usa as funções e as autorizações da gestão de identidade e de acesso (IAM) para controlar o acesso aos recursos do Logging. As suas funções da IAM determinam se pode realizar ações como criar destinos de registo ou contentores de registo, ler dados de registo armazenados num contentor de registo ou aceder a páginas como o Explorador de registos. Se emitir um comando da API Logging ou da CLI Google Cloud, as suas funções do IAM determinam se tem autorização para executar o comando.

Vista geral

As suas funções do IAM determinam as ações que pode realizar no Logging. Uma função é uma coleção de autorizações. Quando atribui uma função a um principal, concede-lhe todas as autorizações que a função contém. Pode conceder várias funções ao mesmo principal.

As funções do IAM são concedidas num recurso, como um Trusted Cloud projeto, uma pasta, um contentor ou uma organização. Por exemplo, pode conceder a um principal a função de leitor de registos (roles/logging.viewer) num projeto Trusted Cloud específico.

As secções Funções predefinidas e Funções de registo desta página fornecem informações abrangentes sobre as funções e as autorizações de registo. Outras secções desta página fornecem informações sobre funções ou autorizações para exemplos de utilização específicos.

O resto desta secção resume como pode conceder a um principal acesso a contentores de registos ou conceder-lhe acesso apenas a algumas das entradas de registos num contentor de registos.

Conceda acesso a contentores de registos

A função Logs Viewer (roles/logging.viewer) permite que um principal aceda a todos os dados de registo armazenados nos contentores de registo _Required e _Default, exceto aos registos de acesso aos dados. Se um principal precisar de acesso aos registos de acesso aos dados, conceda-lhe a função de leitor de registos privados (roles/logging.privateLogViewer).

Para os contentores de registos personalizados, pode conceder acesso à vista _AllLogs ou a uma vista de registos personalizada. O registo cria automaticamente a visualização _AllLogs, que inclui todas as entradas de registo no contentor de registos. Para conceder acesso a uma vista de registo, adicione uma associação de IAM à política de IAM anexada à vista de registo ou ao projeto. Para saber mais, consulte o artigo Controle o acesso a uma vista de registo.

O registo também suporta etiquetas em contentores de registos, o que pode ajudar a compreender os seus custos. Também pode usar etiquetas para impedir que um utilizador elimine um contentor de registos. Para saber mais, consulte o artigo Use etiquetas para gerir o acesso a contentores de registos.

Conceda acesso a algumas entradas de registo num contentor de registo

Para conceder a um principal acesso apenas a algumas das entradas de registo armazenadas num contentor de registos, crie uma vista de registo e, em seguida, conceda ao principal acesso à vista de registo. Por exemplo, pode criar uma vista de registo no contentor de registos _Default que inclua apenas entradas de registo cujo tipo de recurso seja uma instância do Compute Engine. Para saber mais sobre a criação de visualizações de registos e as diferentes estratégias que pode usar para conceder acesso à visualização, consulte o artigo Configure visualizações de registos num contentor de registos.

Funções predefinidas

O IAM fornece funções predefinidas para conceder acesso detalhado a recursos Trusted Cloud específicos e impedir o acesso indesejado a outros recursos. Trusted Cloud by S3NS cria e mantém estas funções e atualiza automaticamente as respetivas autorizações conforme necessário, como quando o Logging adiciona novas funcionalidades.

A tabela seguinte lista as funções predefinidas para o registo. Para cada função, a tabela apresenta o título da função, a descrição, as autorizações contidas e o tipo de recurso de nível mais baixo onde as funções podem ser concedidas. Pode conceder as funções predefinidas ao Trusted Cloud nível do projeto ou, na maioria dos casos, a qualquer tipo superior na hierarquia de recursos. Para restringir a função Logs View Accessor a uma vista de registos num contentor, use os atributos de recursos para as condições do IAM.

Para obter uma lista de todas as autorizações individuais contidas numa função, consulte o artigo Obter os metadados da função.

Role Permissions

(roles/logging.admin)

Provides all permissions necessary to use all features of Cloud Logging.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.copyLogEntries

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.fields.access

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.*

  • logging.logEntries.create
  • logging.logEntries.download
  • logging.logEntries.list
  • logging.logEntries.route

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logScopes.*

  • logging.logScopes.create
  • logging.logScopes.delete
  • logging.logScopes.get
  • logging.logScopes.list
  • logging.logScopes.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.*

  • logging.logs.delete
  • logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.privateLogEntries.list

logging.queries.*

  • logging.queries.deleteShared
  • logging.queries.getShared
  • logging.queries.listShared
  • logging.queries.share
  • logging.queries.updateShared
  • logging.queries.usePrivate

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.usage.get

logging.views.*

  • logging.views.access
  • logging.views.create
  • logging.views.delete
  • logging.views.get
  • logging.views.getIamPolicy
  • logging.views.list
  • logging.views.listLogs
  • logging.views.listResourceKeys
  • logging.views.listResourceValues
  • logging.views.setIamPolicy
  • logging.views.update

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.bucketWriter)

Ability to write logs to a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.write

(roles/logging.configWriter)

Provides permissions to read and write the configurations of logs-based metrics and sinks for exporting logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.create

logging.buckets.createTagBinding

logging.buckets.delete

logging.buckets.deleteTagBinding

logging.buckets.get

logging.buckets.list

logging.buckets.listEffectiveTags

logging.buckets.listTagBindings

logging.buckets.undelete

logging.buckets.update

logging.exclusions.*

  • logging.exclusions.create
  • logging.exclusions.delete
  • logging.exclusions.get
  • logging.exclusions.list
  • logging.exclusions.update

logging.links.*

  • logging.links.create
  • logging.links.delete
  • logging.links.get
  • logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logMetrics.*

  • logging.logMetrics.create
  • logging.logMetrics.delete
  • logging.logMetrics.get
  • logging.logMetrics.list
  • logging.logMetrics.update

logging.logScopes.*

  • logging.logScopes.create
  • logging.logScopes.delete
  • logging.logScopes.get
  • logging.logScopes.list
  • logging.logScopes.update

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.notificationRules.*

  • logging.notificationRules.create
  • logging.notificationRules.delete
  • logging.notificationRules.get
  • logging.notificationRules.list
  • logging.notificationRules.update

logging.operations.*

  • logging.operations.cancel
  • logging.operations.get
  • logging.operations.list

logging.settings.*

  • logging.settings.get
  • logging.settings.update

logging.sinks.*

  • logging.sinks.create
  • logging.sinks.delete
  • logging.sinks.get
  • logging.sinks.list
  • logging.sinks.update

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

logging.views.create

logging.views.delete

logging.views.get

logging.views.getIamPolicy

logging.views.list

logging.views.update

observability.scopes.get

resourcemanager.projects.get

resourcemanager.projects.list

(roles/logging.fieldAccessor)

Ability to read restricted fields in a log bucket.

Lowest-level resources where you can grant this role:

  • Project

logging.fields.access

(roles/logging.linkViewer)

Ability to see links for a bucket.

logging.links.get

logging.links.list

(roles/logging.logWriter)

Provides the permissions to write log entries.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.create

logging.logEntries.route

(roles/logging.privateLogViewer)

Provides permissions of the Logs Viewer role and in addition, provides read-only access to log entries in private logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.privateLogEntries.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.access

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

(roles/logging.serviceAgent)

Grants a Cloud Logging Service Account the ability to create and link datasets.

bigquery.datasets.create

bigquery.datasets.get

bigquery.datasets.link

(roles/logging.sqlAlertWriter)

Ability to write SQL Alerts.

logging.sqlAlerts.*

  • logging.sqlAlerts.create
  • logging.sqlAlerts.update

(roles/logging.viewAccessor)

Ability to read logs in a view.

Lowest-level resources where you can grant this role:

  • Project

logging.logEntries.download

logging.views.access

logging.views.listLogs

logging.views.listResourceKeys

logging.views.listResourceValues

(roles/logging.viewer)

Provides access to view logs.

Lowest-level resources where you can grant this role:

  • Project

logging.buckets.get

logging.buckets.list

logging.exclusions.get

logging.exclusions.list

logging.links.get

logging.links.list

logging.locations.*

  • logging.locations.get
  • logging.locations.list

logging.logEntries.list

logging.logMetrics.get

logging.logMetrics.list

logging.logScopes.get

logging.logScopes.list

logging.logServiceIndexes.list

logging.logServices.list

logging.logs.list

logging.operations.get

logging.operations.list

logging.queries.getShared

logging.queries.listShared

logging.queries.usePrivate

logging.sinks.get

logging.sinks.list

logging.usage.get

logging.views.get

logging.views.list

observability.scopes.get

resourcemanager.projects.get

As secções seguintes fornecem informações adicionais para ajudar a decidir que funções se aplicam aos exemplos de utilização dos seus principais.

Funções de registo

  • Para permitir que um utilizador execute todas as ações no registo, conceda-lhe a função de administrador de registo (roles/logging.admin).

  • Para permitir que um utilizador crie e modifique configurações de registo, conceda-lhe a função Logs Configuration Writer (roles/logging.configWriter). Esta função permite-lhe criar ou modificar qualquer um dos seguintes elementos:

  • Para permitir que um utilizador leia registos nos contentores _Required e _Default ou use a página Explorador de registos, conceda uma das seguintes funções:

    • Para aceder a todos os registos no contentor _Required e aceder à vista _Default no contentor _Default, conceda a função de leitor de registos (roles/logging.viewer).
    • Para aceder a todos os registos nos contentores _Required e _Default, incluindo registos de acesso aos dados, conceda a função Visualizador de registos privados (roles/logging.privateLogViewer).
  • Para permitir que um utilizador leia registos em todas as vistas de registos que estão num projeto, conceda-lhe a função de IAM de roles/logging.viewAccessor no projeto.

  • Para permitir que um utilizador apenas leia registos numa vista de registos específica, tem duas opções:

    • Crie uma política de IAM para a visualização de registos e, em seguida, adicione uma associação de IAM a essa política que conceda ao principal acesso à visualização de registos.

    • Conceda ao principal a função de IAM de roles/logging.viewAccessor no projeto que contém a vista de registos, mas anexe uma condição de IAM para restringir a concessão à vista de registos específica.

    Para ver informações sobre como criar visualizações de registos e conceder acesso, consulte o artigo Configure visualizações de registos num contentor de registos.

  • Para permitir que um utilizador escreva registos através da Logging API, conceda-lhe a função Logs Writer (roles/logging.logWriter). Esta função não concede autorizações de visualização.

  • Para permitir que a conta de serviço de um destino encaminhe registos para um contentor num projeto Trusted Cloud diferente, conceda à conta de serviço a função de escritor do contentor de registos (roles/logging.bucketWriter). Para obter instruções sobre como conceder autorizações a uma conta de serviço, consulte o artigo Defina autorizações de destino.

Funções ao nível do projeto

  • Para conceder acesso de visualização à maioria dos Trusted Cloud by S3NS serviços, conceda a função Visitante (roles/viewer).

    Esta função inclui todas as autorizações concedidas pela função Leitor de registos (roles/logging.viewer).

  • Para conceder acesso de editor à maioria dos Trusted Cloud by S3NS serviços, atribua a função Editor (roles/editor).

    Esta função inclui todas as autorizações concedidas pela função Leitor de registos (roles/logging.viewer) e as autorizações para escrever entradas de registo e eliminar registos. No entanto, esta função não permite que os utilizadores criem origens, leiam registos de auditoria de acesso aos dados que se encontram no contentor _Default nem leiam registos que se encontram em contentores de registos definidos pelo utilizador.

  • Para conceder acesso total à maioria dos Trusted Cloud by S3NS serviços, atribua a função de proprietário (roles/owner).

Conceder funções

Para saber como conceder uma função a um principal, consulte o artigo Conceder, alterar e revogar o acesso.

Pode conceder várias funções ao mesmo utilizador. Para obter uma lista das autorizações contidas numa função, consulte Obter os metadados da função.

Se estiver a tentar aceder a um Trusted Cloud recurso e não tiver as autorizações necessárias, contacte o principal indicado como proprietário do recurso.

Funções personalizadas

Para criar uma função personalizada com autorizações de registo, faça o seguinte:

Para mais informações sobre funções personalizadas, consulte o artigo Compreender as funções personalizadas do IAM.

Autorizações do Cloud Logging

A tabela seguinte é uma lista parcial das autorizações necessárias para funcionalidades específicas do Cloud Logging. Esta tabela pode ajudar a identificar as autorizações de que precisa para usar páginas como o Explorador de registos.

Na tabela, a.b.{x,y} significa a.b.x e a.b.y.

Atividade da consola Autorizações necessárias
Acesso só de leitura mínimo logging.logEntries.list
logging.logs.list
logging.logServiceIndexes.list
logging.logServices.list
resourcemanager.projects.get
Veja os registos de auditoria de acesso aos dados logging.privateLogEntries.list
Ver lavatórios logging.sinks.{list, get}
Veja a utilização dos registos logging.usage.get
Transferir registos logging.logEntries.{list, download}

Apenas uma destas autorizações é necessária para transferir registos. As funções que contêm as autorizações para transferir registos têm de ser concedidas ao nível do projeto. Não pode transferir registos se for concedida uma função que contenha estas autorizações no ficheiro de política de IAM de uma vista de registos.

Liste e veja os âmbitos do registo logging.logScopes.{get, list}
Veja o âmbito do registo predefinido observability.scopes.get
Exclua registos logging.exclusions.{list, create, get, update, delete}

Ao criar uma função personalizada que inclua autorizações para gerir filtros de exclusão, adicione as autorizações logging.sinks.* à função em vez de adicionar as autorizações logging.exclusions.*.

Crie e use destinos logging.sinks.{list, create, get, update, delete}

Quando cria um destino, também tem de conceder à conta de serviço uma função do IAM que lhe permita escrever entradas de registo no destino. Para mais informações, consulte o artigo Defina autorizações de destino.

Depois de as entradas do registo terem sido encaminhadas para um destino suportado, o acesso às entradas do registo é controlado inteiramente pelas autorizações e funções de IAM no destino.

Guarde e use consultas privadas logging.queries.usePrivate
logging.queries.{listShared,getShared}
Guarde e use consultas partilhadas logging.queries.{share, getShared, updateShared, deleteShared, listShared}
Usar consultas recentes logging.queries.{create, list}
Crie e faça a gestão de âmbitos de registo logging.logScopes.{create, delete, get, list, update}
Defina e faça a gestão do âmbito do registo predefinido observability.scopes.{get, update}

Autorizações para a linha de comandos

Os comandos gcloud logging são controlados pelas autorizações de IAM.

Para usar qualquer um dos comandos gcloud logging, os principais têm de ter a autorização serviceusage.services.use.

Um principal também tem de ter a função de IAM que corresponde ao recurso do registo e ao exemplo de utilização. Para ver detalhes, consulte as autorizações da interface de linhas de comando.