Como gerenciar o acesso via IAM

É possível usar o Cloud Identity and Access Management (IAM) para controlar a capacidade de um visualizador para criar, atualizar e excluir funções. Também é possível controlar se a autenticação é necessária para invocar uma função. Para isso, são concedidos papéis para diferentes membros.

Como controlar o acesso em uma função

É possível controlar o acesso em uma função que usa o IAM concedendo ou restringindo papéis a usuários individuais.

Como adicionar usuários

Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção ao lado da função na qual quer conceder acesso.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

  4. No campo Adicionar membros, insira uma ou mais identidades que precisam acessar sua função.

  5. Escolha um ou mais papéis no menu suspenso Selecionar um papel. Os papéis selecionados são exibidos no painel com uma breve descrição das permissões que eles concedem.

  6. Clique em Salvar.

GCloud

Use o comando gcloud functions add-iam-policy-binding:

gcloud functions add-iam-policy-binding FUNCTION_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

em que FUNCTION_NAME é o nome da função, MEMBER_TYPE é o tipo de membro e ROLE é o papel.

Para ver uma lista de valores aceitáveis para MEMBER_TYPE, consulte a página de conceitos do Cloud IAM. Para uma lista de valores aceitáveis para ROLE, consulte a página de referência de papéis do Cloud Functions IAM.

Como remover usuários

Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção ao lado da função na qual quer restringir acesso.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

  4. Procure o usuário que você quer remover ou expanda um papel do usuário.

  5. Clique na lixeira Excluir ao lado do tipo de membro dentro do papel para remover o papel do membro.

GCloud

Use o comando gcloud functions remove-iam-policy-binding:

  gcloud functions remove-iam-policy-binding FUNCTION_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

em que FUNCTION_NAME é o nome da função, MEMBER_TYPE é o tipo de membro e ROLE é o papel.

Para ver uma lista de valores aceitáveis para MEMBER_TYPE, consulte a página de conceitos do Cloud IAM. Para uma lista de valores aceitáveis para ROLE, consulte a página de referência de papéis do Cloud Functions IAM.

Adição ou remoção de usuários em massa

Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique nas caixas de seleção ao lado das funções nas quais quer conceder ou restringir o acesso.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

Se você quer adicionar usuários, siga estas etapas:

  1. No campo Adicionar membros, insira várias identidades que precisam acessar sua função.

  2. Escolha um ou mais papéis no menu suspenso Selecionar um papel. Os papéis selecionados são exibidos no painel com uma breve descrição das permissões que eles concedem.

  3. Clique em Salvar.

Se você quiser remover usuários:

  1. Procure o usuário que você quer remover ou expanda um papel do usuário.

  2. Clique na lixeira Excluir ao lado do tipo de membro dentro do papel para remover o papel do membro.

GCloud

Crie uma política do IAM chamada, por exemplo, policy.json:

{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}

Use o comando gcloud functions set-iam-policy:

gcloud functions set-iam-policy FUNCTION_NAME policy.json

Para ver uma lista de valores aceitáveis para MEMBER_TYPE, consulte a página de conceitos do Cloud IAM. Para uma lista de valores aceitáveis para ROLE, consulte a página de referência de papéis do Cloud Functions IAM.

Como visualizar usuários

Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Selecione a função com usuários e papéis que você quer visualizar.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

  4. Todos os usuários serão exibidos, agrupados pelo papel concedido.

GCloud

Use o comando gcloud functions get-iam-policy:

gcloud functions get-iam-policy FUNCTION_NAME

Como controlar o acesso em todas as funções em um projeto

Para conceder papéis aos membros em todas as funções de um projeto, use o IAM no nível do projeto.

Como permitir invocação de função não autenticada

É possível usar a abordagem descrita acima para conceder ou restringir a capacidade de invocar uma função. Isso permite especificar se o autor da chamada precisa ser autenticado para invocar uma função. Este conceito se aplica somente a funções HTTP. As funções de segundo plano só podem ser invocadas pela origem do evento na qual estão inscritas.

É possível permitir a invocação não autenticada de uma função após ela ter sido implementada adicionando o tipo de membro especial allUsers a uma função e concedendo a ela o papel de Chamador do Cloud Functions:

Console

  1. Acesse o Console do Google Cloud:

    Acessar o Console do Google Cloud

  2. Clique na caixa de seleção ao lado da função na qual quer conceder acesso.

  3. Clique em Mostrar painel de informações no canto superior direito para mostrar a guia Permissões.

  4. No campo Adicionar membros, digite allUsers.

  5. Selecione o papel Cloud Functions > Chamador do Cloud Functions no menu suspenso Selecionar papel.

  6. Clique em Salvar.

GCloud

Use o comando gcloud functions add-iam-policy-binding para adicionar o tipo de membro especial allUsers a uma função e conceder a ela o papel roles/cloudfunctions.invoker:

gcloud functions add-iam-policy-binding FUNCTION_NAME \
 --member="allUsers" \
 --role="roles/cloudfunctions.invoker"

Também é possível usar o Console do Google Cloud para modificar essas permissões.

O comando gcloud functions deploy inclui um prompt para ajudá-lo a configurar as permissões de invocação durante a criação da função. Também inclui a sinalização --allow-unauthenticated:

gcloud functions deploy FUNCTION_NAME \
  --trigger-http \
--allow-unauthenticated \
...

É necessário especificar a sinalização --allow-unauthenticated somente ao criar a função inicial. Implantações subsequentes que não especificam a sinalização --allow-unauthenticated não modificam as permissões do IAM.

Compartilhamento restrito de domínio

Se você estiver desenvolvendo funções em um projeto que está sujeito à política da organização de compartilhamento restrito de domínio, não será possível fazer a invocação não autenticada de uma função. Essa política restringe o compartilhamento público de dados para reduzir o risco de exfiltração de dados externa.

Para implantar funções que permitem invocação não autenticada, recomendamos remover a política da organização de compartilhamento restrito de domínio no projeto. As políticas da organização podem ser definidas no nível da organização, da pasta ou do projeto.

Depois de criar suas funções que permitem a invocação não autenticada, a política da organização poderá ser reativada:

  • As funções implantadas antes de a política da organização ser reativada continuarão permitindo a invocação não autenticada.
  • Novas versões dessas funções existentes podem ser implantadas sem exigir invocação autenticada.
  • Novas funções que permitam invocações não autenticadas não poderão ser implantadas.

Próximas etapas

Saiba como autenticar desenvolvedores, funções e usuários finais com segurança para as funções que você acabou de proteger.