Accedi alle risorse AWS utilizzando un ruolo di esecuzione IAM - AWS Device Farm

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Accedi alle risorse AWS utilizzando un ruolo di esecuzione IAM

Device Farm supporta la specifica di un ruolo IAM che verrà assunto dall'ambiente di esecuzione del test personalizzato durante l'esecuzione del test. Questa funzionalità consente ai test di accedere in modo sicuro alle risorse AWS nel tuo account, come bucket Amazon S3, tabelle DynamoDB o altri servizi AWS da cui dipende l'applicazione.

Panoramica

Quando si specifica un ruolo di esecuzione IAM, Device Farm lo assume durante l'esecuzione del test, consentendo ai test di interagire con i servizi AWS utilizzando le autorizzazioni definite nel ruolo.

I casi d'uso comuni per i ruoli di esecuzione IAM includono:

  • Accesso ai dati di test archiviati nei bucket Amazon S3

  • Trasferimento degli artefatti di test ai bucket Amazon S3

  • Recupero della configurazione dell'applicazione da AWS AppConfig

  • Scrittura di log e metriche dei test su Amazon CloudWatch

  • Invio di risultati di test o messaggi di stato alle code di Amazon SQS

  • Richiamo delle funzioni AWS Lambda come parte dei flussi di lavoro di test

Requisiti del ruolo IAM

Per utilizzare un ruolo di esecuzione IAM con Device Farm, il ruolo deve soddisfare i seguenti requisiti:

  • Relazione di fiducia: è necessario affidare il ruolo al responsabile del servizio Device Farm. La politica di fiducia deve essere inclusa devicefarm.amazonaws.com come entità attendibile.

  • Autorizzazioni: il ruolo deve disporre delle autorizzazioni necessarie per accedere alle risorse AWS richieste dai test.

  • Durata della sessione: la durata massima della sessione del ruolo deve essere almeno pari all'impostazione del timeout del lavoro del progetto Device Farm. Per impostazione predefinita, i progetti Device Farm hanno un timeout di lavoro di 150 minuti, quindi il tuo ruolo deve supportare una sessione della durata di almeno 150 minuti.

  • Stesso requisito dell'account: il ruolo IAM deve trovarsi nello stesso account AWS utilizzato per chiamare Device Farm. L'assunzione di ruoli tra account non è supportata.

  • PassRole autorizzazione: il chiamante deve essere autorizzato a passare il ruolo IAM mediante una policy che consenta l'iam:PassRoleazione sul ruolo di esecuzione specificato.

Esempio di policy di attendibilità

L'esempio seguente mostra una politica di attendibilità che consente a Device Farm di assumere il ruolo di esecuzione dell'utente. Questa policy di fiducia deve essere associata solo al ruolo IAM specifico che intendi utilizzare con Device Farm, non ad altri ruoli nel tuo account:

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

Policy di autorizzazione di esempio

L'esempio seguente mostra una politica di autorizzazioni che garantisce l'accesso ai servizi AWS comuni utilizzati nei test:

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

Configurazione di un ruolo di esecuzione IAM

Puoi specificare un ruolo di esecuzione IAM a livello di progetto o per singole esecuzioni di test. Se configurate a livello di progetto, tutte le esecuzioni all'interno di quel progetto erediteranno il ruolo di esecuzione. Un ruolo di esecuzione configurato in un'esecuzione sostituirà qualsiasi ruolo configurato nel relativo progetto principale.

Per istruzioni dettagliate sulla configurazione dei ruoli di esecuzione, consulta:

Puoi anche configurare i ruoli di esecuzione utilizzando l'API Device Farm. Per ulteriori informazioni, consulta il Device Farm API Reference.

Best practice

Segui queste best practice per configurare i ruoli di esecuzione IAM per i test di Device Farm:

  • Principio del privilegio minimo: concedi solo le autorizzazioni minime necessarie per il funzionamento dei test. Evita di utilizzare autorizzazioni troppo ampie come * azioni o risorse.

  • Utilizza autorizzazioni specifiche per le risorse: quando possibile, limita le autorizzazioni a risorse specifiche (ad esempio, bucket S3 specifici o tabelle DynamoDB) anziché a tutte le risorse di un tipo.

  • Risorse di test e produzione separate: utilizza risorse e ruoli di test dedicati per evitare di influire accidentalmente sui sistemi di produzione durante i test.

  • Revisione periodica dei ruoli: rivedi e aggiorna periodicamente i ruoli di esecuzione per assicurarti che soddisfino ancora le tue esigenze di test e seguano le migliori pratiche di sicurezza.

  • Usa le chiavi di condizione: valuta la possibilità di utilizzare le chiavi di condizione IAM per limitare ulteriormente quando e come il ruolo può essere utilizzato.

risoluzione dei problemi

Se riscontri problemi con i ruoli di esecuzione IAM, controlla quanto segue:

  • Relazione di fiducia: verifica che la politica di fiducia del devicefarm.amazonaws.com ruolo includa un servizio affidabile.

  • Autorizzazioni: verifica che il ruolo disponga delle autorizzazioni necessarie per i servizi AWS a cui i test stanno tentando di accedere.

  • Registri di test: esamina i log di esecuzione dei test per messaggi di errore specifici relativi alle chiamate API AWS o ai dinieghi di autorizzazione.