Encontre as funções predefinidas certas

A gestão de identidade e de acesso (IAM) oferece várias funções predefinidas para a maioria dos Trusted Cloud by S3NS serviços. Cada função predefinida contém as autorizações necessárias para realizar uma tarefa ou um grupo de tarefas relacionadas.

Para algumas tarefas, encontrar uma função predefinida adequada é, muitas vezes, simples. Por exemplo, se um principal precisar de ver objetos num contentor do Cloud Storage, é provável que a função Storage Object Viewer (roles/storage.objectViewer) seja adequada.

No entanto, existem centenas de funções predefinidas, o que pode dificultar a identificação das funções mais adequadas a conceder aos seus principais. Também pode ser difícil encontrar funções que sigam o princípio do menor privilégio, que afirma que os principais não devem ter mais autorizações do que as que realmente precisam.

Esta página explica o processo de escolha das funções predefinidas mais adequadas:

  1. Identifique as autorizações necessárias.
  2. Encontre funções que contenham as autorizações.
  3. Escolha as funções mais adequadas.
  4. Decida onde conceder as funções.
  5. Conceda as funções a um principal.

Identifique as autorizações necessárias

Para identificar as autorizações de que um principal precisa, comece por listar as tarefas que tem de realizar e os Trusted Cloud serviços que vai usar para essas tarefas. Por exemplo, um principal pode ter de usar o Compute Engine para criar instâncias de máquinas virtuais.

Depois de identificar as tarefas e os serviços, existem algumas estratégias que pode usar para identificar as autorizações necessárias para cada tarefa:

  • Consulte a documentação dos Trusted Cloud serviços.

    Para alguns serviços, os guias de instruções orientados por tarefas indicam as funções ou as autorizações de que precisa para cada tarefa, numa secção "Antes de começar" ou com as instruções de cada tarefa. Por exemplo, consulte os pré-requisitos do Compute Engine para importar e exportar imagens de VMs.

    Outros serviços identificam as funções e as autorizações necessárias numa página sobre o controlo de acesso. Por exemplo, consulte as autorizações necessárias para chamar métodos do Pub/Sub.

  • Identifique os métodos da API REST ou RPC que usaria para concluir as tarefas e consulte a documentação de referência da API para ver as autorizações de IAM necessárias.

    Para alguns serviços, a documentação da API REST e RPC indica as autorizações que cada método requer. Por exemplo, consulte a documentação do Compute Engine para o método instances.get.

  • Consulte a lista de autorizações de cada serviço e use o seu julgamento para encontrar as autorizações relevantes.

    Na maioria dos casos, o nome de cada autorização também descreve o que a autorização lhe permite fazer. Por exemplo, a autorização para criar uma instância de VM do Compute Engine chama-se compute.instances.create.

    Para ajudar a compreender o nome de cada autorização, lembre-se de que os nomes das autorizações usam o formato SERVICE.RESOURCE_TYPE.ACTION.

Em geral, não precisa de identificar todas as autorizações necessárias para cada tarefa. Em vez disso, concentre-se em identificar a autorização mais relevante para cada tarefa. Se uma função predefinida contiver essa autorização, é provável que também contenha autorizações relacionadas.

Como parte deste processo, também deve tentar identificar quais das autorizações necessárias são as mais poderosas. Em geral, as autorizações mais poderosas estão incluídas num número menor de funções predefinidas. Como resultado, se se concentrar nestas autorizações, terá uma lista mais curta de potenciais funções à sua escolha.

Por exemplo, os seguintes tipos de autorizações são especialmente poderosos:

  • Autorizações para criar e eliminar recursos
  • Autorizações para aceder a dados confidenciais, como chaves de encriptação ou informações de identificação pessoal (IIP)
  • Autorizações para definir a política de permissão ou a política de negação para um recurso
  • Autorizações para atualizar organizações, pastas e projetos, o que pode fazer com que outros recursos herdem as atualizações

Por outro lado, os seguintes tipos de autorizações são menos poderosos:

  • Autorizações para listar recursos
  • Autorizações para aceder a dados que não são confidenciais
  • Autorizações para atualizar definições que têm um risco limitado, como a plataforma de CPU mínima para instâncias de máquinas virtuais do Compute Engine

