Escolher papéis predefinidos

O gerenciamento de identidade e acesso (IAM, na sigla em inglês) fornece vários papéis predefinidos para a maioria dos serviços do Google Cloud. Cada papel predefinido contém as permissões necessárias para executar uma tarefa ou um grupo de tarefas relacionadas.

Para tarefas simples, encontrar um papel predefinido apropriado costuma ser direto. Por exemplo, se um principal precisar visualizar objetos em um bucket do Cloud Storage, o papel de Leitor de objetos do Storage (roles/storage.objectViewer) provavelmente será uma boa opção.

No entanto, existem centenas de papéis predefinidos, que podem dificultar a identificação dos papéis mais apropriados para conceder aos principais. Também pode ser desafiador encontrar papéis que sigam o princípio do menor privilégio, o que declara que os principais não devem ter mais permissões do que realmente precisam.

Nesta página, você verá o processo de escolha dos papéis predefinidos mais adequados:

  1. Identifique as permissões necessárias.
  2. Encontre os papéis que contêm as permissões.
  3. Escolha as funções mais adequadas.
  4. Decida onde conceder os papéis.
  5. Conceda os papéis a um principal.

Identificar as permissões necessárias

Para identificar as permissões necessárias, comece listando as tarefas que precisam executar e os serviços do Google Cloud que serão usados nessas tarefas. Por exemplo, um principal pode precisar usar o Compute Engine para criar instâncias de máquina virtual.

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

  • Verifique a documentação dos serviços do Google Cloud.

    Para alguns serviços, os guias de instruções orientados a tarefas listam os papéis ou permissões necessários para cada tarefa, seja em uma seçã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 VM.

    Outros serviços identificam os papéis e permissões necessários em uma página sobre o controle de acesso. Por exemplo, consulte as permissões necessárias do Spanner para as tarefas do Console do Google Cloud.

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

    Para alguns serviços, a documentação das APIs REST e RPC lista as permissões necessárias para cada método. Por exemplo, consulte a documentação do Compute Engine para o método instances.get.

  • Observe a lista de permissões para cada serviço e use o bom senso para encontrar as permissões relevantes.

    Na maioria dos casos, o nome de cada permissão também descreve o que ela permite. Por exemplo, a permissão para criar uma instância de VM do Compute Engine é denominada compute.instances.create.

    Para ajudar você a entender cada nome de permissão, lembre-se de que os nomes de permissão usam o formato SERVICE.RESOURCE_TYPE.ACTION.

Em geral, não é necessário identificar todas as permissões necessárias para cada tarefa. Em vez disso, concentre-se na identificação da permissão mais relevante para cada tarefa. Se um papel predefinido contém essa permissão, é provável que também contenha permissões relacionadas.

Como parte desse processo, tente identificar também quais permissões necessárias são as mais avançadas. Em geral, permissões mais eficientes estão incluídas em um número menor de papéis predefinidos. Como resultado, se você se concentrar nessas permissões, terá uma lista menor de papéis em potencial para escolher.

Por exemplo, os seguintes tipos de permissões são particularmente eficientes:

  • Permissões para criar e excluir recursos
  • Permissões para acessar dados confidenciais, como chaves de criptografia ou informações de identificação pessoal (PII)
  • Permissões para definir a política de permissão ou de negação para um recurso
  • Permissõ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 permissões são menos eficientes:

  • Permissões para listar recursos
  • Permissões para acessar dados não confidenciais
  • Permissões para atualizar configurações com risco limitado, como a plataforma mínima de CPU para instâncias de máquina virtual do Compute Engine

Encontrar papéis que contenham as permissões

Depois de identificar as permissões necessárias, pesquise papéis predefinidos que contenham essas permissões e crie uma lista de papéis que possam ser uma boa opção. A maneira mais fácil de encontrar esses papéis é pesquisando a referência de permissões, que lista todas as permissões do IAM e os papéis que contêm cada permissão.

