

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# IAM 실행 역할을 사용하여 AWS 리소스에 액세스
<a name="custom-test-environments-iam-roles"></a>

 Device Farm은 테스트 실행 중에 사용자 지정 테스트 런타임 환경에서 수임할 IAM 역할 지정을 지원합니다. 이 기능을 사용하면 테스트가 Amazon S3 버킷, DynamoDB 테이블 또는 애플리케이션이 의존하는 기타 AWS 서비스와 같은 계정의 AWS 리소스에 안전하게 액세스할 수 있습니다.

**Topics**
+ [개요](#iam-execution-role-overview)
+ [IAM 역할 요구 사항](#iam-role-requirements)
+ [IAM 실행 역할 구성](#configuring-iam-execution-role)
+ [모범 사례](#iam-role-best-practices)
+ [문제 해결](#troubleshooting-iam-roles)

## 개요
<a name="iam-execution-role-overview"></a>

 IAM 실행 역할을 지정하면 Device Farm은 테스트 실행 중에이 역할을 수임하여 테스트가 역할에 정의된 권한을 사용하여 AWS 서비스와 상호 작용할 수 있도록 합니다.

 IAM 실행 역할의 일반적인 사용 사례는 다음과 같습니다.
+ Amazon S3 버킷에 저장된 테스트 데이터 액세스
+ Amazon S3 버킷에 테스트 아티팩트 푸시
+ AWS AppConfig에서 애플리케이션 구성 검색
+ Amazon CloudWatch에 테스트 로그 및 지표 작성
+ Amazon SQS 대기열로 테스트 결과 또는 상태 메시지 전송
+ 테스트 워크플로의 일부로 AWS Lambda 함수 호출

## IAM 역할 요구 사항
<a name="iam-role-requirements"></a>

 Device Farm에서 IAM 실행 역할을 사용하려면 역할이 다음 요구 사항을 충족해야 합니다.
+ **신뢰 관계**: 역할을 수임하려면 Device Farm 서비스 보안 주체를 신뢰해야 합니다. 신뢰 정책은를 신뢰할 수 있는 엔`devicefarm.amazonaws.com`터티로 포함해야 합니다.
+ **권한**: 역할에는 테스트에 필요한 AWS 리소스에 액세스하는 데 필요한 권한이 있어야 합니다.
+ **세션 기간**: 역할의 최대 세션 기간은 Device Farm 프로젝트의 작업 제한 시간 설정보다 길어야 합니다. 기본적으로 Device Farm 프로젝트의 작업 제한 시간은 150분이므로 역할은 최소 150분의 세션 기간을 지원해야 합니다.
+ **동일한 계정 요구 사항**: IAM 역할은 Device Farm을 호출하는 데 사용된 것과 동일한 AWS 계정에 있어야 합니다. 교차 계정 역할 가정은 지원되지 않습니다.
+ **PassRole 권한**: 호출자는 지정된 실행 역할에 대한 `iam:PassRole` 작업을 허용하는 정책을 통해 IAM 역할을 전달할 권한이 있어야 합니다.

### 신뢰 정책 예제
<a name="trust-policy-example"></a>

 다음 예제에서는 Device Farm이 실행 역할을 수임하도록 허용하는 신뢰 정책을 보여줍니다. 이 신뢰 정책은 Device Farm과 함께 사용하려는 특정 IAM 역할에만 연결되어야 하며 계정의 다른 역할에는 연결되지 않아야 합니다.

**Example**  

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

### 권한 정책 예
<a name="permissions-policy-example"></a>

 다음 예제는 테스트에 사용되는 일반적인 AWS 서비스에 대한 액세스 권한을 부여하는 권한 정책을 보여줍니다.

**Example**  

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

## IAM 실행 역할 구성
<a name="configuring-iam-execution-role"></a>

 프로젝트 수준에서 또는 개별 테스트 실행에 대해 IAM 실행 역할을 지정할 수 있습니다. 프로젝트 수준에서 구성하면 해당 프로젝트 내의 모든 실행이 실행 역할을 상속합니다. 실행에 구성된 실행 역할은 상위 프로젝트에 구성된를 대체합니다.

 실행 역할 구성에 대한 자세한 지침은 다음을 참조하세요.
+ [AWS Device Farm에서 프로젝트 생성](how-to-create-project.md) - 프로젝트 수준에서 실행 역할 구성
+ [Device Farm에서 테스트 실행 생성](how-to-create-test-run.md) - 개별 실행에 대한 실행 역할 구성

 Device Farm API를 사용하여 실행 역할을 구성할 수도 있습니다. 자세한 내용은 [Device Farm API](https://docs.aws.amazon.com/devicefarm/latest/APIReference/) 참조를 참조하세요.

## 모범 사례
<a name="iam-role-best-practices"></a>

 Device Farm 테스트에 대한 IAM 실행 역할을 구성할 때 다음 모범 사례를 따르세요.
+ **최소 권한 원칙**: 테스트가 작동하는 데 필요한 최소 권한만 부여합니다. `*` 작업이나 리소스와 같이 지나치게 광범위한 권한을 사용하지 마세요.
+ **리소스별 권한 사용**: 가능하면 유형의 모든 리소스가 아닌 특정 리소스(예: 특정 S3 버킷 또는 DynamoDB 테이블)로 권한을 제한합니다.
+ **별도의 테스트 및 프로덕션 리소스**: 전용 테스트 리소스와 역할을 사용하여 테스트 중에 실수로 프로덕션 시스템에 영향을 미치지 않도록 합니다.
+ **정기적인 역할 검토**: 실행 역할을 정기적으로 검토하고 업데이트하여 테스트 요구 사항을 여전히 충족하고 보안 모범 사례를 따르도록 합니다.
+ **조건 키 사용**: IAM 조건 키를 사용하여 역할을 사용할 수 있는 시기와 방법을 추가로 제한하는 것이 좋습니다.

## 문제 해결
<a name="troubleshooting-iam-roles"></a>

 IAM 실행 역할에 문제가 발생하면 다음을 확인하세요.
+ **신뢰 관계**: 역할의 신뢰 정책에가 신뢰할 `devicefarm.amazonaws.com` 수 있는 서비스로 포함되어 있는지 확인합니다.
+ **권한**: 역할에 테스트가 액세스하려는 AWS 서비스에 필요한 권한이 있는지 확인합니다.
+ **테스트 로그**: 테스트 실행 로그에서 AWS API 호출 또는 권한 거부와 관련된 특정 오류 메시지를 검토합니다.