Autorize o acesso com o IAM

Usa a gestão de identidade e acesso (IAM) para autorizar identidades a realizar ações administrativas em funções criadas através da API Cloud Functions v2, por exemplo, através da gcloud functions, da API REST ou do Terraform. As ações de administração incluem a criação, a atualização e a eliminação de funções. Para informações sobre o acesso à IAM para funções criadas com o Cloud Run, consulte o artigo Controlo de acesso com a IAM.

No IAM, concede principais (as identidades que quer ativar, normalmente um utilizador ou um email de conta de serviço) as funções de IAM adequadas na função ou no projeto. Estas funções incluem autorizações que definem as ações que o principal tem permissão para realizar.

Antes de começar

Para receber a autorização de que precisa para controlar o acesso a uma função específica ou a todas as funções num projeto, peça ao seu administrador para lhe conceder a função de IAM administrador das Cloud Functions (roles/roles/cloudfunctions.admin) na função ou no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Esta função predefinida contém a autorização cloudfunctions.functions.setIamPolicy , que é necessária para controlar o acesso a uma função específica ou a todas as funções num projeto.

Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.

Consulte as funções de IAM do Cloud Functions para ver a lista completa de funções e as respetivas autorizações associadas.

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

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 do principal, normalmente um email, e ROLE é a função.

Para ver uma lista de origens que podem fornecer um PRINCIPAL_ID, consulte os identificadores principais. Para ver uma lista de valores aceitáveis para ROLE, consulte a página de referência de funções de IAM.

Remover funções de responsáveis

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 de 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

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 de IAM.

Visualização de diretores

Para ver os responsáveis, 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

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.

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.

Na implementação

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

Use o comando gcloud run services add-iam-policy-binding para conceder a função roles/run.invoker à função específica:

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

Consulte a gcloud run add-iam-policy-binding referência para mais informações sobre estes campos.