View a markdown version of this page

Bonnes pratiques - Amazon Location Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Bonnes pratiques

Cette section décrit les meilleures pratiques pour sécuriser vos applications Amazon Location Service et optimiser l'utilisation de l'authentification. En mettant en œuvre l'isolation des informations d'identification, la surveillance et les restrictions appropriées, vous pouvez minimiser les risques de sécurité et contrôler les coûts. Pour obtenir des conseils sur le choix entre les clés d'API, Amazon Cognito et Gestion des identités et des accès AWS, consultez. Choix d'une méthode d'authentification

Gestion des informations d’identification

Une gestion appropriée des informations d'identification réduit les risques de sécurité et simplifie les opérations lorsque vous devez effectuer une rotation ou une révocation d'accès.

  • Utilisez des informations d'identification distinctes par application : créez des clés d'API ou des rôles IAM distincts pour chaque application ou environnement (développement, préparation, production). Cela limite le rayon d'explosion si un identifiant est compromis.

  • Appliquez le principe du moindre privilège : accordez uniquement les autorisations minimales requises pour chaque cas d'utilisation. Limitez l'accès à des API et à des ressources spécifiques plutôt que d'utiliser des caractères génériques.

  • Rotation régulière des informations d'identification : alternez régulièrement les clés d'API et passez en revue les politiques IAM. Supprimez rapidement les informations d'identification non utilisées.

  • N'exposez jamais les informations d'identification dans le code source : stockez les clés d'API, les identifiants du pool d'identités Amazon Cognito et d'autres valeurs sensibles dans des variables d'environnement, des gestionnaires de secrets ou des magasins de configuration sécurisés. Ne les confiez pas au contrôle de version.

Optimisation des clés d'API

Les clés d'API constituent un moyen simple d'accorder un accès non authentifié en lecture seule aux ressources Maps, Places et Routes. Suivez ces pratiques pour minimiser les risques de sécurité et optimiser l'utilisation.

  • Restreindre les actions et les ressources : lors de la création d'une clé d'API, spécifiez uniquement les actions et les ressources dont l'application a besoin. Par exemple, une application uniquement cartographique ne doit autoriser les geo-maps:* actions que sur la ressource du fournisseur de cartes.

  • Appliquer les restrictions relatives aux clients : configurez les restrictions relatives aux référents de domaine pour les applications Web ou les restrictions relatives aux identifiants d'applications pour les applications Android et iOS. Cela empêche que votre clé ne soit utilisée à des fins non autorisées. Pour de plus amples informations, veuillez consulter Limiter l'utilisation des clés d'API par origine de demande.

  • Définissez les délais d'expiration : utilisez l'expiration des clés pour appliquer une rotation régulière. Créez une nouvelle clé avant que l'ancienne n'expire, mettez à jour votre application, puis désactivez l'ancienne clé.

  • Surveiller l'utilisation par clé : utilisez CloudWatch des métriques avec la ApiKeyName dimension pour suivre l'utilisation de chaque clé individuellement. Définissez des alarmes en cas de pics inattendus. CallCount

  • Supprimer les clés inutilisées — Vérifiez régulièrement vos clés d'API et supprimez celles qui ne sont plus utilisées. Une clé inactive qui a été désactivée peut être supprimée après 90 jours.

Limiter l'utilisation des clés d'API par origine de demande

Vous pouvez configurer des clés d'API avec des restrictions client qui limitent l'accès à des domaines ou à des applications mobiles spécifiques. Lors de la restriction par domaine, le service autorise les demandes uniquement lorsque l'en-tête HTTP Referer correspond à la valeur que vous fournissez. En cas de restriction par application Android ou Apple, le service autorise les demandes uniquement lorsque les champs d'en-tête HTTP de l'identifiant de l'application correspondent aux valeurs que vous fournissez.

Pour plus d'informations sur les restrictions relatives aux clés d'API, consultez ApiKeyRestrictionsle manuel Amazon Location Service API Reference.

Identifiants des applications Android :

  • X-Android-Package:

    Identifiant unique pour les applications Android, défini dans le build.gradle fichier de l'application, généralement selon un format de domaine inversé.

    Exemple :

    com.mydomain.appname

  • X-Android-Cert:

    Le SHA-1 hachage du certificat de signature utilisé pour signer l'APK Android.

    Exemple :

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

Identifiants des applications Apple :

  • X-Apple-Bundle-Id:

    Identifiant unique pour les applications Apple (iOS, macOS, etc.), défini dans les applicationsInfo.plist, généralement selon un format de domaine inversé.

    Exemple :

    com.mydomain.appname

Optimisation d'Amazon Cognito

Amazon Cognito fournit un contrôle d'accès plus précis que les clés d'API et prend en charge les utilisateurs authentifiés et non authentifiés.

  • Limitez les rôles non authentifiés : lorsque vous utilisez des pools d'identités pour un accès anonyme, associez des politiques IAM qui autorisent uniquement les actions et les ressources Amazon Location spécifiques dont votre application a besoin.

  • Utilisez des clés de condition pour le filtrage IP : ajoutez aws:SourceIp des conditions à vos politiques IAM pour restreindre l'accès aux plages d'adresses IP connues, le cas échéant.

  • Conservez les pools d'identités dans la même région : créez le pool d'identités Amazon Cognito dans la même AWS région que vos ressources Amazon Location Service afin d'éviter la latence entre les régions et de garantir un accès approprié.

  • Utilisez des identités authentifiées lorsque cela est possible : si votre application dispose d'un flux de connexion, utilisez des groupes d'utilisateurs Amazon Cognito ou des identités fédérées pour octroyer des rôles authentifiés avec des autorisations spécifiques plutôt que de vous fier à un accès non authentifié.

Optimisation IAM

Pour les applications côté serveur et les outils internes, utilisez-le Gestion des identités et des accès AWS pour un contrôle total de l'accès.

  • Utilisez des rôles IAM plutôt que des informations d'identification à long terme : pour les applications exécutées sur des services AWS informatiques (tels qu'Amazon EC2, Lambda ou Amazon ECS), utilisez des rôles IAM pour fournir automatiquement des informations d'identification temporaires.

  • Appliquez des autorisations au niveau des ressources : spécifiez les ARN des ressources dans vos politiques plutôt que d'utiliser des caractères génériques. Par exemple, limitez l'accès à des ressources spécifiques de suivi ou de collecte de géofences.

  • Utiliser des conditions de politique : ajoutez des conditions telles que aws:RequestedRegion la limitation de l'accès à des régions spécifiques ou le contrôle d'accès basé sur aws:PrincipalTag les attributs.

  • Activer CloudTrail : AWS CloudTrail à utiliser pour enregistrer tous les appels d'API Amazon Location Service à des fins d'audit et de conformité. Consultez régulièrement les journaux pour détecter les modèles d'accès inattendus.