Para seguir o princípio de privilégio mínimo, talvez seja necessário identificar mais de um papel predefinido, especialmente se as permissões necessárias pertencerem a vários serviços do Google Cloud. Por exemplo, se um principal precisar visualizar objetos do Cloud Storage e administrar bancos de dados do Cloud SQL, é improvável que um papel predefinido único contenha as permissões apropriadas para ambos os serviços. Se esse papel existir, ele também poderá incluir um grande número de permissões não relacionadas que o principal não precisa. Para reduzir o risco, procure um papel que contenha as permissões necessárias para o Cloud Storage e outro que contenha as permissões necessárias para o Cloud SQL.

Escolher os papéis mais apropriados

Agora que você tem uma lista de papéis predefinidos que podem ser uma boa opção, escolha os papéis mais apropriados.

Comece eliminando os seguintes tipos de papéis:

  • Para ambientes de produção: papéis básicos, incluindo proprietário (roles/owner), editor (roles/editor) e leitor (roles/viewer).

    Os papéis básicos incluem milhares de permissões em todos os serviços do Google Cloud. Em ambientes de produção, não conceda papéis básicos, a menos que não haja alternativa. Em vez disso, conceda papéis predefinidos mais limitados ou personalizados que atendam às suas necessidades.

  • Papéis do agente de serviço, que normalmente têm títulos que terminam em "Agente de serviço" e nomes que terminam em serviceAgent.

    Esses papéis são destinados a agentes de serviços, que são um tipo especial de conta de serviço que um serviço do Google Cloud usa para acessar seus recursos. Os papéis do agente de serviço tendem a conter permissões para vários serviços, que podem incluir serviços que o principal não precisa acessar.

Em seguida, use a referência de papéis predefinidos ou a página Papéis no Console do Google Cloud para listar as permissões que cada papel contém de dados. Verifique em cada papel as permissões que você não quer que o principal tenha e elimine todos os papéis que contenham permissões indesejadas.

Se esse processo eliminar todos os papéis predefinidos, crie um papel personalizado que se adapte ao seu caso de uso. Caso contrário, escolha o papel ou os papéis que têm o menor número de permissões, enquanto atende às suas necessidades.

Decidir onde conceder os papéis

Ao conceder um papel, você sempre o concede em um recurso específico do Google Cloud, que pertence a uma hierarquia de recursos. Os recursos de nível inferior, como instâncias de VM do Compute Engine, herdam os papéis concedidos em recursos de nível superior, como projetos, pastas e organizações.

Escolha onde conceder os papéis predefinidos que você identificou:

  • Se o principal precisar acessar recursos específicos de nível inferior, conceda os papéis desses recursos.
  • Se o principal precisar acessar muitos recursos em um projeto, uma pasta ou uma organização, conceda os papéis no projeto, na pasta ou na organização. Escolha o recurso de nível mais baixo que atenda às necessidades do principal.

    Além disso, considere o uso de condições do IAM para conceder os papéis apenas em recursos específicos do projeto, da pasta ou da organização.

Se você identificou vários papéis predefinidos, considere se precisa conceder os papéis em diferentes níveis da hierarquia de recursos. Por exemplo, se um principal precisar de acesso a um único banco de dados do Cloud SQL, mas muitas instâncias de VM do Compute Engine diferentes, conceda o papel do Cloud SQL no banco de dados e o papel do Compute Mecanismo do projeto.

Conceder os papéis a um principal

Agora você está pronto para conceder os papéis ao principal. Para saber como conceder papéis, consulte:

Depois de conceder os papéis, é possível usar a Análise de políticas e o Solucionador de problemas de políticas para verificar quais recursos o principal pode acessar e resolver problemas de acesso.

Se o diretor tem as permissões pretendidas nos recursos corretos, mas não consegue concluir as tarefas, é possível que você tenha esquecido uma permissão necessária. Itere sua tentativa anterior adicionando as permissões necessárias à lista. encontrar papéis que contenham essas permissões e escolher os papéis mais apropriados;

Se você conceder acidentalmente um papel com muitas permissões, uma recomendação de papel poderá sugerir um papel menos permissivo que atenda às necessidades do principal. Algumas vinculações de papéis não recebem recomendações de papéis.

A seguir