Uma conta de serviço é uma conta associada a um aplicativo, e não a um usuário final. Talvez seja necessário usar uma conta de serviço para autenticar no Earth Engine se você estiver desenvolvendo um app ou usando a API REST. Saiba mais sobre a autenticação com contas de serviço.
Criar uma conta de serviço
Primeiro, crie um projeto do Google Cloud, caso ainda não tenha feito isso.
Para gerenciar as contas de serviço do seu projeto do Cloud, acesse o menu do Console do Cloud (Contas de serviço. Escolha o projeto, se necessário.
) e selecione IAM e administrador >Para criar uma nova conta de serviço, clique no link + CRIAR CONTA DE SERVIÇO.
Se você criou um projeto do App Engine, talvez já tenha uma conta de serviço padrão (conta de serviço padrão do App Engine) para ele. Se você estiver configurando um projeto do App Engine, para o Papel da conta de serviço, escolha Projeto > Editor.
Criar uma chave privada para a conta de serviço
Depois de criar uma conta de serviço, clique no menu dela (
) e em Criar chave > JSON. Faça o download do arquivo de chave JSON.Proteger o arquivo de chave
O arquivo de chave é um arquivo especial que permite que os programas acessem as APIs do Google em nome da sua conta de serviço. Não permita que ninguém tenha acesso não autorizado a ela, porque isso permitiria que as APIs do Google fossem acessadas em seu nome. Nunca armazene sua chave privada em um local público, como uma pasta compartilhada ou um repositório de origem. Se você perder a chave particular, poderá revogar facilmente o acesso a uma conta de serviço e criar uma nova usando o console do Cloud. Consulte este guia para mais detalhes.
Registrar a conta de serviço para usar o Earth Engine
Todas as contas de serviço são criadas em um projeto do Cloud, que pode ser o mesmo usado para seu app do App Engine ou VM do Cloud. Verifique se o projeto do Cloud está registrado para acessar o Earth Engine e se a API Earth Engine está ativada no projeto. Todas as contas de serviço no projeto com as permissões corretas terão acesso ao Earth Engine, e não será necessário registrá-las separadamente.
Não é mais possível registrar contas de serviço individuais. O projeto do Cloud precisa ser registrado.
Usar uma conta de serviço com uma chave privada
Para fazer a autenticação no Earth Engine usando uma conta de serviço:
- Crie e faça o download de um arquivo de chave privada JSON (
.private-key.json
) para a conta de serviço. - Teste o seguinte código Python de onde você colocou o arquivo
.private-key.json
:import ee service_account = 'my-service-account@...gserviceaccount.com' credentials = ee.ServiceAccountCredentials(service_account, '.private-key.json') ee.Initialize(credentials)
Se você conseguir inicializar sem erros, a conta de serviço estará pronta para uso.
O que devo fazer se receber um erro invalid_grant?
O OAuth2 pode ser muito sensível à defasagem de horário. Se você tiver certeza de que configurou tudo corretamente e seu contato do Google tiver verificado que a conta de serviço foi aprovada, verifique se o relógio do seu computador está sincronizado com a hora da rede.
Para sistemas Ubuntu, a chamada para sincronizar o relógio do computador é:
ntpdate ntp.ubuntu.com
Para sistemas que usam o OS X, abra System Preferences > Date & Time > Date & Time (novamente) e selecione Set date and time automatically.
Usar uma conta de serviço padrão
Se você estiver usando uma conta de serviço padrão, primeiro é necessário modificar os escopos de acesso da VM para a conta de serviço do Compute Engine para "Permitir acesso total a todas as APIs do Cloud". Se você estiver usando contas de serviço padrão no Dataflow ou no App Engine, essa etapa não será necessária.Para fazer a autenticação no Earth Engine usando uma conta de serviço padrão, use o seguinte código:
from google.auth import compute_engine import ee credentials = compute_engine.Credentials(scopes=['https://www.googleapis.com/auth/earthengine']) ee.Initialize(credentials)
Configurar o acesso à API REST
Se a conta de serviço for fazer cálculos usando a API REST, conceda a ela a permissão no nível do projeto, especificamente a função Visualizador de recursos do Google Earth Engine. Dependendo da configuração do projeto, talvez seja necessário conceder à conta de serviço o papel Consumidor do Service Usage. Consulte a página Controle de acesso para mais informações sobre as permissões de projeto necessárias para usar o Earth Engine.