View a markdown version of this page

Prácticas recomendadas - Amazon Location Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prácticas recomendadas

En esta sección se describen las prácticas recomendadas para proteger las aplicaciones de Amazon Location Service y optimizar el uso de la autenticación. Al implementar el aislamiento de credenciales, el monitoreo y las restricciones adecuadas, puede minimizar los riesgos de seguridad y controlar los costos. Para obtener información sobre cómo elegir entre claves de API, Amazon Cognito y AWS Identity and Access Management, consulte. Elegir un método de autenticación

Administración de credenciales

La administración adecuada de las credenciales reduce el riesgo de seguridad y simplifica las operaciones cuando es necesario rotar o revocar el acceso.

  • Utilice credenciales distintas para cada aplicación: cree claves de API o funciones de IAM distintas para cada aplicación o entorno (desarrollo, puesta en escena, producción). Esto limita el radio de alcance en caso de que una credencial se vea comprometida.

  • Aplique el principio del mínimo privilegio: conceda solo los permisos mínimos necesarios para cada caso de uso. Limite el acceso a API y recursos específicos en lugar de utilizar caracteres comodín.

  • Cambie las credenciales con regularidad: rote periódicamente las claves de API y revise las políticas de IAM. Elimine rápidamente las credenciales no utilizadas.

  • Nunca exponga las credenciales en el código fuente: almacene las claves de API, los ID del grupo de identidades de Amazon Cognito y otros valores confidenciales en variables de entorno, administradores de secretos o almacenes de configuración seguros. No los comprometa con el control de versiones.

Optimización de claves de API

Las claves de API proporcionan una forma sencilla de conceder acceso no autenticado y de solo lectura a los recursos de Maps, Places y Routes. Sigue estas prácticas para minimizar el riesgo de seguridad y optimizar el uso.

  • Restrinja las acciones y los recursos: al crear una clave de API, especifique solo las acciones y los recursos que necesita la aplicación. Por ejemplo, una aplicación exclusiva para mapas solo debería permitir geo-maps:* acciones en el recurso del proveedor de mapas.

  • Aplique restricciones de cliente: configure restricciones de referencia de dominio para aplicaciones web o restricciones de identificador de aplicaciones para aplicaciones de Android e iOS. Esto evita que la clave se utilice en orígenes no autorizados. Para obtener más información, consulte Restricción del uso de las claves de API por origen de la solicitud.

  • Establezca tiempos de caducidad: utilice la caducidad de las claves para imponer una rotación regular. Cree una clave nueva antes de que caduque la anterior, actualice su aplicación y, a continuación, desactive la clave anterior.

  • Supervise el uso por clave: utilice CloudWatch métricas con la ApiKeyName dimensión para realizar un seguimiento del uso de cada clave de forma individual. Configure alarmas en caso de picos inesperados. CallCount

  • Elimine las claves no utilizadas: audite periódicamente sus claves de API y elimine las que ya no estén en uso. Una clave inactiva que se haya desactivado se puede eliminar después de 90 días.

Restricción del uso de las claves de API por origen de la solicitud

Puede configurar las claves de API con restricciones de cliente que limiten el acceso a dominios o aplicaciones móviles específicos. Al restringir por dominio, el servicio autoriza las solicitudes solo cuando el encabezado HTTP Referer coincide con el valor que usted proporciona. Cuando se restringe por aplicación de Android o Apple, el servicio autoriza las solicitudes solo cuando los campos del encabezado HTTP del identificador de la aplicación coinciden con los valores que usted proporciona.

Para obtener más información sobre las restricciones de las claves de la API, consulta ApiKeyRestrictionsla referencia de la API de Amazon Location Service.

Identificadores de aplicaciones de Android:

  • X-Android-Package:

    Un identificador único para las aplicaciones de Android, definido en el archivo build.gradle de la aplicación, que suele seguir un formato de dominio inverso.

    Ejemplo:

    com.mydomain.appname

  • X-Android-Cert:

    El SHA-1 hash del certificado de firma utilizado para firmar el APK de Android.

    Ejemplo:

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

Identificadores de aplicaciones de Apple:

  • X-Apple-Bundle-Id:

    Un identificador único para las aplicaciones de Apple (iOS, macOS, etc.), definido en el Info.plist de la aplicación, que suele seguir un formato de dominio inverso.

    Ejemplo:

    com.mydomain.appname

Optimización de Amazon Cognito

Amazon Cognito proporciona un control de acceso más detallado que las claves de API y admite usuarios autenticados y no autenticados.

  • Limite las funciones no autenticadas: cuando utilice grupos de identidades para el acceso anónimo, adjunte políticas de IAM que permitan solo las acciones y los recursos específicos de Amazon Location que su aplicación necesita.

  • Utilice claves de condición para el filtrado de IP: añada aws:SourceIp condiciones a sus políticas de IAM para restringir el acceso a los rangos de IP conocidos, cuando proceda.

  • Mantenga los grupos de identidades en la misma región: cree el grupo de identidades de Amazon Cognito en la misma AWS región que sus recursos de Amazon Location Service para evitar la latencia entre regiones y garantizar un acceso adecuado.

  • Utilice identidades autenticadas siempre que sea posible: si su aplicación tiene un flujo de inicio de sesión, utilice grupos de usuarios de Amazon Cognito o identidades federadas para conceder roles autenticados con permisos específicos en lugar de depender de un acceso no autenticado.

Optimización de IAM

Para las aplicaciones del lado del servidor y las herramientas internas, utilícelas AWS Identity and Access Management para tener un control total del acceso.

  • Utilice funciones de IAM en lugar de credenciales a largo plazo: en el caso de las aplicaciones que se ejecutan en servicios AWS informáticos (como Amazon EC2, Lambda o Amazon ECS), utilice funciones de IAM para proporcionar credenciales temporales automáticamente.

  • Aplique permisos a nivel de recursos: especifique los ARN de los recursos en sus políticas en lugar de utilizar caracteres comodín. Por ejemplo, restrinja el acceso a recursos específicos de recopilaciones de rastreadores o geocercas.

  • Utilice las condiciones de la política: añada condiciones, por ejemplo, aws:RequestedRegion para limitar el acceso a regiones específicas o aws:PrincipalTag para el control de acceso basado en atributos.

  • Activar CloudTrail: se utiliza AWS CloudTrail para registrar todas las llamadas a la API de Amazon Location Service con fines de auditoría y conformidad. Revise los registros con regularidad para detectar patrones de acceso inesperados.