Encontre funções que contêm as autorizações

Depois de identificar as autorizações necessárias, pode pesquisar funções predefinidas que contenham essas autorizações e criar uma lista de funções que possam ser adequadas. A forma mais fácil de encontrar estas funções é pesquisar a referência de autorizações, que lista todas as autorizações de IAM e as funções que contêm cada autorização.

Para seguir o princípio do menor privilégio, pode ter de identificar mais do que uma função predefinida para conceder, especialmente se as autorizações necessárias pertencerem a vários Trusted Cloud serviços. Por exemplo, se um principal precisar de ver objetos do Cloud Storage e administrar bases de dados do Cloud SQL, é improvável que uma única função predefinida contenha as autorizações adequadas para ambos os serviços. Se existir uma função deste tipo, também pode incluir um grande número de autorizações não relacionadas que o principal não precisa. Para reduzir o risco, procure uma função que contenha as autorizações necessárias para o Cloud Storage e outra função que contenha as autorizações necessárias para o Cloud SQL.

Escolha as funções mais adequadas

Agora que tem uma lista de funções predefinidas que podem ser adequadas, pode escolher as funções mais apropriadas da lista.

Comece por eliminar os seguintes tipos de funções:

  • Para ambientes de produção: funções básicas, incluindo Proprietário (roles/owner), Editor (roles/editor) e Visitante (roles/viewer).

    As funções básicas incluem milhares de autorizações em todos os Trusted Cloud serviços. Em ambientes de produção, não conceda funções básicas, a menos que não exista alternativa. Em alternativa, conceda as funções predefinidas ou personalizadas mais limitadas que satisfaçam as suas necessidades.

  • Funções de agente do serviço, que normalmente têm títulos que terminam em "Agente do serviço" e nomes que terminam em serviceAgent.

    Estas funções destinam-se a agentes de serviço, que são um tipo especial de conta de serviço que um serviço usa para aceder aos seus recursos. Trusted Cloud As funções de agente de serviço tendem a conter autorizações para vários serviços, que podem incluir serviços aos quais o seu principal não precisa de aceder.

Em seguida, use a referência de funções predefinidas ou a página Funções na Trusted Cloud consola para listar as autorizações que cada função contém. Verifique as autorizações de cada função que não quer que o principal tenha e elimine as funções que contenham autorizações indesejadas.

Se este processo eliminar todas as funções predefinidas, considere criar uma função personalizada para se adequar ao seu exemplo de utilização. Caso contrário, escolha a função ou as funções que contêm o menor número de autorizações, mas que ainda satisfazem as suas necessidades.

Decida onde conceder as funções

Quando concede uma função, fá-lo sempre num Trusted Cloud recurso específico, que pertence a uma hierarquia de recursos. Os recursos de nível inferior, como as instâncias de VM do Compute Engine, herdam as funções concedidas nos recursos de nível superior, como projetos, pastas e organizações.

Escolha onde conceder as funções predefinidas que identificou:

  • Se o principal precisar de acesso a recursos específicos de nível inferior, conceda as funções nesses recursos.
  • Se o principal precisar de acesso a muitos recursos num projeto, numa pasta ou numa organização, conceda as funções no projeto, na pasta ou na organização. Escolha o recurso de nível mais baixo que satisfaça as necessidades do principal.

    Além disso, considere usar as Condições do IAM para conceder as funções apenas em recursos específicos no projeto, na pasta ou na organização.

Se identificou várias funções predefinidas, considere se deve conceder as funções a diferentes níveis da hierarquia de recursos. Por exemplo, se um principal precisar de acesso a uma única base de dados do Cloud SQL, mas a muitas instâncias de VM do Compute Engine diferentes, pode querer conceder a função para o Cloud SQL na base de dados e a função para o Compute Engine no projeto.

Conceda as funções a um principal

Agora, já pode conceder as funções ao seu principal. Para saber como conceder funções, consulte o seguinte:

Se o principal tiver as autorizações pretendidas nos recursos corretos, mas não conseguir concluir as respetivas tarefas, é possível que tenha ignorado uma autorização de que o principal precisa. Itere a sua tentativa anterior adicionando autorizações necessárias à lista, encontrando funções que contenham essas autorizações e escolhendo as funções mais adequadas.

O que se segue?