

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.

# Autenticación con Amazon Location Service
<a name="access"></a>

Para utilizar Amazon Location Service, el usuario debe tener acceso a los recursos y las API que componen Amazon Location. Hay tres estrategias que puede utilizar para conceder acceso a sus recursos.
+ **Use claves de la API**: para conceder acceso a usuarios no autenticados, puede crear claves de la API que conceden acceso de solo lectura a los recursos y acciones de Amazon Location Service. Esto resulta útil en el caso de que no desee autenticar a todos los usuarios. Por ejemplo, una aplicación web. 

  Para obtener más información acerca de las claves API, consulte [Uso de claves de la API para autenticación](using-apikeys.md).
+ **Utilizar Amazon Cognito**: puede utilizar Amazon Cognito para conceder acceso anónimo como alternativa a las claves de API. Amazon Cognito le permite crear una autorización más completa con una política para definir lo que pueden hacer los usuarios no autenticados. 

  Para obtener más información sobre cómo usar Amazon Cognito, consulte [Uso de Amazon Cognito para la autenticación](authenticating-using-cognito.md).
+ **Use AWS Identity and Access Management (IAM)**: para conceder el acceso a los usuarios autenticados con AWS IAM Identity Center o AWS Identity and Access Management (IAM), cree una política de IAM que permita el acceso a los recursos que desee. 

  Para obtener más información sobre IAM y Amazon Location, consulte [Se usa AWS Identity and Access Management para autenticar](security-iam.md).

# Elección de un método de autenticación
<a name="choose-method"></a>

Las claves de API y Amazon Cognito se utilizan de forma similar en situaciones similares, así que ¿por qué elegiría una en lugar de la otra? En la siguiente lista, se enumeran algunas de las diferencias entre ambas.
+ **Desempeño:**
  + **Clave de API:** relativamente más rápida
  + **Amazon Cognito:** relativamente más lento
+ **Disponibilidad:**
  + **Clave de API:** API de Amazon Location para mapas, lugares y rutas
  + **Amazon Cognito:** todas las API
+ **¿Se combina con otro método de autenticación?**
  + **Clave de API:** no
  + **Amazon Cognito:** sí

**Comparación**
+ Las claves de API solo están disponibles para las acciones de mapas, lugares y rutas. Amazon Cognito se puede utilizar para autenticar el acceso a la mayoría de las API de Amazon Location Service.
+ El rendimiento de las solicitudes de mapas con claves de API suele ser más rápido que en escenarios similares con Amazon Cognito. Una autenticación más sencilla significa menos viajes de ida y vuelta al servicio y solicitudes almacenadas en caché cuando se vuelve a obtener el mismo mosaico de mapa en un período de tiempo corto.
+ Con Amazon Cognito, puede utilizar su propio proceso de autenticación o combinar varios métodos de autenticación mediante Amazon Cognito Federated Identities. 

  Para obtener más información, consulte [Introducción a las identidades federadas](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) en la guía para desarrolladores de Amazon Cognito.

# Uso de claves de la API para autenticación
<a name="using-apikeys"></a>

**nota**  
Las claves de la API solo están disponibles para su uso con los recursos de **mapa**, **lugares** y **rutas**, y no se pueden modificar ni crear esos recursos. Si su aplicación necesita acceso a otros recursos o acciones para los usuarios no autenticados, puede usar Amazon Cognito para proporcionar acceso junto con las claves de API o en lugar de ellas. Para obtener más información, consulte [Uso de Amazon Cognito para la autenticación](authenticating-using-cognito.md).

*Las claves de API* son un valor clave que se asocia a recursos o API específicos de Amazon Location Service y a acciones específicas que puedes realizar en esos recursos. Cuenta de AWS Puedes usar una clave de API en tu aplicación para realizar llamadas no autenticadas a la ubicación de Amazon APIs para esos recursos. 

Por ejemplo, si asocias una clave de API a un recurso, and/or la `GetPlace*` aplicación que utilice esa clave de API podrá realizar llamadas específicas. APIs Esa misma clave de API no otorgaría permisos para cambiar o actualizar ningún recurso o llamada a los APIs que no esté asociada.

Cuando llamas a Amazon Location Service APIs en tus aplicaciones, normalmente haces esta llamada como un *usuario autenticado* que está autorizado a realizar las llamadas a la API. No obstante, hay algunos casos en los que no desea autenticar a todos los usuarios de la aplicación. 

Por ejemplo, es posible que desee que cualquier persona que utilice el sitio web tenga acceso a una aplicación web que muestre la ubicación de su empresa, tanto si ha iniciado sesión como si no. En este caso, una alternativa es utilizar las claves de la API para realizar las llamadas a la API.

