Autorize o acesso com a IAM (1.ª geração)
Usa o Identity and Access Management (IAM) para autorizar identidades a realizar ações administrativas nas suas funções, como criá-las, atualizá-las e eliminá-las. Adiciona diretores (as identidades que quer ativar, normalmente um utilizador ou um email de conta de serviço) à função e, em seguida, concede a esses diretores as funções de IAM adequadas. Estas funções incluem autorizações que definem as ações que podem realizar.
Ativar o acesso a uma função
Pode controlar as ações numa função concedendo ou restringindo funções a identidades individuais através da IAM.
Adicionar responsáveis e conceder funções
Consola
Aceda à Google Cloud consola:
Clique na caixa de verificação junto à função que lhe interessa.
Clique em Autorizações na parte superior do ecrã. O painel Autorizações é aberto.
Clique em Adicionar principal.
No campo Novos responsáveis, introduza uma ou mais identidades que precisam de acesso à sua função. Normalmente, trata-se de um email de utilizador ou de conta de serviço.
Selecione uma ou mais funções no menu pendente Selecionar uma função. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
do IAM das funções do Cloud RunClique em Guardar.
gcloud
Use o comando gcloud functions add-iam-policy-binding:
gcloud functions add-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
onde FUNCTION_NAME é o nome da função, PRINCIPAL_ID é o identificador do principal, normalmente um email, e ROLE é a função.
Para ver uma lista de origens que podem fornecer um PRINCIPAL_ID, consulte o artigo
Identificadores principais.
Para ver uma lista de valores aceitáveis para ROLE, consulte
a página de referência das funções do Cloud Run e das funções da IAM.
Remover funções de responsáveis
Consola
Aceda à Google Cloud consola:
Clique na caixa de verificação junto à função que lhe interessa.
Clique em Autorizações na parte superior do ecrã. O painel Autorizações é aberto.
Pesquise o principal que quer remover. Procure em todas as funções que o principal recebeu.
Quando encontrar o principal na função que quer eliminar, clique no ícone de caixote do lixo junto ao mesmo. Se quiser remover completamente o acesso do principal, faça-o para cada função que lhe foi concedida.
gcloud
Use o comando gcloud functions remove-iam-policy-binding:
gcloud functions remove-iam-policy-binding FUNCTION_NAME \ --member=PRINCIPAL_ID \ --role=ROLE
em que FUNCTION_NAME é o nome da função,
PRINCIPAL_ID é o endereço de email que identifica
a conta de serviço, precedido de serviceAccount:,
e ROLE é a função.
Para ver uma lista de origens aceitáveis para PRINCIPAL_ID, consulte o artigo
Identificadores principais.
Para ver uma lista de valores possíveis para ROLE, consulte a
página de referência das funções do Cloud Run e das funções da IAM.
Se o principal tiver recebido várias funções, certifique-se de que especifica a que quer remover.
Adição em massa de principais
Consola
Aceda à Google Cloud consola:
Clique nas caixas de verificação junto às funções às quais quer conceder ou restringir o acesso.
Clique em Autorizações na parte superior do ecrã. O painel Autorizações é aberto.
Para adicionar diretores:
Clique em Adicionar principal.
No campo Novos responsáveis, introduza várias identidades que precisam de acesso à sua função.
Selecione uma ou mais funções no menu pendente Selecionar uma função. As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.
Clique em Guardar.
gcloud
Crie uma política de IAM com o nome, por exemplo, policy.json:
{ "bindings": [ { "role": ROLE, "members": [ PRINCIPAL_ID ] } ] }
Use o comando gcloud functions set-iam-policy:
gcloud functions set-iam-policy FUNCTION_NAME policy.json
Para ver uma lista de origens aceitáveis para PRINCIPAL_ID, consulte o artigo
Identificadores principais.
Para ver uma lista de valores aceitáveis para ROLE, consulte
a página de referência das funções do Cloud Run e das funções da IAM.
Visualização de diretores
Consola
Aceda à Google Cloud consola:
Clique no nome da função que lhe interessa.
Selecione o separador Autorizações. O painel Autorizações é aberto.
Selecione o separador Vista por responsáveis para ver uma lista de todos os responsáveis com autorizações na função selecionada.
gcloud
Use o comando gcloud functions get-iam-policy:
gcloud functions get-iam-policy FUNCTION_NAME
Permitir a invocação de funções HTTP não autenticadas
A partir de 15 de janeiro de 2020, as funções HTTP sem a opção Permitir invocações não autenticadas ativada restringem o acesso aos utilizadores finais e às contas de serviço que não têm as autorizações adequadas.
Para permitir invocações não autenticadas, tem de especificar esta opção na implementação ou após a mesma.
Usa uma variante especial da abordagem descrita anteriormente para conceder aos invocadores não autenticados a capacidade de invocar uma função HTTP.
Na implementação
Consola
Selecione Permitir invocações não autenticadas na secção Autenticação no painel Acionador.
gcloud
O comando gcloud functions deploy inclui um comando para ajudar a configurar as autorizações de invocação durante a criação da função. Também pode incluir a flag --allow-unauthenticated:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --trigger-http \ --allow-unauthenticated \ ...
As implementações subsequentes da mesma função não alteram o respetivo estado, mesmo que não use esta flag.
Após a implementação
Para permitir a invocação não autenticada de uma função, conceda a função Cloud Functions Invoker ao principal especial allUsers na função:
Consola
Aceda à Google Cloud consola:
Clique na caixa de verificação junto à função de receção. (Não clique na função em si.)
Clique em Autorizações na parte superior do ecrã. O painel Autorizações é aberto.
Clique em Adicionar principal.
No campo Novos diretores, escreva
allUsers.Selecione a função Cloud Functions > Cloud Functions Invoker no menu pendente Selecionar uma função.
Em resposta à caixa de diálogo, clique em Permitir acesso público.
gcloud
Use o comando gcloud functions add-iam-policy-binding para conceder a função roles/cloudfunctions.invoker ao principal especial allUsers na função:
gcloud functions add-iam-policy-binding FUNCTION_NAME \ --member="allUsers" \ --role="roles/cloudfunctions.invoker"
Consulte a
gcloud functions add-iam-policy-binding referência
para mais informações sobre estes campos.
Partilha restrita ao domínio
Se estiver a desenvolver funções num projeto sujeito à política da organização de partilha restrita ao domínio não pode permitir a invocação não autenticada de uma função. Esta política restringe a partilha de dados públicos para reduzir o risco de exfiltração de dados.
Se quiser implementar funções que permitam a invocação não autenticada, recomendamos que remova a política da organização de partilha restrita de domínio no projeto. As políticas de organização podem ser definidas ao nível da organização, da pasta ou do projeto.
Depois de criar as funções que permitem a invocação não autenticada, pode reativar a política da organização:
- As funções implementadas antes de a política de organização ter sido reativada vão continuar a permitir a invocação não autenticada.
- As novas versões destas funções existentes podem ser implementadas sem exigir uma invocação autenticada.
- Não é possível implementar novas funções que permitam invocações não autenticadas.
Controlar o acesso a todas as funções num projeto
Se quiser conceder funções em todas as funções num projeto, pode conceder estas funções no projeto.