Proteger suas credenciais da nuvem do kit de ML em apps para iOS

Se o aplicativo para iOS usa uma das APIs de nuvem do Kit de machine learning, antes de lançar seu aplicativo na produção, é preciso tomar algumas medidas 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 proibir o acesso à API Cloud Vision:

  1. Abra a página Credenciais do Console do Cloud. Quando solicitado, selecione o projeto com o mesmo nome do seu projeto do Firebase.

  2. Para cada chave de API na lista, abra a visualização de edição e, na seção "Restrições de chave", adicione à lista todas as APIs disponíveis, exceto a API Cloud Vision.

    Quando você configura as restrições de API de uma chave de API, declara explicitamente as APIs a que a chave concede acesso. Por padrão, quando a seção "Restrições de API" estiver vazia, uma chave de API poderá ser usada para acessar qualquer API ativada para o projeto.

Agora, suas chaves de API existentes não concederão acesso aos serviços de machine learning na nuvem, mas continuarão funcionando para as APIs ativadas por você ou ativadas automaticamente quando você configurou o Firebase.

Observe que, se você ativar quaisquer APIs adicionais no futuro, também deverá adicioná-las à lista "Restrições de API" da chave de API.

2. Crie uma nova chave de API para uso com o Kit de machine learning

Em seguida, crie uma nova chave de API para o Kit de machine learning que permita somente chamadas para a API Cloud Vision:

  1. Volte para a página Credenciais. Verifique se seu projeto do Firebase ainda está selecionado.

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

  3. Na seção "Restrições de chave", adicione somente a API Cloud Vision.

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

3. Chame APIs do Cloud com sua chave de API do Kit de machine learning

Finalmente, no seu aplicativo, configure o Kit de machine learning para usar sua nova chave de API.

Como a chave de API do Kit de machine learning permite o acesso não autenticado à API Cloud Vision, é importante manter a chave confidencial para impedir o uso não autorizado e as cobranças na sua conta de faturamento. Para isso, evite incluir sua chave de API no binário do aplicativo. Em vez disso, no tempo de execução do aplicativo, verifique se um usuário válido conhecido está conectado e, somente então, recupere a chave de API de um servidor.

Mesmo quando essas práticas forem observadas, é possível que uma chave de API seja comprometida. Tome medidas para atenuar o abuso de chaves roubadas, como a implementação de políticas de rotação de chaves e a emissão de chaves diferentes para grupos de usuários diferentes.

Depois que seu aplicativo adquirir a chave de API com segurança, especifique-a quando quiser chamar uma API do Cloud do Kit de machine learning:

Swift

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)
}

Objective-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, siga o conselho geral em Como proteger uma chave de API.

Próximas etapas

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

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.