

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

# Apache Ranger와의 네이티브 통합을 위한 IAM 역할
<a name="emr-ranger-iam"></a>

Amazon EMR과 Apache Ranger 간 통합은 클러스터를 시작하기 전에 생성해야 하는 세 가지 주요 역할을 기반으로 합니다.
+ Amazon EMR에 대한 사용자 지정 Amazon EC2 인스턴스 프로파일
+ Apache Ranger 엔진의 IAM 역할
+ 다른 AWS 서비스에 대한 IAM 역할

이 섹션에서는 이러한 역할을 간단히 설명하고 각 IAM 역할에 포함해야 하는 정책을 살펴봅니다. 이러한 역할 생성에 대한 자세한 내용은 [Amazon EMR과 통합하도록 Ranger Admin 서버 설정](emr-ranger-admin.md) 섹션을 참조하세요.

# Amazon EMR에서 EC2 인스턴스 프로파일
<a name="emr-ranger-iam-ec2"></a>

Amazon EMR은 IAM 서비스 역할을 사용하여 클러스터 프로비저닝 및 관리하는 작업을 자동으로 수행합니다. 클러스터 EC2 인스턴스의 서비스 역할(Amazon EMR에 대한 EC2 인스턴스 프로파일이라고도 함)은 시작할 때 클러스터의 모든 EC2 인스턴스에 할당되는 특별한 유형의 서비스 역할입니다.

Amazon S3 데이터 및 Apache Ranger 및 기타 AWS 서비스로 보호되는 Hive 메타스토어와의 EMR 클러스터 상호 작용에 대한 권한을 정의하려면 클러스터를 시작할 `EMR_EC2_DefaultRole` 때 대신 사용할 사용자 지정 EC2 인스턴스 프로파일을 정의합니다.

자세한 내용은 [클러스터 EC2 인스턴스에 대한 서비스 역할(EC2 인스턴스 프로파일)](emr-iam-role-for-ec2.md) 및 [Amazon EMR을 사용하여 IAM 역할 사용자 지정](emr-iam-roles-custom.md) 섹션을 참조하세요.

Amazon EMR이 TLS 인증서를 저장하는 세션에 태그를 지정하고 AWS Secrets Manager 에 액세스할 수 있도록 기본 EC2 인스턴스 프로파일에 다음 문을 추가해야 합니다.

```
    {
      "Sid": "AllowAssumeOfRolesAndTagging",
      "Effect": "Allow",
      "Action": ["sts:TagSession", "sts:AssumeRole"],
      "Resource": [
        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_ENGINE-PLUGIN_DATA_ACCESS_ROLE_NAME>",
        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_USER_ACCESS_ROLE_NAME>"
      ]
    },
    {
        "Sid": "AllowSecretsRetrieval",
        "Effect": "Allow",
        "Action": "secretsmanager:GetSecretValue",
        "Resource": [
            "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<PLUGIN_TLS_SECRET_NAME>*",
            "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<ADMIN_RANGER_SERVER_TLS_SECRET_NAME>*"
        ]
    }
```

**참고**  
Secrets Manager 권한의 경우, 보안 암호 이름 끝에 있는 와일드카드('\$1')를 잊지 마세요. 그렇지 않으면 요청이 실패합니다. 와일드카드는 보안 암호 버전을 나타냅니다.

**참고**  
 AWS Secrets Manager 정책의 범위를 프로비저닝에 필요한 인증서로만 제한합니다.

# Apache Ranger의 IAM 역할
<a name="emr-ranger-iam-ranger"></a>

이 역할은 Apache Hive 및 Amazon EMR Record Server와 같은 신뢰할 수 있는 실행 엔진이 Amazon S3 데이터에 액세스할 수 있도록 보안 인증을 제공합니다. S3 SSE-KMS를 사용하는 경우 KMS 키를 포함하여 Amazon S3 데이터에 액세스하는 데에만 이 역할을 사용합니다.

이 역할은 다음 예제에 명시된 최소 정책으로 생성되어야 합니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CloudwatchLogsPermissions",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:logs:*:123456789012:log-group:CLOUDWATCH_LOG_GROUP_NAME_IN_SECURITY_CONFIGURATION:*"
      ]
    },
    {
      "Sid": "BucketPermissionsInS3Buckets",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteBucket",
        "s3:ListAllMyBuckets",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket2"
      ]
    },
    {
      "Sid": "ObjectPermissionsInS3Objects",
      "Action": [
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1/*",
        "arn:aws:s3:::amzn-s3-demo-bucket2/*"
      ]
    }
  ]
}
```

------

**중요**  
로그 스트림에 쓰기 권한을 부여하려면 CloudWatch 로그 리소스 끝에 별표 '\$1'를 포함해야 합니다.

**참고**  
EMRFS 일관된 보기 또는 S3-SSE 암호화를 사용하는 경우 DynamoDB 테이블 및 KMS 키에 권한을 추가하여 실행 엔진이 해당 엔진과 상호 작용할 수 있도록 합니다.

Apache Ranger의 IAM 역할은 EC2 인스턴스 프로파일 역할에서 수임합니다. 다음 예제를 사용하여 Apache Ranger에 대한 IAM 역할을 EC2 인스턴스 프로파일 역할에서 수임하도록 허용하는 신뢰 정책을 생성할 수 있습니다.

```
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
```

# Amazon EMR 통합을 위한 다른 AWS 서비스에 대한 IAM 역할
<a name="emr-ranger-iam-other-AWS"></a>

이 역할은 신뢰할 수 없는 실행 엔진 사용자에게 필요한 경우 AWS 서비스와 상호 작용할 수 있는 자격 증명을 제공합니다. 모든 사용자가 액세스할 수 있어야 하는 데이터가 아니라면 이 IAM 역할을 사용하여 Amazon S3 데이터에 대한 액세스를 허용하지 않습니다.

이 역할은 EC2 인스턴스 프로파일 역할에서 수임합니다. 다음 예제를 사용하여 Apache Ranger에 대한 IAM 역할을 EC2 인스턴스 프로파일 역할에서 수임하도록 허용하는 신뢰 정책을 생성할 수 있습니다.

```
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
```

# Apache Ranger와 Amazon EMR의 통합에 대한 권한 검증
<a name="emr-ranger-iam-validate"></a>

권한 검증에 대한 지침은 [Apache Ranger 문제 해결](emr-ranger-troubleshooting.md) 섹션을 참조하세요.