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ê adicionaprincipais (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 principais 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 principais 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 principal.

  5. No campo Novos principais, 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 Salvar.

GCloud

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

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

em que FUNCTION_NAME é o nome da função, PRINCIPAL_ID é o identificador principal, geralmente um e-mail, e ROLE é o papel.

Para ver uma lista de fontes que podem fornecer um PRINCIPAL_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 IAM do Cloud Functions.

Como remover papéis dos principais

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 principal que você quer remover. Analise todos os papéis que o principal recebeu.

  5. Quando encontrar o principal que você quer excluir, clique no ícone de lixeira ao lado dele. Se você quiser remover completamente o acesso do principal, faça isso para cada papel concedido.

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 e-mail que identifica a conta de serviço, precedida por serviceAccount: e ROLE é o papel.

Para uma lista de fontes aceitáveis para PRINCIPAL_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 principal tiver vários papéis, especifique aquele que você quer remover

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

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 principais:

  1. Clique em Adicionar principal.

  2. Em Novos principais, 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 Salvar.

Se você quiser remover os principais:

  1. Pesquise o principal que você quer remover ou expanda um papel do principal.

  2. Quando você encontrar o principal que quer excluir, clique no ícone de lixeira ao lado dele. Se você quiser remover completamente o acesso do principal, faça isso para cada papel concedido.

GCloud

Crie uma política do IAM chamada, 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 uma lista de fontes aceitáveis para PRINCIPAL_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 IAM do Cloud Functions.

Como ver os principais

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 Principais 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, conceda o papel de Chamador do Cloud Functions ao principal allUsers especial na função:

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

  5. No campo Novos principais, 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 conceder o papel roles/cloudfunctions.invoker ao principal allUsers especial na função:

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 em todas as funções de um projeto, conceda-os no projeto.