Acesse os recursos da AWS usando uma função de execução do IAM - AWS Device Farm

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Acesse os recursos da AWS usando uma função de execução do IAM

O Device Farm suporta a especificação de uma função do IAM que será assumida pelo ambiente de execução de teste personalizado durante a execução do teste. Esse recurso permite que seus testes acessem com segurança os recursos da AWS em sua conta, como buckets do Amazon S3, tabelas do DynamoDB ou outros serviços da AWS dos quais seu aplicativo depende.

Visão geral do

Quando você especifica uma função de execução do IAM, o Device Farm assume essa função durante a execução do teste, permitindo que seus testes interajam com os serviços da AWS usando as permissões definidas na função.

Os casos de uso comuns para funções de execução do IAM incluem:

  • Acessando dados de teste armazenados em buckets do Amazon S3

  • Enviando artefatos de teste para os buckets do Amazon S3

  • Recuperando a configuração do aplicativo da AWS AppConfig

  • Escrevendo registros de teste e métricas para a Amazon CloudWatch

  • Envio de resultados de testes ou mensagens de status para filas do Amazon SQS

  • Chamando funções do AWS Lambda como parte dos fluxos de trabalho de teste

Requisitos de função do IAM

Para usar uma função de execução do IAM com o Device Farm, sua função deve atender aos seguintes requisitos:

  • Relação de confiança: o diretor do serviço Device Farm deve ser confiável para assumir a função. A política de confiança deve ser incluída devicefarm.amazonaws.com como uma entidade confiável.

  • Permissões: a função deve ter as permissões necessárias para acessar os recursos da AWS que seus testes exigem.

  • Duração da sessão: a duração máxima da sessão da função deve ser pelo menos tão longa quanto a configuração de tempo limite de trabalho do seu projeto Device Farm. Por padrão, os projetos do Device Farm têm um tempo limite de trabalho de 150 minutos, portanto, sua função deve suportar uma duração de sessão de pelo menos 150 minutos.

  • Mesmo requisito de conta: a função do IAM deve estar na mesma conta da AWS usada para chamar o Device Farm. A suposição de função entre contas não é suportada.

  • PassRole permissão: o chamador deve ser autorizado a transmitir a função do IAM por meio de uma política que permita a iam:PassRole ação na função de execução especificada.

Exemplo de política de confiança

O exemplo a seguir mostra uma política de confiança que permite que o Device Farm assuma sua função de execução. Essa política de confiança só deve ser anexada à função específica do IAM que você pretende usar com o Device Farm, não a outras funções em sua conta:

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

Exemplo de política de permissões

O exemplo a seguir mostra uma política de permissões que concede acesso a serviços comuns da AWS usados em testes:

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

Configurando uma função de execução do IAM

Você pode especificar uma função de execução do IAM no nível do projeto ou para execuções de teste individuais. Quando configuradas no nível do projeto, todas as execuções dentro desse projeto herdarão a função de execução. Uma função de execução configurada em uma execução substituirá qualquer função configurada em seu projeto principal.

Para obter instruções detalhadas sobre como configurar funções de execução, consulte:

Você também pode configurar funções de execução usando a API Device Farm. Para obter mais informações, consulte a Device Farm API Reference.

Práticas recomendadas

Siga estas melhores práticas ao configurar as funções de execução do IAM para seus testes do Device Farm:

  • Princípio do menor privilégio: conceda somente as permissões mínimas necessárias para que seus testes funcionem. Evite usar permissões muito amplas, como * ações ou recursos.

  • Use permissões específicas de recursos: quando possível, limite as permissões a recursos específicos (por exemplo, buckets específicos do S3 ou tabelas do DynamoDB) em vez de todos os recursos de um tipo.

  • Recursos de teste e produção separados: use funções e recursos de teste dedicados para evitar afetar acidentalmente os sistemas de produção durante os testes.

  • Revisão regular de funções: revise e atualize periodicamente suas funções de execução para garantir que elas ainda atendam às suas necessidades de teste e sigam as melhores práticas de segurança.

  • Use chaves de condição: considere usar chaves de condição do IAM para restringir ainda mais quando e como a função pode ser usada.

Solução de problemas

Se você encontrar problemas com as funções de execução do IAM, verifique o seguinte:

  • Relação de confiança: verifique se a política de confiança da função inclui devicefarm.amazonaws.com um serviço confiável.

  • Permissões: verifique se a função tem as permissões necessárias para os serviços da AWS que seus testes estão tentando acessar.

  • Registros de teste: revise os registros de execução do teste em busca de mensagens de erro específicas relacionadas a chamadas de API da AWS ou negações de permissão.