Como autorizar o acesso via IAM

Use o Identity and Access Management (IAM) para autorizar identidades a executar ações administrativas nas funções, como criar, atualizar e excluir. Você adicionamembros (as identidades que você quer ativar, geralmente um e-mail de usuário ou conta de serviço) para a função e, em seguida, conceda a esses membros os papéis de IAM apropriados. Esses papéis incluem permissões que definem as ações que podem ser feitas.

Como ativar o acesso a uma função

Controle ações em uma função, concedendo ou restringindo papéis a identidades individuais por meio do IAM.

Como adicionar membros e conceder papéis

Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

  2. Clique na caixa de seleção ao lado da função em que você tem interesse.

  3. Clique em Permissões na parte superior da tela. O painel Permissões é aberto.

  4. Clique em Adicionar membro.

  5. No campo Novos membros, insira uma ou mais identidades que precisam acessar sua função. Geralmente, este é um e-mail de usuário ou conta de serviço.

  6. Escolha um papel ou mais 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.

  7. Clique em Save.

GCloud

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

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

em que FUNCTION_NAME é o nome da função, MEMBER_ID é a identidade do membro, geralmente um e-mail e ROLE é o papel.

Para ver uma lista de fontes que podem fornecer um MEMBER_ID, consulte a página de conceitos do 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 papéis dos membros

Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

  2. Clique na caixa de seleção ao lado da função em que você tem interesse.

  3. Clique em Permissões na parte superior da tela. O painel Permissões é aberto.

  4. Procure o membro que você quer remover. Analise todos os papéis que o membro recebeu.

  5. Quando encontrar o membro que você quer excluir, clique no ícone de lixeira ao lado dele. Se quiser remover completamente o membro, faça isso para todos os papéis que o membro recebeu.

GCloud

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

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

em que FUNCTION_NAME é o nome da função, MEMBER_ID é a identidade do membro da conta de serviço, precedida de serviceAccount:, e ROLE é o papel.

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

Se o membro tiver vários papéis, especifique aquele que você quer remover

Adição ou remoção em massa de membros

Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

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

  3. Clique em Permissões na parte superior da tela. O painel Permissões é aberto.

Se você quiser adicionar membros, siga as etapas abaixo:

  1. Clique em Adicionar membro.

  2. Em Novos membros, insira várias identidades que precisam acessar sua função.

  3. Escolha um papel ou mais 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.

  4. Clique em Save.

Se você quiser remover membros:

  1. Procure o membro que você quer remover ou expanda o papel que ele tem.

  2. Quando você encontrar o membro que quer excluir, clique no ícone de lixeira ao lado dele. Se quiser remover completamente o membro, faça isso para todos os papéis que o membro recebeu.

GCloud

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

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

Use o comando gcloud functions set-iam-policy:

gcloud functions set-iam-policy FUNCTION_NAME policy.json

Para uma lista de fontes aceitáveis para MEMBER_ID, consulte a página de conceitos do 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 membros

Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

  2. Clique no nome da função em que você tem interesse.

  3. Selecione a guia Permissões. O painel Permissões é aberto.

  4. Verifique se a guia Membros está selecionada.

GCloud

Use o comando gcloud functions get-iam-policy:

gcloud functions get-iam-policy FUNCTION_NAME

Como permitir a invocação da função HTTP não autenticada

Desde 15 de janeiro de 2020, por padrão, todas as funções HTTP exigem que a maioria dos invocadores seja autenticadas. Para permitir a invocação não autenticada, especifique isso durante ou após a implantação.

Use uma variante especial da abordagem descrita acima para conceder aos invocadores não autenticados a capacidade de invocar uma função HTTP.

.

Na implantação

Console

Selecione Permitir invocações não autenticadas na seção Autenticação no painel Configuração.

GCloud

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 \
...

As implantações subsequentes da mesma função não alteram seu status, mesmo se você não usar essa sinalização.

Após a implantação

Para permitir a invocação não autenticada de uma função, adicione o código especial do membro allUsers à função e conceda a ela o papel de Chamador do Cloud Functions:

Console

  1. Acesse o Console do Google Cloud:

    Ir para o Google Cloud Console

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

  3. Clique em Permissões na parte superior da tela. O painel Permissões é aberto.

  4. Clique em Adicionar membro.

  5. No campo Novos membros, digite allUsers.

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

  7. Clique em Salvar.

GCloud

Use o comando gcloud functions add-iam-policy-binding para adicionar o código do membro especial allUsers a uma função e conceder a ele o papel roles/cloudfunctions.invoker:

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

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.
  • As funções novas com invocações não autenticadas não poderão ser implantadas.

Como controlar o acesso a 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.