Como conceder e revogar o acesso à API

Controlar quem pode acessar uma API é uma parte importante do seu desenvolvimento. Por exemplo, ao testar sua API, convém automatizar a reimplantação das configurações atualizadas do Cloud Endpoints usando uma conta de serviço que tenha permissão para isso. Por padrão, somente o proprietário do projeto pode gerenciar o acesso a uma API. Nesta página, mostramos como conceder e revogar o acesso à API usando o console do Google Cloud ou a Google Cloud CLI.

O Endpoints usa os papéis Identity e Access Management para controle de acesso no nível da API É possível conceder e revogar acesso a um usuário, conta de serviço ou grupo do Google.

Os Grupos do Google são uma maneira prática de gerenciar o acesso de um conjunto de usuários. Em vez de conceder ou revogar o acesso a cada usuário ou conta de serviço, faça-o a um grupo inteiro de uma só vez. Também é possível adicionar e remover membros de um Grupo do Google facilmente, em vez de conceder ou revogar o papel do IAM para cada um.

Conceder acesso

Console do Google Cloud

  1. No console do Google Cloud, acesse a página Endpoints > Serviços do seu projeto.

    Ir para a página Serviços do Endpoints

  2. Se tiver mais de uma API, clique no nome da que desejar.
  3. Se o painel lateral Permissões não estiver aberto, clique em Permissões.
  4. Na caixa Adicionar membros, insira o endereço de e-mail de um usuário, conta de serviço ou Grupo do Google.
  5. No menu suspenso Selecionar um papel, clique em Service Management e selecione um dos seguintes papéis:
    • Consumidor de serviço: esse papel contém as permissões para que um membro que não pertença ao projeto visualize e ative a API em seu próprio projeto. Se você criou um portal para sua API, esse papel permite que os usuários da API acessem o portal.
    • Controlador de serviço: esse papel contém as permissões para fazer chamadas para os métodos check e report na API Service Infrastructure durante o tempo de execução.
    • Editor de configuração do serviço: esse papel contém as permissões mínimas exigidas pelo Service Management para implantar uma configuração do Endpoints em um serviço atual.
    • Administrador do Service Management: esse papel contém as permissões nos papéis Editor de configuração do serviço, Consumidor de serviço e Controlador de serviço, além das permissões necessárias para conceder acesso a essa API usando gcloud ou os métodos programáticos descritos em Como conceder, alterar e revogar acesso a recursos.

    Para mais informações sobre esse papel, consulte o tópico Controle de acesso à API Service Management. Embora o console do Google Cloud permita selecionar outros papéis, eles não são úteis para gerenciar sua API.

  6. Para adicionar o membro ao papel de IAM especificado, clique em Adicionar.
  7. Adicione quantos membros e papéis forem necessários.
  8. Os papéis do Service Management não permitem que os usuários acessem a página Endpoints > Serviços no console do Google Cloud. Se você quiser que os usuários acessem a página Endpoints > Serviços, conceda a eles o papel de Leitor do projeto ou superior. Para mais detalhes, consulte Como conceder, alterar e revogar acesso a recursos.

gcloud

  1. Abra o Cloud Shell ou, se você tiver a Google Cloud CLI instalada, abra uma janela de terminal.
  2. Digite o comando gcloud aplicável:
    • Se você estiver concedendo acesso a um usuário, execute o comando a seguir:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Para o papel, especifique um dos papéis de IAM a seguir:

      • roles/servicemanagement.configEditor: esse papel contém as permissões mínimas exigidas pelo Service Management para implantar uma configuração do Endpoints em um serviço atual.
      • roles/servicemanagement.admin: esse papel contém as permissões em roles/servicemanagement.configEditor, roles/servicemanagement.serviceConsumer e roles/servicemanagement.serviceController, além das permissões necessárias para conceder acesso a essa API usando gcloud ou os métodos programáticos descritos em Como conceder, alterar e revogar acesso a recursos.

      Exemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • Se você estiver concedendo acesso a uma conta de serviço, execute o seguinte comando:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      Exemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • Se você estiver concedendo acesso a um Grupo do Google, execute o seguinte:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      Exemplo:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. Os papéis do Service Management não permitem que os usuários acessem a página Endpoints > Serviços no console do Google Cloud. Se você quiser que os usuários acessem a página Endpoints > Serviços, conceda a eles o papel de Leitor do projeto ou superior. Para mais detalhes, consulte Como conceder, alterar e revogar acesso a recursos.

Como revogar o acesso

Para revogar o acesso à API, remova o papel do IAM do membro que tinha a função anteriormente.

Console do Google Cloud

  1. No console do Google Cloud, acesse a página Endpoints > Serviços do seu projeto.

    Ir para a página Serviços do Endpoints

  2. Se tiver mais de uma API, clique no nome da que desejar.
  3. Se o painel lateral Permissões não estiver aberto, clique em Permissões.
  4. Localize o membro para quem você quer revogar o acesso. É possível clicar no cartão Papel aplicável para ver uma lista de membros ou digitar um nome ou papel na caixa Pesquisar membros.
  5. Clique em Excluir .
  6. Se você também quiser revogar o acesso de um usuário ao projeto do Google Cloud, consulte Como conceder, alterar e revogar acesso a recursos para mais detalhes.

gcloud

  1. Abra o Cloud Shell ou, se você tiver a CLI gcloud instalada, abra uma janela do terminal.
  2. Digite o comando gcloud aplicável:
    • Se estiver revogando o acesso de um usuário, execute o seguinte comando:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Exemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • Se estiver revogando o acesso de uma conta de serviço, execute o seguinte comando:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      Exemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • Se estiver revogando o acesso de um Grupo do Google, execute o seguinte comando:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      Exemplo:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. Se você também quiser revogar o acesso de um usuário ao projeto do Google Cloud, consulte Como conceder, alterar e revogar acesso a recursos para mais detalhes.

A seguir

Saiba mais sobre: