Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Proteja as credenciais de nuvem do seu app Apple Firebase ML

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Se seu aplicativo da Apple usa uma das APIs de nuvem do Firebase ML, antes de iniciar seu aplicativo em produção, você deve seguir algumas etapas adicionais para impedir o acesso não autorizado à API.

1. Reduza o escopo das chaves de API existentes

Primeiro, configure suas chaves de API existentes para impedir o acesso à API Cloud Vision:

  1. Abra a página Credenciais do Console do Google Cloud. Quando solicitado, selecione seu projeto.

  2. Para cada chave de API existente na lista, abra a visualização de edição.

  3. Na seção de restrições de API , selecione Restringir chave e adicione à lista todas as APIs às quais você deseja que a chave de API tenha acesso. Certifique-se de não incluir a API Cloud Vision.

    Ao configurar as restrições de API de uma chave de API , você declara explicitamente as APIs às quais a chave tem acesso. Por padrão, quando a seção de restrições de API tem a opção Não restringir chave selecionada, uma chave de API pode ser usada para acessar qualquer API habilitada para o projeto.

Agora, suas chaves de API existentes não concederão acesso a serviços de ML na nuvem, mas cada chave continuará funcionando para todas as APIs que você adicionou à lista de restrições de API .

Observe que, se você ativar APIs adicionais no futuro, deverá adicioná-las à lista de restrições de API para a chave de API aplicável.

2. Crie uma nova chave de API para uso com o Firebase ML

Em seguida, crie uma nova chave de API para o Firebase ML que permita apenas chamadas para a API Cloud Vision:

  1. Retorne à página Credenciais . Certifique-se de que seu projeto do Firebase ainda esteja selecionado.

  2. Clique em Criar credenciais > Chave de API . Anote a nova chave de API e clique em Restringir chave .

  3. Na seção de restrições da API , selecione Restringir chave e adicione à lista apenas a API Cloud Vision.

Essa chave de API concede acesso apenas à API Cloud Vision e pode ser usada pelo Firebase ML para acessar modelos baseados em nuvem.

Para ajudar a mitigar as consequências de uma chave comprometida, você deve reduzir a cota por usuário da API Cloud Vision da configuração padrão. Para fazer isso:

  1. Abra a página Cotas da API Cloud Vision do Console do Google Cloud. Quando solicitado, selecione seu projeto.

  2. Na seção Solicitações , defina a cota Solicitações por minuto por usuário como algo razoável para seu aplicativo. Por exemplo, se seu aplicativo envolve o upload de uma imagem de um documento para recuperar seu texto, é improvável que um usuário faça isso mais de uma vez a cada poucos segundos, portanto, uma cota de 30 a 40 provavelmente seria segura.

    Observe que, neste contexto, "solicitações por usuário" se referem a solicitações de um único endereço IP. Talvez seja necessário considerar isso se você espera que vários usuários usem seu aplicativo ao mesmo tempo por trás de um NAT.

4. Chame as APIs do Cloud usando sua chave de API do Firebase ML

Por fim, no seu aplicativo, configure o Firebase ML para usar sua nova chave de API.

Como a chave da API Firebase ML permite acesso não autenticado à API Cloud Vision, é importante manter a chave confidencial para evitar o uso não autorizado e cobranças na sua conta de faturamento. Para fazer isso, você deve evitar incluir sua chave de API no binário do seu aplicativo. Em vez disso, no tempo de execução do aplicativo, verifique se um usuário bom conhecido está conectado e, somente então, recupere a chave de API de um servidor.

Mesmo quando essas práticas são observadas, é possível que uma chave de API seja comprometida. Você deve tomar medidas para ajudar a mitigar as consequências de uma chave comprometida, como reduzir a cota por usuário da API conforme descrito acima, implementar políticas de rotação de chaves e emitir chaves diferentes para diferentes grupos de usuários.

Depois que seu aplicativo tiver adquirido a chave de API com segurança, quando você quiser chamar uma API do Firebase ML Cloud, especifique a chave:

Rápido

if let cloudVisionKey = getYourApiKey() {  // See note above about securing your API key
    let options = VisionCloudDetectorOptions()
    options.apiKeyOverride = cloudVisionKey
    let cloudDetector = Vision.vision().cloudLandmarkDetector(options: options)
}

Objetivo-C

NSString *cloudVisionKey = [self getYourApiKey];  // See note above about securing your API key
if (cloudVisionKey != nil) {
    FIRVisionCloudDetectorOptions *options =
            [[FIRVisionCloudDetectorOptions alloc] init];
    options.APIKeyOverride = cloudVisionKey;
    FIRVisionCloudLandmarkDetector *landmarkDetector =
            [vision cloudLandmarkDetectorWithOptions:options];
}

Além disso, você deve seguir o conselho geral em Protegendo uma chave de API .

Próximos passos

Consulte a lista de verificação de lançamento para obter informações sobre como preparar seu aplicativo para lançamento ao usar outros recursos do Firebase.