Accédez aux ressources AWS à l'aide d'un rôle d'exécution IAM - AWS Device Farm

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

Accédez aux ressources AWS à l'aide d'un rôle d'exécution IAM

Device Farm permet de spécifier un rôle IAM qui sera assumé par l'environnement d'exécution de test personnalisé lors de l'exécution du test. Cette fonctionnalité permet à vos tests d'accéder en toute sécurité aux ressources AWS de votre compte, telles que les compartiments Amazon S3, les tables DynamoDB ou d'autres services AWS dont dépend votre application.

Aperçu

Lorsque vous spécifiez un rôle d'exécution IAM, Device Farm assume ce rôle lors de l'exécution des tests, ce qui permet à vos tests d'interagir avec les services AWS en utilisant les autorisations définies dans le rôle.

Les cas d'utilisation courants des rôles d'exécution IAM incluent :

  • Accès aux données de test stockées dans des compartiments Amazon S3

  • Transférer des artefacts de test vers des compartiments Amazon S3

  • Récupération de la configuration d'une application depuis AWS AppConfig

  • Rédaction de journaux de test et de statistiques pour Amazon CloudWatch

  • Envoi de résultats de test ou de messages d'état aux files d'attente Amazon SQS

  • Appel de fonctions AWS Lambda dans le cadre de flux de travail de test

Exigences relatives au rôle IAM

Pour utiliser un rôle d'exécution IAM avec Device Farm, votre rôle doit répondre aux exigences suivantes :

  • Relation de confiance : le responsable du service Device Farm doit être digne de confiance pour assumer ce rôle. La politique de confiance doit inclure devicefarm.amazonaws.com le fait d'être une entité de confiance.

  • Autorisations : le rôle doit disposer des autorisations nécessaires pour accéder aux ressources AWS dont vos tests ont besoin.

  • Durée de session : la durée maximale de session du rôle doit être au moins aussi longue que le délai d'expiration des tâches défini dans votre projet Device Farm. Par défaut, les projets Device Farm ont un délai d'expiration de 150 minutes. Votre rôle doit donc prendre en charge une durée de session d'au moins 150 minutes.

  • Même exigence de compte : le rôle IAM doit figurer sur le même compte AWS que celui utilisé pour appeler Device Farm. L'hypothèse de rôles entre comptes n'est pas prise en charge.

  • PassRole autorisation : l'appelant doit être autorisé à transmettre le rôle IAM par une politique autorisant l'iam:PassRoleaction sur le rôle d'exécution spécifié.

Exemple de politique d’approbation

L'exemple suivant montre une politique de confiance qui permet à Device Farm d'assumer votre rôle d'exécution. Cette politique de confiance ne doit être attachée qu'au rôle IAM spécifique que vous avez l'intention d'utiliser avec Device Farm, et non aux autres rôles de votre compte :

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

Exemple de politique d’autorisations

L'exemple suivant montre une politique d'autorisation qui accorde l'accès aux services AWS courants utilisés lors des tests :

{ "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-*" } ] }

Configuration d'un rôle d'exécution IAM

Vous pouvez spécifier un rôle d'exécution IAM au niveau du projet ou pour des tests individuels. Lorsqu'elles sont configurées au niveau du projet, toutes les exécutions au sein de ce projet hériteront du rôle d'exécution. Un rôle d'exécution configuré lors d'une exécution remplacera tout rôle configuré sur son projet parent.

Pour obtenir des instructions détaillées sur la configuration des rôles d'exécution, voir :

Vous pouvez également configurer les rôles d'exécution à l'aide de l'API Device Farm. Pour plus d'informations, consultez le Device Farm API Reference.

Bonnes pratiques

Suivez ces bonnes pratiques lors de la configuration des rôles d'exécution IAM pour vos tests Device Farm :

  • Principe du moindre privilège : accordez uniquement les autorisations minimales nécessaires au bon fonctionnement de vos tests. Évitez d'utiliser des autorisations trop larges, telles que * des actions ou des ressources.

  • Utiliser des autorisations spécifiques aux ressources : dans la mesure du possible, limitez les autorisations à des ressources spécifiques (par exemple, des compartiments S3 ou des tables DynamoDB spécifiques) plutôt qu'à toutes les ressources d'un type.

  • Ressources de test et de production distinctes : utilisez des ressources et des rôles de test dédiés pour éviter d'affecter accidentellement les systèmes de production pendant les tests.

  • Révision régulière des rôles : passez régulièrement en revue et mettez à jour vos rôles d'exécution pour vous assurer qu'ils répondent toujours à vos besoins de test et respectent les meilleures pratiques en matière de sécurité.

  • Utiliser des clés de condition : pensez à utiliser des clés de condition IAM pour limiter davantage le moment et la manière dont le rôle peut être utilisé.

Résolution des problèmes

Si vous rencontrez des problèmes avec les rôles d'exécution IAM, vérifiez les points suivants :

  • Relation de confiance : vérifiez que la politique de confiance du devicefarm.amazonaws.com rôle inclut un service de confiance.

  • Autorisations : vérifiez que le rôle dispose des autorisations nécessaires pour les services AWS auxquels vos tests tentent d'accéder.

  • Journaux de test : consultez les journaux d'exécution des tests pour détecter les messages d'erreur spécifiques liés aux appels d'API AWS ou aux refus d'autorisation.