View a markdown version of this page

Best practice - Servizio di posizione Amazon

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Best practice

Questa sezione descrive le best practice per proteggere le applicazioni Amazon Location Service e ottimizzare l'utilizzo dell'autenticazione. Implementando l'isolamento delle credenziali, il monitoraggio e le restrizioni appropriate, puoi ridurre al minimo i rischi per la sicurezza e controllare i costi. Per indicazioni sulla scelta tra le chiavi API, Amazon Cognito e AWS Identity and Access Management, consulta. Scelta di un metodo di autenticazione

Gestione delle credenziali

Una corretta gestione delle credenziali riduce i rischi per la sicurezza e semplifica le operazioni quando è necessario ruotare o revocare l'accesso.

  • Utilizza credenziali separate per applicazione: crea chiavi API o ruoli IAM distinti per ogni applicazione o ambiente (sviluppo, gestione temporanea, produzione). Ciò limita il raggio di esplosione se una credenziale viene compromessa.

  • Applica il principio del privilegio minimo: concedi solo le autorizzazioni minime richieste per ogni caso d'uso. Limita l'accesso a API e risorse specifiche anziché utilizzare caratteri jolly.

  • Ruota regolarmente le credenziali: ruota periodicamente le chiavi API e rivedi le politiche IAM. Rimuovi prontamente le credenziali non utilizzate.

  • Non esporre mai le credenziali nel codice sorgente: archivia chiavi API, ID del pool di identità di Amazon Cognito e altri valori sensibili in variabili di ambiente, gestori segreti o archivi di configurazione sicuri. Non affidarli al controllo della versione.

Ottimizzazione delle chiavi API

Le chiavi API forniscono un modo semplice per concedere l'accesso non autenticato e in sola lettura alle risorse Maps, Places e Routes. Segui queste pratiche per ridurre al minimo i rischi per la sicurezza e ottimizzare l'utilizzo.

  • Limita azioni e risorse: quando crei una chiave API, specifica solo le azioni e le risorse necessarie all'applicazione. Ad esempio, un'applicazione che utilizza solo mappe dovrebbe consentire geo-maps:* azioni solo sulla risorsa del provider di mappe.

  • Applica le restrizioni relative ai client: configura le restrizioni relative ai referenti di dominio per le applicazioni Web o le restrizioni relative agli identificativi delle applicazioni per le app Android e iOS. In questo modo si evita che la chiave venga utilizzata su origini non autorizzate. Per ulteriori informazioni, consulta Limita l'utilizzo delle chiavi API in base all'origine della richiesta.

  • Imposta i tempi di scadenza: utilizza la scadenza della chiave per imporre una rotazione regolare. Crea una nuova chiave prima della scadenza di quella precedente, aggiorna l'applicazione, quindi disattiva la vecchia chiave.

  • Monitora l'utilizzo per chiave: utilizza le CloudWatch metriche con la ApiKeyName dimensione per tenere traccia dell'utilizzo di ciascuna chiave singolarmente. Imposta allarmi in caso di picchi imprevisti. CallCount

  • Elimina le chiavi non utilizzate: controlla regolarmente le tue chiavi API ed elimina quelle che non sono più in uso. Una chiave inattiva che è stata disattivata può essere eliminata dopo 90 giorni.

Limita l'utilizzo delle chiavi API in base all'origine della richiesta

Puoi configurare le chiavi API con restrizioni client che limitano l'accesso a domini o applicazioni mobili specifici. In caso di restrizioni per dominio, il servizio autorizza le richieste solo quando l'intestazione HTTP Referer corrisponde al valore fornito. In caso di restrizioni per applicazione Android o Apple, il servizio autorizza le richieste solo quando i campi di intestazione HTTP dell'identificatore dell'applicazione corrispondono ai valori forniti.

Per ulteriori informazioni sulle restrizioni delle chiavi API, consulta ApiKeyRestrictionsil riferimento alle API di Amazon Location Service.

Identificatori di applicazioni Android:

  • X-Android-Package:

    Un identificatore univoco per le applicazioni Android, definito nel build.gradle file dell'app, in genere con un formato a dominio inverso.

    Esempio:

    com.mydomain.appname

  • X-Android-Cert:

    L' SHA-1 hash del certificato di firma utilizzato per firmare l'APK Android.

    Esempio:

    BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

Identificatori delle applicazioni Apple:

  • X-Apple-Bundle-Id:

    Un identificatore univoco per le applicazioni Apple (iOS, macOS, ecc.), definito nelle app, in genere seguendo un Info.plist formato a dominio inverso.

    Esempio:

    com.mydomain.appname

Ottimizzazione di Amazon Cognito

Amazon Cognito offre un controllo degli accessi più granulare rispetto alle chiavi API e supporta utenti autenticati e non autenticati.

  • Limita i ruoli non autenticati: quando utilizzi pool di identità per l'accesso anonimo, collega policy IAM che consentono solo le azioni e le risorse specifiche di Amazon Location di cui la tua applicazione ha bisogno.

  • Usa le chiavi condizionali per il filtraggio degli IP: aggiungi aws:SourceIp condizioni alle tue policy IAM per limitare l'accesso a intervalli di IP noti, se necessario.

  • Mantieni i pool di identità nella stessa regione: crea il pool di identità di Amazon Cognito nella stessa AWS regione delle risorse di Amazon Location Service per evitare la latenza tra le regioni e garantire un accesso corretto.

  • Usa identità autenticate quando possibile: se la tua applicazione ha un flusso di accesso, usa i pool di utenti o le identità federate di Amazon Cognito per concedere ruoli autenticati con autorizzazioni specifiche anziché fare affidamento su accessi non autenticati.

Ottimizzazione IAM

Per le applicazioni lato server e gli strumenti interni, utilizzali AWS Identity and Access Management per il pieno controllo dell'accesso.

  • Utilizza i ruoli IAM anziché le credenziali a lungo termine: per le applicazioni in esecuzione su servizi di AWS elaborazione (come Amazon EC2, Lambda o Amazon ECS), utilizza i ruoli IAM per fornire automaticamente credenziali temporanee.

  • Applica le autorizzazioni a livello di risorsa: specifica gli ARN delle risorse nelle tue policy anziché utilizzare caratteri jolly. Ad esempio, limita l'accesso a risorse specifiche di tracker o di raccolta di geofence.

  • Utilizza le condizioni delle policy: aggiungi condizioni come la limitazione dell'accesso aws:RequestedRegion a regioni specifiche o il controllo degli aws:PrincipalTag accessi basato sugli attributi.

  • Abilita CloudTrail: consente AWS CloudTrail di registrare tutte le chiamate API di Amazon Location Service per il controllo e la conformità. Controlla regolarmente i log per individuare modelli di accesso imprevisti.