View a markdown version of this page

Configurar los permisos de IAM - 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.

Configurar los permisos de IAM

Amazon Location Jobs requiere una función de ejecución de IAM que conceda al servicio permiso para acceder a sus buckets de Amazon S3. Cuando ejecutas un trabajo, Amazon Location asume esta función para leer los archivos de entrada de tu depósito de entrada y escribir los resultados de salida en tu depósito de salida en tu nombre. Para proporcionar estos permisos, debe crear una política de IAM con los permisos de Amazon S3 necesarios y asociarla a un rol de IAM con una política de confianza que permita que el servicio de ubicación de Amazon asuma el rol.

nota

Los depósitos de entrada y salida de Amazon S3 que cree deben estar en el mismo Región de AWS lugar en el que planea ejecutar sus trabajos. Los recursos de IAM que cree deben crearse en la misma cuenta.

Paso 1: Crear una política de IAM

Crea una política de IAM que conceda los permisos necesarios para los trabajos de Amazon Location.

Para crear una política de IAM para los trabajos de Amazon Location
  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, seleccione Políticas.

  3. Elija Crear política.

  4. Selecciona la pestaña JSON e introduce el siguiente documento de política, sustituyendo INPUT_BUCKET_NAME y por los nombres OUTPUT_BUCKET_NAME de tus buckets:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetObjectVersion", "s3:GetBucketVersioning" ], "Resource": [ "arn:aws:s3:::INPUT_BUCKET_NAME", "arn:aws:s3:::INPUT_BUCKET_NAME/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::OUTPUT_BUCKET_NAME/*" ] } ] }
  5. Elija Siguiente.

  6. En Nombre de la política, ingrese un nombre descriptivo, como LocationJobsS3AccessPolicy.

  7. Elija Crear política.

En la siguiente tabla se describen los permisos que otorga esta política:

Permiso Description (Descripción)
s3:GetObject Permite a Amazon Location leer los archivos de entrada de tu depósito de entrada.
s3:ListBucket Permite a Amazon Location enumerar los archivos de tu depósito de entrada para identificar todos los archivos de entrada para su procesamiento.
s3:GetObjectVersion Permite a Amazon Location acceder a versiones específicas de los archivos de entrada. Es obligatorio porque el control de versiones debe estar habilitado en sus buckets.
s3:GetBucketVersioning Permite a Amazon Location comprobar que el control de versiones está activado en tu bucket de entrada.
s3:PutObject Permite a Amazon Location escribir los resultados de salida en tu depósito de salida.
s3:AbortMultipartUpload Permite a Amazon Location limpiar las cargas multiparte fallidas al escribir archivos de salida de gran tamaño.
nota

Esta política sigue el principio del privilegio mínimo al conceder únicamente los permisos necesarios para que Amazon Location Jobs funcione. La política restringe los permisos de lectura al depósito de entrada y los permisos de escritura al depósito de salida.

Para crear una política de IAM mediante AWS CLI
  1. Cree un archivo location-jobs-policy.json con el siguiente contenido, sustituyendo INPUT_BUCKET_NAME y por los nombres OUTPUT_BUCKET_NAME de sus buckets:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetObjectVersion", "s3:GetBucketVersioning" ], "Resource": [ "arn:aws:s3:::INPUT_BUCKET_NAME", "arn:aws:s3:::INPUT_BUCKET_NAME/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::OUTPUT_BUCKET_NAME/*" ] } ] }
  2. Cree la política:

    aws iam create-policy \ --policy-name LocationJobsS3AccessPolicy \ --policy-document file://location-jobs-policy.json
  3. Anote el ARN de la política del resultado. Necesitará este ARN en el siguiente paso.

Paso 2: Crear un rol de ejecución

Cree una función de IAM que Amazon Location asuma para acceder a sus buckets de Amazon S3 durante la ejecución del trabajo.

La política de confianza permite que Amazon Location service (geo.amazonaws.com) asuma esta función. Esta relación de confianza es necesaria para que Amazon Location acceda a sus buckets de Amazon S3 durante la ejecución del trabajo.

Para crear un rol de ejecución para los trabajos de Amazon Location
  1. En el panel de navegación de la consola de IAM, elija Roles.

  2. Elija Crear rol.

  3. En Trusted entity type (Tipo de entidad de confianza), elija Custom trust policy (Política de confianza personalizada).

  4. Introduce la siguiente política de confianza y ACCOUNT_ID sustitúyela por tu ID de AWS cuenta:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "geo.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" } } } ] }
  5. Elija Siguiente.

  6. Busca y selecciona la política que creaste en el paso 1 (por ejemploLocationJobsS3AccessPolicy).

  7. Elija Siguiente.

  8. En Nombre del rol, introduzca un nombre descriptivo, comoLocationServiceJobExecutionRole.

  9. Elija Crear rol.

Para crear un rol de ejecución mediante el AWS CLI
  1. Crea un archivo trust-policy.json con el siguiente contenido y sustitúyelo por ACCOUNT_ID tu ID de AWS cuenta:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "geo.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "ACCOUNT_ID" } } } ] }
  2. Cree el rol:

    aws iam create-role \ --role-name LocationServiceJobExecutionRole \ --assume-role-policy-document file://trust-policy.json
  3. Adjunta la política que creaste en el paso 1 (ACCOUNT_IDsustitúyela por tu ID de AWS cuenta y LocationJobsS3AccessPolicy por el nombre de tu póliza si es diferente):

    aws iam attach-role-policy \ --role-name LocationServiceJobExecutionRole \ --policy-arn arn:aws:iam::ACCOUNT_ID:policy/LocationJobsS3AccessPolicy
  4. Obtenga el rol ARN:

    aws iam get-role \ --role-name LocationServiceJobExecutionRole \ --query 'Role.Arn' \ --output text
  5. Anote el ARN del rol en la salida. Necesitará este ARN al iniciar los trabajos con el ExecutionRoleArn parámetro.

Tras crear el rol, anote el ARN del rol. Necesitará este ARN al iniciar los trabajos con el ExecutionRoleArn parámetro. Para obtener más información, consulte Preparar datos de entrada.

Prácticas recomendadas de seguridad

Siga estas prácticas recomendadas de seguridad al configurar los permisos de IAM para Amazon Location Jobs:

  • Utilice un segmento específico ARNs: sustituya los nombres de los depósitos que aparecen en la política por los nombres de los depósitos reales para restringir el acceso únicamente a los depósitos que vaya a utilizar.

  • Separe los compartimentos de entrada y salida: utilice distintos compartimentos para la entrada y la salida a fin de mantener una separación clara entre los permisos de lectura y escritura.

  • Habilite el control de versiones de los buckets de Amazon S3: el control de versiones debe estar habilitado en sus buckets. Esto es necesario para que Amazon Location Jobs funcione correctamente.

  • Utilice las políticas de bucket de Amazon S3: añada políticas de bucket a sus buckets de Amazon S3 para obtener un control de acceso adicional más allá de las políticas de IAM.

  • Supervisar el uso de funciones: se utiliza para supervisar cuándo y cómo Amazon Location Jobs utiliza la función de ejecución.