Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Greifen Sie mithilfe einer IAM-Ausführungsrolle auf AWS-Ressourcen zu
Device Farm unterstützt die Angabe einer IAM-Rolle, die während der Testausführung von der benutzerdefinierten Testlaufzeitumgebung übernommen wird. Mit dieser Funktion können Ihre Tests sicher auf AWS-Ressourcen in Ihrem Konto zugreifen, z. B. Amazon S3 S3-Buckets, DynamoDB-Tabellen oder andere AWS-Services, von denen Ihre Anwendung abhängt.
Themen
Übersicht
Wenn Sie eine IAM-Ausführungsrolle angeben, übernimmt Device Farm diese Rolle während der Testausführung, sodass Ihre Tests mithilfe der in der Rolle definierten Berechtigungen mit AWS-Services interagieren können.
Zu den häufigsten Anwendungsfällen für IAM-Ausführungsrollen gehören:
-
Zugreifen auf Testdaten, die in Amazon S3 S3-Buckets gespeichert sind
-
Testartefakte in Amazon S3 S3-Buckets übertragen
-
Anwendungskonfiguration von AWS abrufen AppConfig
-
Schreiben von Testprotokollen und Metriken auf Amazon CloudWatch
-
Senden von Testergebnissen oder Statusmeldungen an Amazon SQS SQS-Warteschlangen
-
Aufrufen von AWS Lambda Lambda-Funktionen als Teil von Test-Workflows
IAM-Rollenanforderungen
Um eine IAM-Ausführungsrolle mit Device Farm verwenden zu können, muss Ihre Rolle die folgenden Anforderungen erfüllen:
-
Vertrauensverhältnis: Dem Device Farm Farm-Dienstprinzipal muss vertraut werden, um die Rolle übernehmen zu können. Die Vertrauensrichtlinie muss eine
devicefarm.amazonaws.com.rproxy.govskope.cavertrauenswürdige Entität beinhalten. -
Berechtigungen: Die Rolle muss über die erforderlichen Berechtigungen für den Zugriff auf die AWS-Ressourcen verfügen, die für Ihre Tests erforderlich sind.
-
Sitzungsdauer: Die maximale Sitzungsdauer der Rolle muss mindestens so lang sein wie die Job-Timeout-Einstellung Ihres Device Farm Farm-Projekts. Standardmäßig haben Device Farm Farm-Projekte ein Job-Timeout von 150 Minuten, sodass Ihre Rolle eine Sitzungsdauer von mindestens 150 Minuten unterstützen muss.
-
Gleiche Kontoanforderung: Die IAM-Rolle muss sich in demselben AWS-Konto befinden wie das, mit dem Device Farm aufgerufen wurde. Die kontoübergreifende Übernahme von Rollen wird nicht unterstützt.
-
PassRole Berechtigung: Der Aufrufer muss gemäß einer Richtlinie autorisiert sein, die IAM-Rolle zu übergeben, sodass die
iam:PassRoleAktion für die angegebene Ausführungsrolle zulässig ist.
Beispiel für eine Treuhand-Police
Das folgende Beispiel zeigt eine Vertrauensrichtlinie, die es Device Farm ermöglicht, Ihre Ausführungsrolle zu übernehmen. Diese Vertrauensrichtlinie sollte nur der spezifischen IAM-Rolle zugewiesen werden, die Sie mit Device Farm verwenden möchten, nicht anderen Rollen in Ihrem Konto:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "devicefarm.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Beispiel für eine Berechtigungsrichtlinie
Das folgende Beispiel zeigt eine Berechtigungsrichtlinie, die Zugriff auf allgemeine AWS-Services gewährt, die beim Testen verwendet werden:
{ "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-*" } ] }
Konfiguration einer IAM-Ausführungsrolle
Sie können eine IAM-Ausführungsrolle auf Projektebene oder für einzelne Testläufe angeben. Bei der Konfiguration auf Projektebene erben alle Läufe innerhalb dieses Projekts die Ausführungsrolle. Eine bei einem Lauf konfigurierte Ausführungsrolle ersetzt alle in ihrem übergeordneten Projekt konfigurierten Rollen.
Detaillierte Anweisungen zur Konfiguration von Ausführungsrollen finden Sie unter:
-
Ein Projekt in AWS Device Farm erstellen- zur Konfiguration von Ausführungsrollen auf Projektebene
-
Einen Testlauf in Device Farm erstellen- zur Konfiguration von Ausführungsrollen für einzelne Läufe
Sie können Ausführungsrollen auch mithilfe der Device Farm API konfigurieren. Weitere Informationen finden Sie in der Device Farm API-Referenz.
Best Practices
Folgen Sie diesen bewährten Methoden, wenn Sie IAM-Ausführungsrollen für Ihre Device Farm Farm-Tests konfigurieren:
-
Prinzip der geringsten Rechte: Gewähren Sie nur die Mindestberechtigungen, die für das Funktionieren Ihrer Tests erforderlich sind. Vermeiden Sie die Verwendung zu weit gefasster Berechtigungen wie
*Aktionen oder Ressourcen. -
Verwenden Sie ressourcenspezifische Berechtigungen: Beschränken Sie die Berechtigungen nach Möglichkeit auf bestimmte Ressourcen (z. B. bestimmte S3-Buckets oder DynamoDB-Tabellen) und nicht auf alle Ressourcen eines Typs.
-
Separate Test- und Produktionsressourcen: Verwenden Sie spezielle Testressourcen und Rollen, um zu verhindern, dass während des Tests versehentlich Produktionssysteme beeinträchtigt werden.
-
Regelmäßige Rollenüberprüfung: Überprüfen und aktualisieren Sie Ihre Ausführungsrollen regelmäßig, um sicherzustellen, dass sie weiterhin Ihren Testanforderungen entsprechen und den bewährten Sicherheitsmethoden entsprechen.
-
Verwenden Sie Bedingungsschlüssel: Erwägen Sie die Verwendung von IAM-Bedingungsschlüsseln, um weiter einzuschränken, wann und wie die Rolle verwendet werden kann.
Fehlerbehebung
Wenn Sie Probleme mit IAM-Ausführungsrollen haben, überprüfen Sie Folgendes:
-
Vertrauensverhältnis: Stellen Sie sicher, dass die Vertrauensrichtlinie der Rolle einen vertrauenswürdigen Dienst beinhaltet
devicefarm.amazonaws.com. -
Berechtigungen: Stellen Sie sicher, dass die Rolle über die erforderlichen Berechtigungen für die AWS-Services verfügt, auf die Ihre Tests zugreifen möchten.
-
Testprotokolle: Überprüfen Sie die Testausführungsprotokolle auf spezifische Fehlermeldungen im Zusammenhang mit AWS-API-Aufrufen oder Verweigerungen von Berechtigungen.