Acceda a los recursos de AWS mediante un rol de ejecución de IAM - AWS Device Farm

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.

Acceda a los recursos de AWS mediante un rol de ejecución de IAM

Device Farm admite la especificación de una función de IAM que asumirá el entorno de ejecución de la prueba personalizado durante la ejecución de la prueba. Esta función permite que sus pruebas accedan de forma segura a los recursos de AWS de su cuenta, como los buckets de Amazon S3, las tablas de DynamoDB u otros servicios de AWS de los que dependa su aplicación.

Descripción general de

Al especificar una función de ejecución de IAM, Device Farm asume esta función durante la ejecución de la prueba, lo que permite que las pruebas interactúen con los servicios de AWS mediante los permisos definidos en la función.

Entre los casos de uso habituales de las funciones de ejecución de IAM se incluyen los siguientes:

  • Acceso a los datos de prueba almacenados en los buckets de Amazon S3

  • Trasladar los artefactos de prueba a los buckets de Amazon S3

  • Recuperación de la configuración de la aplicación de AWS AppConfig

  • Escribir registros y métricas de pruebas en Amazon CloudWatch

  • Envío de resultados de pruebas o mensajes de estado a las colas de Amazon SQS

  • Llamar a las funciones de AWS Lambda como parte de los flujos de trabajo de prueba

Requisitos de rol de IAM

Para utilizar una función de ejecución de IAM con Device Farm, su función debe cumplir los siguientes requisitos:

  • Relación de confianza: se debe confiar en el director del servicio Device Farm para que asuma la función. La política de confianza debe incluirse devicefarm.amazonaws.com como entidad de confianza.

  • Permisos: el rol debe tener los permisos necesarios para acceder a los recursos de AWS que requieren sus pruebas.

  • Duración de la sesión: la duración máxima de la sesión del rol debe ser como mínimo igual a la configuración de tiempo de espera del trabajo del proyecto de Device Farm. De forma predeterminada, los proyectos de Device Farm tienen un tiempo de espera de trabajo de 150 minutos, por lo que su función debe admitir una duración de sesión de al menos 150 minutos.

  • El mismo requisito de cuenta: la función de IAM debe estar en la misma cuenta de AWS que la utilizada para llamar a Device Farm. No se admite la suposición de roles entre cuentas.

  • PassRole permiso: la persona que llama debe estar autorizada a pasar la función de IAM mediante una política que permita realizar iam:PassRole acciones en la función de ejecución especificada.

Política de confianza de ejemplo

El siguiente ejemplo muestra una política de confianza que permite a Device Farm asumir su función de ejecución. Esta política de confianza solo debe adjuntarse a la función de IAM específica que pretenda utilizar con Device Farm, no a otras funciones de su cuenta:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "devicefarm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Ejemplo de política de permisos

El siguiente ejemplo muestra una política de permisos que concede acceso a los servicios de AWS más comunes que se utilizan en las pruebas:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::my-test-bucket", "arn:aws:s3:::my-test-bucket/*" ] }, { "Effect": "Allow", "Action": [ "appconfig:GetConfiguration", "appconfig:StartConfigurationSession" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "arn:aws:logs:*:*:log-group:/devicefarm/test-*" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage", "sqs:GetQueueUrl" ], "Resource": "arn:aws:sqs:*:*:test-results-*" } ] }

Configuración de una función de ejecución de IAM

Puede especificar una función de ejecución de IAM a nivel de proyecto o para pruebas individuales. Cuando se configura a nivel de proyecto, todas las ejecuciones de ese proyecto heredarán la función de ejecución. Una función de ejecución configurada en una ejecución sustituirá a cualquier función configurada en su proyecto principal.

Para obtener instrucciones detalladas sobre la configuración de las funciones de ejecución, consulte:

También puede configurar las funciones de ejecución mediante la API Device Farm. Para obtener más información, consulte la referencia de la API de Device Farm.

Prácticas recomendadas

Siga estas prácticas recomendadas al configurar las funciones de ejecución de IAM para sus pruebas de Device Farm:

  • Principio del mínimo privilegio: conceda solo los permisos mínimos necesarios para que las pruebas funcionen. Evita usar permisos demasiado amplios, como * acciones o recursos.

  • Utilice permisos específicos para cada recurso: cuando sea posible, limite los permisos a recursos específicos (p. ej., cubos de S3 específicos o tablas de DynamoDB) en lugar de a todos los recursos de un mismo tipo.

  • Recursos de prueba y de producción separados: utilice funciones y recursos de prueba específicos para evitar que los sistemas de producción se vean afectados accidentalmente durante las pruebas.

  • Revisión periódica de las funciones: revise y actualice periódicamente sus funciones de ejecución para asegurarse de que siguen satisfaciendo sus necesidades de pruebas y siguiendo las mejores prácticas de seguridad.

  • Use claves de condición: considere la posibilidad de usar claves de condición de IAM para restringir aún más cuándo y cómo se puede usar el rol.

Resolución de problemas

Si tiene problemas con las funciones de ejecución de IAM, compruebe lo siguiente:

  • Relación de confianza: compruebe que la política de confianza del rol se incluya devicefarm.amazonaws.com como un servicio de confianza.

  • Permisos: compruebe que el rol tiene los permisos necesarios para los servicios de AWS a los que están intentando acceder las pruebas.

  • Registros de pruebas: revise los registros de ejecución de las pruebas para ver mensajes de error específicos relacionados con las llamadas a las API de AWS o las denegaciones de permisos.