Práticas recomendadas de produção

O Google recomenda que você siga estas práticas recomendadas ao administrar e executar seu app.

Como proteger chaves de API

Você precisa de uma chave de API para usar nossos serviços on-line, e o uso dela permite que o Google meça seu uso. Recomendamos restringir suas chaves de API para evitar uso não autorizado.

Tipos de restrição da chave de API

Há dois tipos de restrições de chave de API, e é possível usar os dois ao mesmo tempo.

Tipo de restriçãoRestringe o uso da chave a
Restrição de APIs Uma API específica.
Restrição de aplicativos Endereços IP, sites ou aplicativos específicos.

Recomendações de restrição da chave de API

Recomendamos que você comissione chaves de API separadas para os cenários a seguir.

CenárioRecomendação
Os servidores de jogos de back-end chamam a API Playable Locations para recuperar esses locais. Configurar uma chave com duas restrições:
  • Restrição de API: permite chamadas apenas para a API Playable Locations.
  • Restrição de aplicativo: permita chamadas originadas apenas dos endereços IP do seu servidor de jogos de back-end.
A versão para Android do seu app chama o SDK do Maps para Unity para recuperar dados geográficos. Configure uma chave com uma restrição de aplicativo para permitir chamadas apenas da versão para Android do seu app.
A versão para iOS do seu app chama a API do SDK do Maps para Unity para recuperar dados geográficos. Configure uma chave com uma restrição de aplicativo para permitir chamadas apenas da versão do iOS do seu app.

Para mais informações, consulte Práticas recomendadas de segurança de APIs.

Para configurar restrições da chave de API

  1. Acesse o painel de credenciais no Console do Google Cloud.
  2. Selecione a chave de API em que você quer definir uma restrição. A página de propriedades será exibida.
  3. Em Restrições de chave, selecione a guia Restrições do aplicativo e um dos quatro tipos de restrição de aplicativo.
    Tipo de restrição Descrição
    Referenciadores HTTP Aceita solicitações da lista de sites que você disponibilizar.
    Endereços IP Aceite solicitações da lista de endereços IP do servidor da Web que você informar.
    Apps Android Adicione o nome do seu pacote e a impressão digital do certificado de assinatura SHA-1 para restringir o uso ao seu app Android.
    Apps iOS Aceita solicitações do app iOS com o identificador do pacote que você disponibilizar.
  4. Em Restrições de chave, selecione a guia Restrições de API e escolha a API a que você quer restringir a chave.
  5. Clique em Salvar.

Suporte a atualizações de chaves de API

Verifique se você tem uma infraestrutura para atualizar as chaves de API na pilha de disponibilização. Dessa forma, seu jogo poderá se recuperar se a chave de API for comprometida e você precisar renová-la em pouco tempo.

Use chaves separadas para cada aplicativo. Assim, é possível trocar facilmente uma chave em uma sem afetar outros apps.

Recomendações de segurança para servidores de jogos

Quando o servidor da API Playable Locations apresenta uma interrupção por qualquer motivo, ocorrerão problemas ao ficar on-line novamente, quando vários servidores de jogos tentarem se reconectar a ele ao mesmo tempo. Esse pico de QPS pode enviar o servidor para o modo DoS, o que agrava a situação ao bloquear o tráfego de entrada.

Para atenuar essa situação, o Google pede que você implemente a espera exponencial binária no servidor de jogos. Essa é uma abordagem sistemática para espaçar as novas tentativas de conexão. Especificamente, você implementaria um algoritmo que aguarda N segundos após uma tentativa de reconexão com falha antes de tentar novamente. Se a próxima tentativa falhar, o algoritmo dobra o período de espera e tenta de novo. Se a próxima tentativa falhar, o algoritmo dobra novamente o período de espera e tenta de novo. Você continua duplicando o período de espera após cada tentativa, até que a última tentativa seja bem-sucedida.

Como processar códigos de status de retorno HTTP

Implemente a espera exponencial binária para alguns códigos de retorno HTTP, mas não para todos eles.

400s
Esses são erros do cliente que geralmente não são recuperados. Portanto, não será possível repetir solicitações com falha que produzam esses códigos de erro. Você precisa detectar esses tipos de erros durante os testes.
429
Esse é um erro de recurso esgotado que ocorre quando você começa a ficar sem cota da API. Para consultar os limites de QPS da API do seu projeto, acesse Cotas das APIs do Google.
500s
Esses são os erros do lado do servidor, o tipo de erro para o qual a espera exponencial é mais útil.