Consulte [Prácticas recomendadas de clave de la API](#api-keys-best-practices) para obtener información adicional acerca de cuándo utilizar claves de la API.

Para obtener más información acerca de cómo trabajar con claves mediante la API de Amazon Location Service, consulte los siguientes temas en la *Referencia de la API de Amazon Location Service*:
+ [CreateKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_CreateKey.html)
+ [DeleteKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_DeleteKey.html)
+ [DescribeKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_DescribeKey.html)
+ [ListKeys](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_ListKeys.html)

## Creación de una clave de API para Amazon Location Service
<a name="create-api-key"></a>

Puedes crear una clave de API a través de la consola de Amazon Location Service o la API de Amazon Location. AWS CLI Continúe con los procedimientos correspondientes que se indican a continuación.

------
#### [ Amazon Location console ]

**Para crear una clave de API mediante la consola de Amazon Location Service**

1. En la [https://console.aws.amazon.com/location](https://console.aws.amazon.com/location), seleccione **las claves de API** en el menú de la izquierda.

1. En la página **Claves de API**, elija **Crear clave de API**.

1. En la página **Crear clave de API**, rellene la siguiente información:
   + **Nombre**: un nombre para su clave de API, por ejemplo `ExampleKey`.
   + **Descripción**: una descripción opcional para su clave de API.
   + **Recursos**: en el menú desplegable, elija los recursos de Amazon Location para conceder acceso con esta clave de API. Puede agregar más de un recurso seleccionando **agregar recurso**.
   + **Acciones**: especifique las acciones que desea autorizar con esta clave de API. Debe seleccionar al menos una acción para que coincida con cada tipo de recurso que haya seleccionado. Por ejemplo, si ha seleccionado un recurso de ubicación, debe seleccionar al menos una de las opciones de la sección **Acciones de ubicación**.
   + **Hora de caducidad**: si lo desea, añada una fecha y una hora de caducidad para su clave de API. Para obtener más información, consulte [Prácticas recomendadas de clave de la API](#api-keys-best-practices).
   + **Restricciones de los clientes**: si lo desea, agregue uno o más dominios web o una o más aplicaciones de Android o Apple en las que pueda usar la clave de la API. Por ejemplo, si la clave de la API es para permitir que una aplicación se ejecute en el sitio web `example.com`, puede poner `*.example.com/` como referente permitido.
   + **Etiquetas**: si lo desea, añada etiquetas a la clave de API.

1. Seleccione **Crear clave de API** para crear la clave de API.

1. En la página de detalles de la clave de API, puede ver información sobre la clave de API que ha creado. Selecciona **Mostrar clave de API** para ver el valor de clave que utilizas al llamar a Amazon Location APIs. El valor de la clave tendrá el formato `v1.public.a1b2c3d4...`. 

------
#### [ AWS CLI ]

1. Utilice el comando [create-key](https://docs.aws.amazon.com/cli/latest/reference/location/create-key.html). En el siguiente ejemplo, se crea una clave de API llamada `ExampleKey` sin fecha de caducidad y con acceso a un único recurso de mapa.

   ```
   aws location \
     create-key \
     --key-name ExampleKey \
     --restrictions '{"AllowActions":["geo-maps:*"],"AllowResources":["arn:aws:geo-maps:region::provider/default"]}' \
     --no-expiry
   ```

1. La respuesta incluye el valor de la clave de API que se debe utilizar al acceder a los recursos de las aplicaciones. El valor de la clave tendrá el formato `v1.public.a1b2c3d4...`. Para obtener más información acerca del uso de la clave de API de para renderizar mapas, consulte [Uso de una clave de API para llamar a una API de Amazon Location](#using-apikeys-in-api). La respuesta a create-key tiene este aspecto:

   ```
   {
       "Key": "v1.public.a1b2c3d4...",
       "KeyArn": "arn:aws:geo:region:accountId:api-key/ExampleKey",
       "KeyName": "ExampleKey",
       "CreateTime": "2023-02-06T22:33:15.693Z"
   }
   ```

1. También puede utilizar la `describe-key` para buscar el valor de la clave más tarde. En el ejemplo siguiente, se muestra cómo llamar a `describe-key` en una clave de API llamada `ExampleKey`.

   ```
   aws location describe-key \
       --key-name ExampleKey
   ```

------
#### [ Amazon Location API ]

Usa la [CreateKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_CreateKey.html)operación desde la sucursal de Amazon APIs. El siguiente ejemplo es una solicitud de API para crear una clave de API llamada `ExampleKey` sin fecha de caducidad y con acceso a un único recurso de mapa.

```
POST /metadata/v0/keys HTTP/1.1
Content-type: application/json
{
  "KeyName": "ExampleKey",
  "NoExpiry": true,
  "Restrictions": {
    "AllowActions": [
      "geo-places:*",
      "geo-routes:*",
      "geo-maps:*"
    ],
    "AllowResources": [
      "arn:aws:geo-places:Region::provider/default",
      "arn:aws:geo-routes:Region::provider/default",
      "arn:aws:geo-maps:Region::provider/default"
    ]
  }
}
```

La respuesta incluye el valor de la clave de API que se debe utilizar al acceder a los recursos de las aplicaciones. El valor de la clave tendrá el formato `v1.public.a1b2c3d4...`.

También puede usar la [DescribeKey](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_DescribeKey.html) API para buscar el valor de una clave más tarde.

------

## Uso de una clave de API para llamar a una API de Amazon Location
<a name="using-apikeys-in-api"></a>

Después de crear una clave de API, puedes usar el valor de la clave para realizar llamadas a Amazon Location APIs en tu aplicación.

------
#### [ API ]

Las APIs claves de API compatibles tienen un parámetro adicional que toma el valor de la clave de API. Por ejemplo, si llama a la API `GetPlace`, puede rellenar el parámetro [clave](https://docs.aws.amazon.com/location/latest/APIReference/API_geoplaces_GetPlace.html) de la siguiente manera

```
curl --request GET —url 'https://places.geo.eu-central-1.amazonaws.com/v2/place/{PLACEID}?key={APIKEY}&language=jp'
```

------
#### [ AWS CLI ]

Cuando utilice el parámetro `--key`, también debería usar el parámetro `--no-sign-request` para evitar firmar con Sig v4.

```
aws geo-places get-place --place-id $PLACEID --language jp --key $APIKEY
```

------
#### [ SDK (web) ]

Utilice el siguiente código:

```
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>Display a map</title>
        <meta property="og:description" content="Initialize a map in an HTML element with MapLibre GL JS." />
        <meta charset='utf-8'>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel='stylesheet' href='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.css' />
        <script src='https://unpkg.com/maplibre-gl@5.x/dist/maplibre-gl.js'></script>
        <style>
            body { margin: 0; }
            #map { height: 100vh; }
        </style>
    </head>
    <body>
         
        <div id="map"></div>
        <script>
     
            const apiKey = "<api key>"; // check how to create api key for Amazon Location
            const mapStyle = "Standard";  // eg. Standard, Monochrome, Hybrid, Satellite  
            const awsRegion = "eu-central-1"; // eg. us-east-2, us-east-1, us-west-2, ap-south-1, ap-southeast-1, ap-southeast-2, ap-northeast-1, ca-central-1, eu-central-1, eu-west-1, eu-west-2, eu-south-2, eu-north-1, sa-east-1
            const styleUrl = `https://maps.geo.${awsRegion}.amazonaws.com/v2/styles/${mapStyle}/descriptor?key=${apiKey}`;


            const map = new maplibregl.Map({
                container: 'map', // container id
                style: styleUrl, // style URL
                center: [25.24,36.31], // starting position [lng, lat]
                zoom: 2, // starting zoom
            });
        </script>
    </body>
</html>
```

------
#### [ SDK (iOS, Swift) ]

Utilice el siguiente código:

```
import UIKit
import MapLibre

class ViewController: UIViewController {
    let apiKey = "Enter your API key" // The previously-created API Key to use
    let regionName = "Enter your region name" // The service region - us-east-1, ap-south-1, etc
    var mapView: MLNMapView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        loadMap()
    }
    
    func loadMap() {
        let styleName = "Standard" // The map style - Standard, Monochrome, Hybrid, Satellite
        let colorName = "Light" // The color scheme - Light, Dark
        
        // The Amazon Location Service map style URL that MapLibre will use to render the maps.
        let styleURL = URL(string: "https://maps.geo.\(regionName).amazonaws.com/v2/styles/\(styleName)/descriptor?key=\(apiKey)&color-scheme=\(colorName)")

        // Initialize MapLibre        
        mapView = MLNMapView(frame: view.bounds)
        mapView.styleURL = styleURL
        mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
        // Set the starting camera position and zoom level for the map
        mapView.setCenter(CLLocationCoordinate2D(latitude: 49.246559, longitude: -123.063554), zoomLevel: 10, animated: false)
        view.addSubview(mapView!)
    }
}
```

------
#### [ SDK (Android, Kotlin) ]

Utilice el siguiente código:

```
class MapActivity : Activity(), OnMapReadyCallback {

    private lateinit var mBinding: ActivityMapBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        initializeMap(savedInstanceState)
    }

    private fun initializeMap(savedInstanceState: Bundle?) {
        // Init MapLibre
        // See the MapLibre Getting Started Guide for more details
        // https://maplibre.org/maplibre-native/docs/book/android/getting-started-guide.html
        MapLibre.getInstance(this@MapActivity)
        mBinding = ActivityMapBinding.inflate(layoutInflater)
        setContentView(mBinding.root)
        mBinding.mapView.onCreate(savedInstanceState)
        mBinding.mapView.getMapAsync(this)
    }

    override fun onMapReady(mapLibreMap: MapLibreMap) {
        mapLibreMap.setStyle(Style.Builder().fromUri(getMapUrl())) {
            // Set the starting camera position
            mapLibreMap.cameraPosition = CameraPosition.Builder().target(LatLng(49.246559, -123.063554)).zoom(10.0).build()
            mapLibreMap.uiSettings.isLogoEnabled = false
            mapLibreMap.uiSettings.attributionGravity = Gravity.BOTTOM or Gravity.END
            mapLibreMap.uiSettings.setAttributionDialogManager(AttributionDialogManager(this, mapLibreMap))
        }
    }

    // Return the Amazon Location Service map style URL
    // MapLibre will use this to render the maps.
    // awsRegion: The service region - us-east-1, ap-south-1, etc
    // mapStyle: The map style - Standard, Monochrome, Hybrid, Satellite  
    // API_KEY: The previously-created API Key to use
    // colorName: The color scheme to use - Light, Dark
    private fun getMapUrl() =
           "https://maps.geo.${getString(R.string.awsRegion)}.amazonaws.com/v2/styles/${getString(R.string.mapStyle)}/descriptor?key=${BuildConfig.API_KEY}&color-scheme=${getString(R.string.colorName)}"

    override fun onStart() {
        super.onStart()
        mBinding.mapView.onStart()
    }

    override fun onResume() {
        super.onResume()
        mBinding.mapView.onResume()
    }

    override fun onPause() {
        super.onPause()
        mBinding.mapView.onPause()
    }

    override fun onStop() {
        super.onStop()
        mBinding.mapView.onStop()
    }

    override fun onSaveInstanceState(outState: Bundle) {
        super.onSaveInstanceState(outState)
        mBinding.mapView.onSaveInstanceState(outState)
    }

    override fun onLowMemory() {
        super.onLowMemory()
        mBinding.mapView.onLowMemory()
    }

    override fun onDestroy() {
        super.onDestroy()
        mBinding.mapView.onDestroy()
    }
}
```

------

## Restricción del uso de las claves de API por origen de la solicitud
<a name="restrict-usage-by-origin"></a>

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, las solicitudes solo se autorizarán si el encabezado de referencia HTTP coincide con el valor que proporcione. Cuando se restrinjan por aplicación de Android o Apple, las solicitudes solo se autorizarán si los campos del encabezado HTTP del identificador de la aplicación coinciden con los valores que proporcione.

Para obtener más información, consulta [ApiKeyRestrictions](https://docs.aws.amazon.com/location/latest/APIReference/API_geotags_ApiKeyRestrictions.html)la *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 hash SHA-1 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`

## Prácticas recomendadas de clave de la API
<a name="api-keys-best-practices"></a>

Las claves de API incluyen un *valor* de texto sin formato que da acceso a uno o más recursos o APIs a tu Cuenta de AWS. Si alguien copia tu clave de API, podrá acceder a esos mismos recursos y APIs. Para minimizar el impacto potencial, revise las siguientes prácticas recomendadas:
+ **Limitación de la clave de la API**

  Para evitar la situación anterior, es mejor limitar la clave de la API. Cuando crea la clave, puede especificar el dominio, la aplicación de Android o Apple en la que se puede usar la clave.
+ **Gestione la vida útil de las claves de API**

  Puede crear claves de API que funcionen indefinidamente. Sin embargo, si quiere crear una clave de API temporal, rotar las claves de API de forma regular o revocar una clave de API existente, puede utilizar la *caducidad de la clave de API*.
  + Puede establecer el tiempo de caducidad de una clave de API cuando la crea o actualiza.
  + La clave de API se desactiva automáticamente cuando alcanza su hora de vencimiento. Las claves inactivas ya no se pueden usar para realizar solicitudes.
  + Puede cambiar una clave temporal por una clave permanente quitando el tiempo de caducidad.
  + Puede eliminar una clave de API 90 días después de desactivarla.
  + Si intenta desactivar una clave de API que se haya utilizado en los últimos siete días, se le pedirá que confirme que desea realizar el cambio. 

    Si utilizas la API de Amazon Location Service o la AWS CLI, establece el `ForceUpdate` parámetro en; de lo contrario`true`, recibirás un error.

# Uso de Amazon Cognito para la autenticación
<a name="authenticating-using-cognito"></a>

Puede utilizar la autenticación de Amazon Cognito como alternativa al uso directo de usuarios AWS Identity and Access Management (IAM) con solicitudes de SDK de frontend. 

Amazon Cognito ofrece autenticación, autorización y administración de usuarios para aplicaciones móviles y web. Puede usar los grupos de identidades no autenticadas de Amazon Cognito con Amazon Location como una forma de que las aplicaciones recuperen credenciales temporales y restringidas. AWS 

Para obtener más información, consulte [Introducción a los grupos de usuarios](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-user-pools.html) en la *Guía para desarrolladores de Amazon Cognito*.

Es posible que desee utilizar esta forma de autenticación por los siguientes motivos:
+ **Usuarios no autenticados**: si tiene un sitio web con usuarios anónimos, puede utilizar los grupos de identidades de Amazon Cognito. 

  Para obtener más información, consulte la sección en [Uso de Amazon Cognito para la autenticación](#authenticating-using-cognito). 
+ **Su propia autenticación**: si desea utilizar su propio proceso de autenticación o combinar varios métodos de autenticación, puede utilizar Amazon Cognito Federated Identities. 

  Para obtener más información, consulte [Introducción a las identidades federadas](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-started-with-identity-pools.html) en la *Guía para desarrolladores de Amazon Cognito*.

## Uso de Amazon Cognito y Amazon Location Service
<a name="cognito-and-location"></a>

Puede utilizar las políticas AWS Identity and Access Management (IAM) asociadas a los roles de identidad no autenticados con las siguientes acciones:

------
#### [ Maps ]

Lista de acciones de mapas
+ `geo-maps:GetStaticMap`
+ `geo-maps:GetTile`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

```
arn:aws:geo-maps:region::provider/default
```

------
#### [ Places ]

Lista de acciones de ubicación:
+ `geo-places:Geocode`
+ `geo-places:ReverseGeocode`
+ `geo-places:SearchNearby`
+ `geo-places:SearchText`
+ `geo-places:Autocomplete`
+ `geo-places:Suggest`
+ `geo-places:GetPlace`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

```
arn:aws:geo-places:region::provider/default
```

------
#### [ Routes ]

Lista de acciones de rutas:
+ `geo-routes:CalculateRoutes`
+ `geo-routes:CalculateRouteMatrix`
+ `geo-routes:CalculateIsolines`
+ `geo-routes:OptimizeWaypoints`
+ `geo-routes:SnapToRoads`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

```
arn:aws:geo-routes:region::provider/default
```

------
#### [ Geofences and Trackers ]

Lista de acciones de geocercas y rastreadores
+ `geo:GetGeofence`
+ `geo:ListGeofences`
+ `geo:PutGeofence`
+ `geo:BatchDeleteGeofence`
+ `geo:BatchPutGeofence`
+ `geo:BatchEvaluateGeofences`
+ `geo:GetDevicePosition*`
+ `geo:ListDevicePositions`
+ `geo:BatchDeleteDevicePositionHistory`
+ `geo:BatchGetDevicePosition`
+ `geo:BatchUpdateDevicePosition`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  

```
arn:aws:geo:region:accountID:tracker/ExampleTracker
```

------
#### [ Previous version ]

Lista de acciones de versiones anteriores:
+ `geo:GetMap*`
+ `geo:SearchPlaceIndexForText`
+ `geo:SearchPlaceIndexForPosition`
+ `geo:GetPlace`
+ `geo:CalculateRoute`
+ `geo:CalculateRouteMatrix`

**nota**  
Los nombres de los recursos para las acciones anteriores son:  
**Mapas**  

```
arn:aws:geo:region:accountID:map/ExampleMap
```
**Lugares**  

```
arn:aws:geo:region:accountID:place-index/ExamplePlaceIndex
```
**Rutas**  

```
arn:aws:geo:region:accountID:route-calculator/ExampleCalculator
```

------

## Creación de un grupo de identidades en Amazon Cognito
<a name="cognito-create-user-pool"></a>

Puede crear grupos de identidades de Amazon Cognito para permitir el acceso de invitados no autenticados a su aplicación a través de la consola de Amazon Cognito, Amazon Cognito o AWS CLI Amazon Cognito. APIs

**importante**  
El grupo que cree debe estar en la misma AWS región Cuenta de AWS y en la misma región que los recursos de Amazon Location Service que esté utilizando.

------
#### [ Console ]

**Para crear un grupo de identidades con la consola de Amazon Cognito**

1. Vaya a la [consola de Amazon Cognito](https://console.aws.amazon.com/cognito/home).

1. Seleccione **Administrar grupos de identidades**.

1. Seleccione **Crear un nuevo grupo de identidades** y, a continuación, introduzca un nombre para su grupo de identidades.

1. En **Identidades sin autenticar**, elija **Habilitar el acceso a identidades sin autenticar**.

1. Elija **Crear grupo**.

1. Elija los roles de IAM que quiera usar con su grupo de identidades.

1. Amplíe **Ver detalles**. 

1. En **Identidades no autenticadas**, introduzca un nombre de rol.

1. Amplíe la sección **Ver documento de política** y, a continuación, seleccione **Editar** para agregar la política.

1. Agregue su política para dar acceso a sus recursos.
**nota**  
Consulte la sección [Uso de Amazon Cognito y Amazon Location Service](#cognito-and-location) anterior para ver una lista de acciones.

   ```
   {
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
     Sid": "RoutesReadOnly",
     Effect": "Allow",
     Action": [
           // add comma separated value from the previous section
         ],
     Resource": "value from previous section"
       }
     ]
   }
   ```

1. Elija **Permitir** para crear sus grupos de identidades.

------

## Uso del grupo de identidades de Amazon Cognito en la web
<a name="identity-pool-js"></a>

En el siguiente ejemplo, se intercambia el grupo de identidades no autenticadas que ha creado por credenciales que, a continuación, se utilizan para llamar a `CalculateIsolines`. Para simplificar este trabajo, el ejemplo usa los procedimientos [Cómo utilizar los ayudantes de autenticación](how-to-auth-helper.md) de Amazon Location. Esto sustituye a la obtención de las credenciales y a la actualización de las mismas.

En este ejemplo, se utiliza el AWS SDK de la JavaScript versión 3.

```
import { GeoRoutesClient, CalculateIsolinesCommand , } from "@aws-sdk/client-geo-routes"; // ES Modules import
import { withIdentityPoolId } from "@aws/amazon-location-utilities-auth-helper";

const identityPoolId = "<identity pool ID>"; // for example, us-east-1:1sample4-5678-90ef-aaaa-1234abcd56ef

const authHelper = await withIdentityPoolId(identityPoolId);

const client = new GeoRoutesClient({
    ...authHelper.getClientConfig(),
    region: "<region>", // The region containing the identity pool
});

const input = {
    DepartNow: true,
    TravelMode: "Car",
    Origin: [-123.12327, 49.27531],
    Thresholds: {
        Time: [5, 10, 30],
    },
};

const command = new CalculateIsolinesCommand(input);
const response = await client.send(command);

console.log(JSON.stringify(response, null, 2))
```

# Se usa AWS Identity and Access Management para autenticar
<a name="security-iam"></a>





AWS Identity and Access Management (IAM) es una herramienta Servicio de AWS que ayuda al administrador a controlar de forma segura el acceso a los AWS recursos. Los administradores de IAM controlan quién se puede *autenticar* (iniciar sesión) y *autorizar* (tener permisos) para utilizar los recursos de Amazon Location. La IAM es una Servicio de AWS herramienta que puede utilizar sin coste adicional.

**Topics**
+ [Público](#security_iam_audience)
+ [Autenticación con identidades](#security_iam_authentication)
+ [Administración del acceso con políticas](#security_iam_access-manage)
+ [Cómo funciona Amazon Location Service con IAM](#security_iam_service-with-iam)
+ [Cómo funciona Amazon Location Service con usuarios no autenticados](#security_iam_unauthenticated-users)
+ [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples)
+ [Solución de problemas de identidad y acceso de Amazon Location Service](#security_iam_troubleshoot)

## Público
<a name="security_iam_audience"></a>

La forma de usar AWS Identity and Access Management (IAM) varía según la función que desempeñes:
+ **Usuario del servicio:** solicite permisos al administrador si no puede acceder a las características (consulte [Solución de problemas de identidad y acceso de Amazon Location Service](#security_iam_troubleshoot)).
+ **Administrador del servicio:** determine el acceso de los usuarios y envíe las solicitudes de permiso (consulte [Cómo funciona Amazon Location Service con IAM](#security_iam_service-with-iam)).
+ **Administrador de IAM**: escribe las políticas para administrar el acceso (consulte [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples)).

## Autenticación con identidades
<a name="security_iam_authentication"></a>

La autenticación es la forma en que inicias sesión AWS con tus credenciales de identidad. Debe autenticarse como usuario de Usuario raíz de la cuenta de AWS IAM o asumir una función de IAM.

Puede iniciar sesión como una identidad federada con las credenciales de una fuente de identidad, como AWS IAM Identity Center (IAM Identity Center), la autenticación de inicio de sesión único o las credenciales. Google/Facebook Para obtener más información sobre el inicio de sesión, consulte [Cómo iniciar sesión en la Cuenta de AWS](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) en la *Guía del usuario de AWS Sign-In *.

Para el acceso programático, AWS proporciona un SDK y una CLI para firmar criptográficamente las solicitudes. Para obtener más información, consulte [AWS Signature Version 4 para solicitudes de API](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) en la *Guía del usuario de IAM*.

### Cuenta de AWS usuario root
<a name="security_iam_authentication-rootuser"></a>

 Al crear un Cuenta de AWS, se comienza con una identidad de inicio de sesión denominada *usuario Cuenta de AWS raíz* que tiene acceso completo a todos Servicios de AWS los recursos. Se recomiendaencarecidamente que no utilice el usuario raíz para las tareas diarias. Para ver las tareas que requieren credenciales de usuario raíz, consulte [Tareas que requieren credenciales de usuario raíz](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) en la *Guía del usuario de IAM*. 

### Identidad federada
<a name="security_iam_authentication-federated"></a>

Como práctica recomendada, exija a los usuarios humanos que utilicen la federación con un proveedor de identidades para acceder Servicios de AWS mediante credenciales temporales.

Una *identidad federada* es un usuario del directorio empresarial, del proveedor de identidades web o al Directory Service que se accede Servicios de AWS mediante credenciales de una fuente de identidad. Las identidades federadas asumen roles que proporcionan credenciales temporales.

Para una administración de acceso centralizada, se recomienda AWS IAM Identity Center. Para obtener más información, consulte [¿Qué es el Centro de identidades de IAM?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) en la *Guía del usuario de AWS IAM Identity Center *.

### Usuarios y grupos de IAM
<a name="security_iam_authentication-iamuser"></a>

Un *[usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* es una identidad con permisos específicos para una sola persona o aplicación. Recomendamos el uso de credenciales temporales en lugar de usuarios de IAM con credenciales de larga duración. Para obtener más información, consulte [Exigir a los usuarios humanos que utilicen la federación con un proveedor de identidad para acceder AWS mediante credenciales temporales](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) en la Guía del usuario de *IAM*.

Un [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) especifica un conjunto de usuarios de IAM y facilita la administración de los permisos para grupos grandes de usuarios. Para obtener más información, consulte [Casos de uso para usuarios de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) en la *Guía del usuario de IAM*.

### Roles de IAM
<a name="security_iam_authentication-iamrole"></a>

Un *[Rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* es una identidad con permisos específicos que proporciona credenciales temporales. Puede asumir un rol [cambiando de un rol de usuario a uno de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) o llamando a una AWS CLI operación de AWS API. Para obtener más información, consulte [Métodos para asumir un rol](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) en la *Guía del usuario de IAM*.

Los roles de IAM son útiles para el acceso de usuario federado, los permisos de usuario de IAM temporales, el acceso entre cuentas, el acceso entre servicios y las aplicaciones que se ejecutan en Amazon EC2. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

## Administración del acceso con políticas
<a name="security_iam_access-manage"></a>

 AWS Para controlar el acceso, puede crear políticas y adjuntarlas a AWS identidades o recursos. Una política define los permisos cuando están asociados a una identidad o un recurso. AWS evalúa estas políticas cuando un director hace una solicitud. La mayoría de las políticas se almacenan AWS como documentos JSON. Para obtener más información sobre los documentos de políticas de JSON, consulte [Información general de políticas de JSON](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) en la *Guía del usuario de IAM*.

Mediante las políticas, los administradores especifican quién tiene acceso a qué, definiendo qué **entidad principal** puede realizar **acciones** sobre qué **recursos** y en qué **condiciones**.

De forma predeterminada, los usuarios y los roles no tienen permisos. Un administrador de IAM crea políticas de IAM y las agrega a roles, que los usuarios pueden asumir posteriormente. Las políticas de IAM definen permisos independientemente del método que se utilice para realizar la operación.

### Políticas basadas en identidades
<a name="security_iam_access-manage-id-based-policies"></a>

Las políticas basadas en identidad son documentos de política de permisos JSON que asocia a una identidad (usuario, grupo o rol). Estas políticas controlan qué acciones pueden realizar las identidades, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Las políticas basadas en identidad pueden ser *políticas insertadas* (incrustadas directamente en una sola identidad) o *políticas administradas* (políticas independientes asociadas a varias identidades). Para obtener información sobre cómo elegir entre políticas administradas e insertadas, consulte [Selección entre políticas administradas y políticas insertadas](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) en la *Guía del usuario de IAM*.

### Políticas basadas en recursos
<a name="security_iam_access-manage-resource-based-policies"></a>

Las políticas basadas en recursos son documentos de políticas JSON que se asocian a un recurso. Los ejemplos incluyen las *Políticas de confianza de roles* de IAM y las *Políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos.

Las políticas basadas en recursos son políticas insertadas que se encuentran en ese servicio. No puedes usar políticas AWS gestionadas de IAM en una política basada en recursos.

### Otros tipos de políticas
<a name="security_iam_access-manage-other-policies"></a>

AWS admite tipos de políticas adicionales que pueden establecer los permisos máximos que conceden los tipos de políticas más comunes:
+ **Límites de permisos:** establecen los permisos máximos que una política basada en identidad puede conceder a una entidad de IAM. Para obtener más información, consulte [Límites de permisos para las entidades de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) en la *Guía del usuario de IAM*.
+ **Políticas de control de servicios (SCPs)**: especifican los permisos máximos para una organización o unidad organizativa en AWS Organizations. Para obtener más información, consulte [Políticas de control de servicios](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) en la *Guía del usuario de AWS Organizations *.
+ **Políticas de control de recursos (RCPs)**: establece los permisos máximos disponibles para los recursos de tus cuentas. Para obtener más información, consulte [Políticas de control de recursos (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html) en la *Guía del AWS Organizations usuario*.
+ **Políticas de sesión:** políticas avanzadas que se pasan como parámetro cuando se crea una sesión temporal para un rol o un usuario federado. Para obtener más información, consulte [Políticas de sesión](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) en la *Guía del usuario de IAM*.

### Varios tipos de políticas
<a name="security_iam_access-manage-multiple-policies"></a>

Cuando se aplican varios tipos de políticas a una solicitud, los permisos resultantes son más complicados de entender. Para saber cómo se AWS determina si se debe permitir una solicitud cuando se trata de varios tipos de políticas, consulte la [lógica de evaluación de políticas](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) en la *Guía del usuario de IAM*.

## Cómo funciona Amazon Location Service con IAM
<a name="security_iam_service-with-iam"></a>

Antes de utilizar IAM para administrar el acceso a Amazon Location, obtenga información sobre qué características de IAM se encuentran disponibles con Amazon Location.






**Características de IAM que puede utilizar con Amazon Location Service**  

| Característica de IAM | Amazon Location Support | 
| --- | --- | 
|  [Políticas de Amazon Location basadas en identidades](#security_iam_service-with-iam-id-based-policies)  |   Sí  | 
|  [Políticas basadas en recursos](#security_iam_service-with-iam-resource-based-policies)  |   No   | 
|  [Acciones de políticas](#security_iam_service-with-iam-id-based-policies-actions)  |   Sí  | 
|  [Recursos de políticas](#security_iam_service-with-iam-id-based-policies-resources)  |   Sí  | 
|  [Claves de condición de política (específicas del servicio)](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Sí  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   No   | 
|  [ABAC (etiquetas en políticas)](#security_iam_service-with-iam-tags)  |   Sí  | 
|  [Credenciales temporales](#security_iam_service-with-iam-roles-tempcreds)  |   Sí  | 
|  [Permisos de entidades principales](#security_iam_service-with-iam-principal-permissions)  |   No   | 
|  [Roles de servicio](#security_iam_service-with-iam-roles-service)  |   No   | 
|  [Roles vinculados al servicio](#security_iam_service-with-iam-roles-service-linked)  |   No   | 

Para obtener una visión general de cómo funcionan Amazon Location y otros AWS servicios con la mayoría de las funciones de IAM, consulta [AWS los servicios que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la Guía del usuario de *IAM*.

### Políticas de Amazon Location basadas en identidades
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Compatibilidad con las políticas basadas en identidad:** sí

Las políticas basadas en identidad son documentos de políticas de permisos JSON que puede asociar a una identidad, como un usuario de IAM, un grupo de usuarios o un rol. Estas políticas controlan qué acciones pueden realizar los usuarios y los roles, en qué recursos y en qué condiciones. Para obtener más información sobre cómo crear una política basada en la identidad, consulte [Definición de permisos de IAM personalizados con políticas administradas por el cliente](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) en la *Guía del usuario de IAM*.

Con las políticas basadas en identidades de IAM, puede especificar las acciones y los recursos permitidos o denegados, así como las condiciones en las que se permiten o deniegan las acciones. Para obtener más información sobre los elementos que puede utilizar en una política de JSON, consulte [Referencia de los elementos de la política de JSON de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) en la *Guía del usuario de IAM*.

#### Ejemplos de políticas basadas en identidad para Amazon Location
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Para ver ejemplos de políticas basadas en identidades de Amazon Location, consulte [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples).

### Políticas basadas en recursos de Amazon Location
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Admite políticas basadas en recursos:** no 

Las políticas basadas en recursos son documentos de política JSON que se asocian a un recurso. Los ejemplos de políticas basadas en recursos son las *políticas de confianza de roles* de IAM y las *políticas de bucket* de Amazon S3. En los servicios que admiten políticas basadas en recursos, los administradores de servicios pueden utilizarlos para controlar el acceso a un recurso específico. Para el recurso al que se asocia la política, la política define qué acciones puede realizar una entidad principal especificada en ese recurso y en qué condiciones. Debe [especificar una entidad principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) en una política basada en recursos. Los directores pueden incluir cuentas, usuarios, roles, usuarios federados o. Servicios de AWS

Para habilitar el acceso entre cuentas, puede especificar toda una cuenta o entidades de IAM de otra cuenta como la entidad principal de una política en función de recursos. Para obtener más información, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.

### Acciones de políticas de Amazon Location
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Compatibilidad con las acciones de políticas:** sí

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Action` de una política JSON describe las acciones que puede utilizar para conceder o denegar el acceso en una política. Incluya acciones en una política para conceder permisos y así llevar a cabo la operación asociada.



Para ver una lista de las acciones de Amazon VPC, consulte [Acciones definidas por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-actions-as-permissions) en la *Referencia de autorizaciones de servicio*.

Las acciones de políticas de Amazon Location utilizan el siguiente prefijo antes de la acción:

```
geo
```

Para especificar varias acciones en una única instrucción, sepárelas con comas.

```
"Action": [
      "geo:action1",
      "geo:action2"
         ]
```





Puede utilizar caracteres comodín (\$1) para especificar varias acciones . Por ejemplo, para especificar todas las acciones que comiencen con la palabra `Get`, incluya la siguiente acción:

```
"Action": "geo:Get*"
```

Para ver ejemplos de políticas basadas en identidades de Amazon Location, consulte [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples).

### Recursos de políticas para Amazon Location
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Compatibilidad con los recursos de políticas:** sí

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Resource` de la política JSON especifica el objeto u objetos a los que se aplica la acción. Como práctica recomendada, especifique un recurso utilizando el [Nombre de recurso de Amazon (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html). En el caso de las acciones que no admiten permisos por recurso, utilice un carácter comodín (\$1) para indicar que la instrucción se aplica a todos los recursos.

```
"Resource": "*"
```

Para ver una lista de los tipos de recursos de Amazon Location y sus tipos ARNs, consulte [Recursos definidos por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-resources-for-iam-policies) en la *Referencia de autorización del servicio*. Para obtener información acerca de las acciones con las que puede especificar el ARN de cada recurso, consulte [Acciones definidas por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-actions-as-permissions).





Para ver ejemplos de políticas basadas en identidades de Amazon Location, consulte [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples).

### Claves de condición de políticas de Amazon Location
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Compatibilidad con claves de condición de políticas específicas del servicio:** sí

Los administradores pueden usar las políticas de AWS JSON para especificar quién tiene acceso a qué. Es decir, qué **entidad principal** puede realizar **acciones** en qué **recursos** y en qué **condiciones**.

El elemento `Condition` especifica cuándo se ejecutan las instrucciones en función de criterios definidos. Puede crear expresiones condicionales que utilizan [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html), tales como igual o menor que, para que la condición de la política coincida con los valores de la solicitud. Para ver todas las claves de condición AWS globales, consulte las claves de [contexto de condición AWS globales](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) en la *Guía del usuario de IAM*.

Para obtener una lista de las claves de condición de Amazon Location, consulte [Claves de condición para Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-policy-keys) en la *Referencia de autorizaciones de servicio*. Para obtener más información acerca de las acciones y los recursos con los que puede utilizar una clave de condición, consulte las [acciones definidas por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-actions-as-permissions).

Amazon Location admite claves de condición que te permiten permitir o denegar el acceso a geocercas o dispositivos específicos en tus declaraciones de política. Las siguientes claves de condición están disponibles:
+ `geo:GeofenceIds` para su uso con acciones de geocerca. El tipo es `ArrayOfString`.
+ `geo:DeviceIds` para su uso con las acciones de Rastreador. El tipo es `ArrayOfString`.

Puede utilizar las siguientes acciones con `geo:GeofenceIds` en su política de IAM:
+ `BatchDeleteGeofences`
+ `BatchPutGeofences`
+ `GetGeofence`
+ `PutGeofence`

Puede utilizar las siguientes acciones con `geo:DeviceIds` en su política de IAM:
+ `BatchDeleteDevicePositionHistory`
+ `BatchGetDevicePosition`
+ `BatchUpdateDevicePosition`
+ `GetDevicePosition`
+ `GetDevicePositionHistory`

**nota**  
No puede usar estas claves de condición con las acciones `BatchEvaluateGeofences`, `ListGeofences`, o `ListDevicePosition`.

Para ver ejemplos de políticas basadas en identidades de Amazon Location, consulte [Ejemplos de políticas basadas en identidad para Amazon Location Service](#security_iam_id-based-policy-examples).

### ACLs en Amazon Location
<a name="security_iam_service-with-iam-acls"></a>

**Soportes ACLs:** No 

Las listas de control de acceso (ACLs) controlan qué directores (miembros de la cuenta, usuarios o roles) tienen permisos para acceder a un recurso. ACLs son similares a las políticas basadas en recursos, aunque no utilizan el formato de documento de políticas JSON.

### ABAC con Amazon
<a name="security_iam_service-with-iam-tags"></a>

**Admite ABAC (etiquetas en las políticas):** sí

El control de acceso basado en atributos (ABAC) es una estrategia de autorización que define permisos en función de atributos denominados etiquetas. Puede adjuntar etiquetas a las entidades y AWS los recursos de IAM y, a continuación, diseñar políticas de ABAC para permitir las operaciones cuando la etiqueta del director coincida con la etiqueta del recurso.

Para controlar el acceso en función de etiquetas, debe proporcionar información de las etiquetas en el [elemento de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) de una política utilizando las claves de condición `aws:ResourceTag/key-name`, `aws:RequestTag/key-name` o `aws:TagKeys`.

Si un servicio admite las tres claves de condición para cada tipo de recurso, el valor es **Sí** para el servicio. Si un servicio admite las tres claves de condición solo para algunos tipos de recursos, el valor es **Parcial**.

*Para obtener más información sobre ABAC, consulte [Definición de permisos con la autorización de ABAC](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) en la Guía del usuario de IAM*. Para ver un tutorial con los pasos para configurar ABAC, consulte [Uso del control de acceso basado en atributos (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) en la *Guía del usuario de IAM*.

Para obtener más información acerca del etiquetado de recursos de Amazon Location, consulte [Cómo utilizar etiquetas](manage-resources.md#manage-resources_how-to).

Para consultar un ejemplo de política basada en la identidad para limitar el acceso a un recurso en función de las etiquetas de ese recurso, consulte [Controlar el acceso a los recursos en función de las etiquetas](#security_iam_tag-based-policy-example).

### Uso de credenciales temporales con Amazon Location
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Compatibilidad con credenciales temporales:** sí

Las credenciales temporales proporcionan acceso a AWS los recursos a corto plazo y se crean automáticamente cuando se utiliza la federación o se cambia de rol. AWS recomienda generar credenciales temporales de forma dinámica en lugar de utilizar claves de acceso a largo plazo. Para obtener más información, consulte [Credenciales de seguridad temporales en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) y [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) en la *Guía del usuario de IAM*.

### Permisos de entidades principales entre servicios de Amazon Location
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Compatibilidad con sesiones de acceso directo (FAS):** no 

 Las sesiones de acceso directo (FAS) utilizan los permisos del principal que llama y los que solicitan Servicio de AWS para realizar solicitudes a los servicios descendentes. Servicio de AWS Para obtener información sobre las políticas a la hora de realizar solicitudes de FAS, consulte [Sesiones de acceso directo](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

### Roles de servicio para Amazon Location
<a name="security_iam_service-with-iam-roles-service"></a>

**Compatible con roles de servicio:** No 

 Un rol de servicio es un [rol de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) que asume un servicio para realizar acciones en su nombre. Un administrador de IAM puede crear, modificar y eliminar un rol de servicio desde IAM. Para obtener más información, consulte [Crear un rol para delegar permisos a un Servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) en la *Guía del usuario de IAM*. 

**aviso**  
Cambiar los permisos de un rol de servicio podría interrumpir la funcionalidad de Amazon Location. Edite los roles de servicio solo cuando Amazon Location proporcione orientación para hacerlo.

### Roles vinculados a servicios para Amazon Location
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Compatibilidad con roles vinculados al servicio:** no 

 Un rol vinculado a un servicio es un tipo de rol de servicio que está vinculado a un. Servicio de AWS El servicio puede asumir el rol para realizar una acción en su nombre. Los roles vinculados al servicio aparecen en usted Cuenta de AWS y son propiedad del servicio. Un administrador de IAM puede ver, pero no editar, los permisos de los roles vinculados a servicios. 

Para más información sobre cómo crear o administrar roles vinculados a servicios, consulta [Servicios de AWS que funcionan con IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Busque un servicio en la tabla que incluya `Yes` en la columna **Rol vinculado a un servicio**. Seleccione el vínculo **Sí** para ver la documentación acerca del rol vinculado a servicios para ese servicio.

## Cómo funciona Amazon Location Service con usuarios no autenticados
<a name="security_iam_unauthenticated-users"></a>

Muchos escenarios para usar Amazon Location Service, incluida la visualización de mapas en la web o en una aplicación móvil, requieren permitir el acceso a los usuarios que no han iniciado sesión con IAM. Para estos escenarios no autenticados, tiene dos opciones.
+ **Utilizar claves de API**: para conceder acceso a usuarios no autenticados, puede crear claves de API que den acceso de solo lectura a sus recursos de Amazon Location Service. Esto resulta útil en el caso de que no desee autenticar a todos los usuarios. Por ejemplo, una aplicación web. Para obtener más información acerca de las claves API, consulte [Uso de claves de la API para autenticación](using-apikeys.md).
+ **Utilizar Amazon Cognito**: puede utilizar Amazon Cognito para conceder acceso anónimo como alternativa a las claves de API. Amazon Cognito le permite crear una autorización más completa con política de IAM para definir lo que pueden hacer los usuarios no autenticados. Para obtener más información sobre cómo usar Amazon Cognito, consulte [Uso del grupo de identidades de Amazon Cognito en la web](authenticating-using-cognito.md#identity-pool-js).

Para obtener información general sobre cómo proporcionar acceso a usuarios no autenticados, consulte [Autenticación con Amazon Location Service](access.md).

## Ejemplos de políticas basadas en identidad para Amazon Location Service
<a name="security_iam_id-based-policy-examples"></a>

De forma predeterminada, los usuarios y roles no tienen permiso para crear ni modificar los recursos de Amazon Location. Un administrador de IAM puede crear políticas de IAM para conceder permisos a los usuarios para realizar acciones en los recursos que necesitan.

Para obtener información acerca de cómo crear una política basada en identidades de IAM mediante el uso de estos documentos de políticas JSON de ejemplo, consulte [Creación de políticas de IAM (consola)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las acciones y los tipos de recursos definidos por Amazon Location, incluido el ARNs formato de cada uno de los tipos de recursos, consulte [Acciones, recursos y claves de condición de Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html) en la *Referencia de autorización del servicio*.

**Topics**
+ [Prácticas recomendadas sobre las políticas](#security_iam_service-with-iam-policy-best-practices)
+ [Uso de la consola de Amazon Location](#security_iam_id-based-policy-examples-console)
+ [Cómo permitir a los usuarios consultar sus propios permisos](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Uso de los recursos de Amazon Location Service en la política](#security_iam_id-based-policy-examples-using-resources)
+ [Permisos para actualizar las posiciones de los dispositivos](#security_iam_id-based-policy-examples-update-device-positions)
+ [Política de solo lectura para los recursos del rastreador](#security_iam_id-based-policy-examples-read-only-trackers)
+ [Política de creación de geocercas](#security_iam_id-based-policy-examples-create-geofences)
+ [Política de solo lectura para geocercas](#security_iam_id-based-policy-examples-read-only-geofences)
+ [Permisos para renderizar un recurso de mapa](#security_iam_id-based-policy-examples-get-map-tiles)
+ [Permisos para permitir las operaciones de búsqueda](#security_iam_id-based-policy-examples-search-for-place)
+ [Política de solo lectura para calculadoras de rutas](#security_iam_id-based-policy-examples-calculate-route)
+ [Controle el acceso a los recursos en función de las claves de condición](#security_iam_condition-key-example)
+ [Controlar el acceso a los recursos en función de las etiquetas](#security_iam_tag-based-policy-example)

### Prácticas recomendadas sobre las políticas
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Las políticas basadas en identidades determinan si alguien puede crear, eliminar o acceder a los recursos de Amazon Location de la cuenta. Estas acciones pueden generar costos adicionales para su Cuenta de AWS. Siga estas directrices y recomendaciones al crear o editar políticas basadas en identidades:
+ **Comience con las políticas AWS administradas y avance hacia los permisos con privilegios mínimos**: para empezar a conceder permisos a sus usuarios y cargas de trabajo, utilice las *políticas AWS administradas* que otorgan permisos para muchos casos de uso comunes. Están disponibles en su. Cuenta de AWS Le recomendamos que reduzca aún más los permisos definiendo políticas administradas por el AWS cliente que sean específicas para sus casos de uso. Con el fin de obtener más información, consulte las [políticas administradas por AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) o las [políticas administradas por AWS para funciones de tarea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) en la *Guía de usuario de IAM*.
+ **Aplique permisos de privilegio mínimo**: cuando establezca permisos con políticas de IAM, conceda solo los permisos necesarios para realizar una tarea. Para ello, debe definir las acciones que se pueden llevar a cabo en determinados recursos en condiciones específicas, también conocidos como *permisos de privilegios mínimos*. Con el fin de obtener más información sobre el uso de IAM para aplicar permisos, consulte [Políticas y permisos en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) en la *Guía del usuario de IAM*.
+ **Utilice condiciones en las políticas de IAM para restringir aún más el acceso**: puede agregar una condición a sus políticas para limitar el acceso a las acciones y los recursos. Por ejemplo, puede escribir una condición de políticas para especificar que todas las solicitudes deben enviarse utilizando SSL. También puedes usar condiciones para conceder el acceso a las acciones del servicio si se utilizan a través de una acción específica Servicio de AWS, por ejemplo CloudFormation. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.
+ **Utiliza el analizador de acceso de IAM para validar las políticas de IAM con el fin de garantizar la seguridad y funcionalidad de los permisos**: el analizador de acceso de IAM valida políticas nuevas y existentes para que respeten el lenguaje (JSON) de las políticas de IAM y las prácticas recomendadas de IAM. El analizador de acceso de IAM proporciona más de 100 verificaciones de políticas y recomendaciones procesables para ayudar a crear políticas seguras y funcionales. Para más información, consulte [Validación de políticas con el Analizador de acceso de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) en la *Guía del usuario de IAM*.
+ **Requerir autenticación multifactor (MFA**): si tiene un escenario que requiere usuarios de IAM o un usuario raíz en Cuenta de AWS su cuenta, active la MFA para mayor seguridad. Para exigir la MFA cuando se invoquen las operaciones de la API, añada condiciones de MFA a sus políticas. Para más información, consulte [Acceso seguro a la API con MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) en la *Guía del usuario de IAM*.

Para obtener más información sobre las prácticas recomendadas de IAM, consulte [Prácticas recomendadas de seguridad en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) en la *Guía del usuario de IAM*.

### Uso de la consola de Amazon Location
<a name="security_iam_id-based-policy-examples-console"></a>

Para acceder a la consola de Amazon Location Service, debe tener un conjunto mínimo de permisos. Estos permisos deben permitirte enumerar y ver detalles sobre los recursos de Amazon Location de tu cuenta Cuenta de AWS. Si crea una política basada en identidades que sea más restrictiva que el mínimo de permisos necesarios, la consola no funcionará del modo esperado para las entidades (usuarios o roles) que tengan esa política.

No es necesario que concedas permisos mínimos de consola a los usuarios que solo realicen llamadas a la API AWS CLI o a la AWS API. En su lugar, permita el acceso únicamente a las acciones que coincidan con la operación de API que intentan realizar.

Para asegurarse de que los usuarios y los roles puedan seguir utilizando la consola de Amazon Location, asocie también a las siguiente política administrada a las entidades. Para obtener más información, consulte [Adición de permisos a un usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) en la *Guía del usuario de IAM*:

La siguiente política da acceso a la consola de Amazon Location Service para poder crear, eliminar, enumerar y ver detalles sobre los recursos de Amazon Location en su cuenta de AWS .

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "GeoPowerUser",
      "Effect": "Allow",
      "Action": [
        "geo:*",
        "geo-maps:*",
        "geo-places:*",
        "geo-routes:*"
      ],
      "Resource": "*"
    }
  ]
}
```

Como alternativa, puede conceder permisos de solo lectura para facilitar el acceso de solo lectura. Con los permisos de solo lectura, aparecerá un mensaje de error si el usuario intenta realizar acciones de escritura, como crear o eliminar recursos. Para ver un ejemplo, consulte [Política de solo lectura para los recursos del rastreador](#security_iam_id-based-policy-examples-read-only-trackers)

### Cómo permitir a los usuarios consultar sus propios permisos
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

En este ejemplo, se muestra cómo podría crear una política que permita a los usuarios de IAM ver las políticas administradas e insertadas que se asocian a la identidad de sus usuarios. Esta política incluye permisos para completar esta acción en la consola o mediante programación mediante la API AWS CLI o AWS .

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

### Uso de los recursos de Amazon Location Service en la política
<a name="security_iam_id-based-policy-examples-using-resources"></a>

Amazon Location Service utiliza los siguientes prefijos para los recursos:


**Prefijo de recurso de Amazon Location**  

| Recurso | Prefijo de recurso | 
| --- | --- | 
| Recursos de mapas | map | 
| Recursos de sitios | place-index | 
| Recursos de ruta | route-calculator | 
| Recursos de rastreo | tracker | 
| Recursos de la colección de geocerca | geofence-collection | 

Utilice la siguiente sintaxis ARN:

```
arn:Partition:geo:Region:Account:ResourcePrefix/ResourceName
```

Para obtener más información sobre el formato de ARNs, consulte [Amazon Resource Names (ARNs) y AWS Service Namespaces](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html).

**Ejemplos**
+ Utilice el siguiente ARN para permitir el acceso a un recurso de mapa específico.

  ```
  "Resource": "arn:aws:geo:us-west-2:account-id:map/map-resource-name"
  ```
+ Para especificar el acceso a todos los recursos de `map` que pertenecen a una cuenta específica, utilice el carácter comodín (\$1):

  ```
  "Resource": "arn:aws:geo:us-west-2:account-id:map/*"
  ```
+ Algunas acciones de Amazon Location, como las que se utilizan para crear recursos, no se pueden llevar a cabo en un recurso específico. En dichos casos, debe utilizar el carácter comodín (\$1).

  ```
  "Resource": "*"
  ```

Para ver una lista de los tipos de recursos de Amazon Location y sus tipos ARNs, consulte [Recursos definidos por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-resources-for-iam-policies) en la *Referencia de autorización del servicio*. Para obtener información acerca de las acciones con las que puede especificar el ARN de cada recurso, consulte [Acciones definidas por Amazon Location Service](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonlocation.html#amazonlocation-actions-as-permissions).

### Permisos para actualizar las posiciones de los dispositivos
<a name="security_iam_id-based-policy-examples-update-device-positions"></a>

 Para actualizar las posiciones de los dispositivos de varios rastreadores, querrá conceder a un usuario acceso a uno o más de sus recursos de seguimiento. También querrá permitir que el usuario actualice un lote de posiciones de dispositivos.

En este ejemplo, además de conceder acceso a los *Tracker2* recursos *Tracker1* y, la siguiente política otorga permiso para utilizar la `geo:BatchUpdateDevicePosition` acción contra los *Tracker2* recursos *Tracker1* y.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdateDevicePositions",
      "Effect": "Allow",
      "Action": [
        "geo:BatchUpdateDevicePosition"
      ],
      "Resource": [
        "arn:aws:geo:us-west-2:account-id:tracker/Tracker1",
        "arn:aws:geo:us-west-2:account-id:tracker/Tracker2"
      ]
    }
  ]
}
```

Si quiere limitar al usuario a que solo pueda actualizar las posiciones de los dispositivos de un dispositivo específico, puede agregar una clave de condición para el identificador de ese dispositivo.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdateDevicePositions",
      "Effect": "Allow",
      "Action": [
        "geo:BatchUpdateDevicePosition"
      ],
      "Resource": [
        "arn:aws:geo:us-west-2:account-id:tracker/Tracker1",
        "arn:aws:geo:us-west-2:account-id:tracker/Tracker2"
      ],
      "Condition":{
        "ForAllValues:StringLike":{
          "geo:DeviceIds":[
            "deviceId"
          ]
        }
      }
    }
  ]
}
```

### Política de solo lectura para los recursos del rastreador
<a name="security_iam_id-based-policy-examples-read-only-trackers"></a>

Para crear una política de solo lectura para todos los recursos del rastreador de tu AWS cuenta, tendrás que conceder el acceso a todos los recursos del rastreador. También querrá conceder a los usuarios acceso a las acciones que les permitan obtener la posición del dispositivo en varios dispositivos, obtener la posición del dispositivo desde un único dispositivo y obtener el historial de posiciones.

En este ejemplo, la siguiente política concede permisos para las siguientes acciones:
+ `geo:BatchGetDevicePosition` para recuperar la posición de varios dispositivos.
+ `geo:GetDevicePosition` para recuperar la posición de un solo dispositivo.
+ `geo:GetDevicePositionHistory` para recuperar el historial de posición de un dispositivo.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "GetDevicePositions",
      "Effect": "Allow",
      "Action": [
        "geo:BatchGetDevicePosition",
        "geo:GetDevicePosition",
        "geo:GetDevicePositionHistory"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:tracker/*"
    }
  ]
}
```

### Política de creación de geocercas
<a name="security_iam_id-based-policy-examples-create-geofences"></a>

Para crear una política que permita a un usuario crear geocercas, tendrá que conceder acceso a acciones específicas que permitan a los usuarios crear una o más geocercas en una colección de geocercas.

La siguiente política autoriza las siguientes acciones en: *Collection*
+ `geo:BatchPutGeofence` para crear varias geocercas.
+ `geo:PutGeofence` para crear una geocerca única.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateGeofences",
      "Effect": "Allow",
      "Action": [
        "geo:BatchPutGeofence",
        "geo:PutGeofence"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection"
    }
  ]
}
```

### Política de solo lectura para geocercas
<a name="security_iam_id-based-policy-examples-read-only-geofences"></a>

Para crear una política de solo lectura para las geocercas almacenadas en una colección de geocercas de su cuenta de AWS , tendrá que conceder acceso a las acciones que lean datos de la colección de geocercas que almacena las geocercas.

La siguiente política autoriza las siguientes acciones en*Collection*:
+ `geo:ListGeofences` para enumerar las geocercas de la colección de geocercas especificada.
+ `geo:GetGeofence` para recuperar una geocerca de la colección de geocercas.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "GetGeofences",
      "Effect": "Allow",
      "Action": [
        "geo:ListGeofences",
        "geo:GetGeofence"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection"
    }
  ]
}
```

### Permisos para renderizar un recurso de mapa
<a name="security_iam_id-based-policy-examples-get-map-tiles"></a>

Para conceder los permisos necesarios para renderizar los mapas, tendrás que conceder acceso a las mosaicos, los sprites, los glifos y el descriptor de estilo del mapa:
+ `geo:GetMapTile` recupera las mosaicos del mapa que se utilizan para renderizar de forma selectiva las entidades de un mapa.
+ `geo:GetMapSprites` recupera la hoja de sprites en PNG y el documento JSON correspondiente en el que se describen los desfases que contiene.
+ `geo:GetMapGlyphs` recupera los archivos Glyph utilizados para mostrar el texto.
+ `geo:GetMapStyleDescriptor` recupera el descriptor de estilo del mapa, que contiene las reglas de renderizado.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "GetTiles",
      "Effect": "Allow",
      "Action": [
        "geo:GetMapTile",
        "geo:GetMapSprites",
        "geo:GetMapGlyphs",
        "geo:GetMapStyleDescriptor"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:map/Map"
    }
  ]
}
```

### Permisos para permitir las operaciones de búsqueda
<a name="security_iam_id-based-policy-examples-search-for-place"></a>

Para crear una política que permita las operaciones de búsqueda, primero tendrás que conceder acceso al recurso de indexación de sitios de tu AWS cuenta. También querrá conceder acceso a las acciones que permitan al usuario buscar con texto mediante geocodificación y buscar con una posición mediante geocodificación inversa.

En este ejemplo, además de conceder acceso a*PlaceIndex*, la siguiente política también concede permisos para las siguientes acciones:
+ `geo:SearchPlaceIndexForPosition` permite buscar lugares o puntos de interés cercanos a una posición determinada. 
+ `geo:SearchPlaceIndexForText` permite buscar una dirección, un nombre, una ciudad o una región mediante texto de formato libre.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "Search",
      "Effect": "Allow",
      "Action": [
        "geo:SearchPlaceIndexForPosition",
        "geo:SearchPlaceIndexForText"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:place-index/PlaceIndex"
    }
  ]
}
```

### Política de solo lectura para calculadoras de rutas
<a name="security_iam_id-based-policy-examples-calculate-route"></a>

Puede crear una política de solo lectura para permitir que un usuario acceda a un recurso de calculadora de rutas para calcular una ruta. 

En este ejemplo, además de conceder acceso a*ExampleCalculator*, la siguiente política concede permiso a la siguiente operación:
+ `geo:CalculateRoute` calcula una ruta con una posición de salida, una posición de destino y una lista de posiciones de puntos de referencia. 

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "RoutesReadOnly",
      "Effect": "Allow",
      "Action": [
        "geo:CalculateRoute"
      ],
      "Resource": "arn:aws:geo:us-west-2:accountID:route-calculator/ExampleCalculator"
    }
  ]
}
```

### Controle el acceso a los recursos en función de las claves de condición
<a name="security_iam_condition-key-example"></a>

Al crear una política de IAM para conceder acceso al uso de geocercas o posiciones de dispositivos, puede utilizar [operadores de condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) para controlar con mayor precisión a qué geocercas o dispositivos puede acceder un usuario. Para ello, incluye el identificador de la geocerca o el identificador del dispositivo en el elemento `Condition` de la política.

En el siguiente ejemplo se muestra cómo puede crear una política que permita a un usuario actualizar las posiciones de un dispositivo específico.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "UpdateDevicePositions",
      "Effect": "Allow",
      "Action": [
        "geo:BatchUpdateDevicePosition"
      ],
      "Resource": [
        "arn:aws:geo:us-west-2:account-id:tracker/Tracker"
      ],
      "Condition":{
        "ForAllValues:StringLike":{
          "geo:DeviceIds":[
            "deviceId"
          ]
        }
      }
    }
  ]
}
```

### Controlar el acceso a los recursos en función de las etiquetas
<a name="security_iam_tag-based-policy-example"></a>

Cuando crea una política de IAM para permitir el uso de sus recursos de Amazon Location, puede usar el control de [acceso basado en atributos para controlar](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) mejor los recursos que un usuario puede modificar, usar o eliminar. Para ello, incluya información sobre las etiquetas en el elemento `Condition` de su política para controlar el acceso en función de las [etiquetas](manage-resources.md#manage-resources_how-to) de sus recursos.

En el siguiente ejemplo de política se muestra cómo puede crear una política que permita a un usuario crear geocercas. Esto otorga el permiso a las siguientes acciones para crear una o más geocercas en una colección de geocercas denominada: *Collection*
+ `geo:BatchPutGeofence` para crear varias geocercas.
+ `geo:PutGeofence` para crear una geocerca única.

Sin embargo, esta política utiliza el `Condition` elemento para conceder el permiso solo si la *Collection* etiqueta tiene el valor del nombre de usuario de ese usuario. `Owner` 
+ Por ejemplo, si un usuario llamado `richard-roe` intenta ver una ubicación de Amazon*Collection*, *Collection* debe estar etiquetada `Owner=richard-roe` o`owner=richard-roe`. De lo contrario, se deniega el acceso al usuario. 
**nota**  
La clave de la etiqueta de condición `Owner` coincide con los nombres de las claves de condición `Owner` y `owner` porque no distinguen entre mayúsculas y minúsculas. Para obtener más información, consulte [Elementos de la política de JSON de IAM: Condición](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) en la *Guía del usuario de IAM*.

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CreateGeofencesIfOwner",
      "Effect": "Allow",
      "Action": [
        "geo:BatchPutGeofence",
        "geo:PutGeofence"
      ],
      "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection",
      "Condition": {
                "StringEquals": {"geo:ResourceTag/Owner": "${aws:username}"}
      }
    }
  ]
}
```

Para ver un tutorial sobre [cómo definir los permisos de acceso a los recursos de AWS en función de las etiquetas](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html), consulte la *Guía del usuario de AWS Identity and Access Management *.

## Solución de problemas de identidad y acceso de Amazon Location Service
<a name="security_iam_troubleshoot"></a>

Utilice la siguiente información para diagnosticar y solucionar los problemas habituales que pueden surgir cuando se trabaja con Amazon Location e IAM.

**Topics**
+ [No tengo autorización para realizar una acción en Amazon Location](#security_iam_troubleshoot-no-permissions)
+ [No estoy autorizado a realizar tareas como: PassRole](#security_iam_troubleshoot-passrole)
+ [Quiero permitir que personas ajenas a mí accedan Cuenta de AWS a mis recursos de Amazon Location](#security_iam_troubleshoot-cross-account-access)

### No tengo autorización para realizar una acción en Amazon Location
<a name="security_iam_troubleshoot-no-permissions"></a>

Si recibe un error que indica que no tiene autorización para realizar una acción, las políticas se deben actualizar para permitirle realizar la acción.

En el siguiente ejemplo, el error se produce cuando el usuario de IAM `mateojackson` intenta utilizar la consola para consultar los detalles acerca de un recurso ficticio `my-example-widget`, pero no tiene los permisos ficticios `geo:GetWidget`.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: geo:GetWidget on resource: my-example-widget
```

En este caso, la política del usuario `mateojackson` debe actualizarse para permitir el acceso al recurso `my-example-widget` mediante la acción `geo:GetWidget`.

Si necesitas ayuda, ponte en contacto con tu AWS administrador. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

### No estoy autorizado a realizar tareas como: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Si recibe un error que indica que no tiene autorización para llevar a cabo la acción `iam:PassRole`, las políticas se deben actualizar para permitirle pasar un rol a Amazon Location.

Algunas Servicios de AWS permiten transferir una función existente a ese servicio en lugar de crear una nueva función de servicio o una función vinculada a un servicio. Para ello, debe tener permisos para transferir la función al servicio.

En el siguiente ejemplo, el error se produce cuando un usuario de IAM denominado `marymajor` intenta utilizar la consola para realizar una acción en Amazon Location. Sin embargo, la acción requiere que el servicio cuente con permisos que otorguen un rol de servicio. Mary no tiene permisos para transferir el rol al servicio.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

En este caso, las políticas de Mary se deben actualizar para permitirle realizar la acción `iam:PassRole`.

Si necesita ayuda, póngase en contacto con su AWS administrador. El administrador es la persona que le proporcionó las credenciales de inicio de sesión.

### Quiero permitir que personas ajenas a mí accedan Cuenta de AWS a mis recursos de Amazon Location
<a name="security_iam_troubleshoot-cross-account-access"></a>

Se puede crear un rol que los usuarios de otras cuentas o las personas externas a la organización puedan utilizar para acceder a sus recursos. Se puede especificar una persona de confianza para que asuma el rol. En el caso de los servicios que admiten políticas basadas en recursos o listas de control de acceso (ACLs), puedes usar esas políticas para permitir que las personas accedan a tus recursos.

Para obtener más información, consulte lo siguiente:
+ Para saber si Amazon Location admite estas características, consulte [Cómo funciona Amazon Location Service con IAM](#security_iam_service-with-iam).
+ Para obtener información sobre cómo proporcionar acceso a los recursos de su Cuentas de AWS propiedad, consulte [Proporcionar acceso a un usuario de IAM en otro de su propiedad en la Cuenta de AWS Guía del usuario](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) de *IAM*.
+ Para obtener información sobre cómo proporcionar acceso a tus recursos a terceros Cuentas de AWS, consulta Cómo [proporcionar acceso a recursos que Cuentas de AWS son propiedad de terceros](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html) en la Guía del usuario de *IAM*.
+ Para obtener información sobre cómo proporcionar acceso mediante una federación de identidades, consulte [Proporcionar acceso a usuarios autenticados externamente (identidad federada)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) en la *Guía del usuario de IAM*.
+ Para conocer sobre la diferencia entre las políticas basadas en roles y en recursos para el acceso entre cuentas, consulte [Acceso a recursos entre cuentas en IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) en la *Guía del usuario de IAM*.