

# Amazon EFS와 RDS for Oracle 통합을 위한 IAM 권한 구성
<a name="oracle-efs-integration.iam"></a>

기본적으로 Amazon EFS 통합 기능은 IAM 역할을 사용하지 않습니다. `USE_IAM_ROLE` 옵션 설정은 `FALSE`입니다. RDS for Oracle을 Amazon EFS 및 IAM 역할과 통합하려면 DB 인스턴스에는 Amazon EFS 파일 시스템에 액세스할 수 있는 IAM 권한이 있어야 합니다.

**Topics**
+ [1단계: DB 인스턴스의 IAM 역할 생성 및 정책 연결](#oracle-efs-integration.iam.role)
+ [2단계: Amazon EFS 파일 시스템의 파일 시스템 정책 생성](#oracle-efs-integration.iam.policy)
+ [3단계: IAM 역할을 RDS for Oracle DB 인스턴스와 연결](#oracle-efs-integration.iam.instance)

## 1단계: DB 인스턴스의 IAM 역할 생성 및 정책 연결
<a name="oracle-efs-integration.iam.role"></a>

이 단계에서는 Amazon RDS가 EFS 파일 시스템에 액세스할 수 있도록 RDS for Oracle DB 인스턴스의 역할을 생성합니다.

### 콘솔
<a name="oracle-efs-integration.iam.role.console"></a>

**Amazon RDS가 EFS 파일 시스템에 액세스하도록 허용하는 IAM 역할을 생성하는 방법**

1. [IAM 관리 콘솔](https://console.aws.amazon.com/iam/home?#home)을 엽니다.

1. 탐색 창에서 **Roles**를 선택합니다.

1. **Create role**(역할 생성)을 선택합니다.

1. **AWS 서비스**에서 **RDS**를 선택합니다.

1. **사용 사례 선택**을 선택하려면 **RDS– 데이터베이스에 역할 추가**를 선택하십시오.

1. **다음**을 선택합니다.

1. 권한 정책은 추가하지 마세요. **다음**을 선택합니다.

1. **역할 이름**을 IAM 역할의 이름으로 설정합니다(예: `rds-efs-integration-role`). **설명** 값(선택 사항)을 추가할 수도 있습니다.

1. **역할 생성**을 선택합니다.

### AWS CLI
<a name="integration.preparing.role.CLI"></a>

서비스 권한을 특정 리소스로 제한하려면 리소스 기반 신뢰 관계에 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourcearn) 및 [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceaccount) 전역 조건 컨텍스트 키를 사용하는 것이 좋습니다. 이는 [혼동된 대리자 문제](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)를 방지하는 가장 효과적인 방법입니다.

전역 조건 컨텍스트 키를 모두 사용하고 `aws:SourceArn` 값에 계정 ID가 포함되도록 할 수 있습니다. 이 경우 `aws:SourceAccount` 값과 `aws:SourceArn` 값의 계정이 동일한 문에서 사용될 때 동일한 계정 ID를 사용해야 합니다.
+ 단일 리소스에 대한 교차 서비스 액세스를 원하는 경우 `aws:SourceArn`을 사용하세요.
+ 해당 계정의 모든 리소스가 교차 서비스 사용과 연결되도록 허용하려는 경우 `aws:SourceAccount`를 사용하세요.

신뢰 정책에서는 역할에 액세스하는 리소스의 전체 Amazon 리소스 이름(ARN)이 포함된 `aws:SourceArn` 전역 조건 컨텍스트 키를 사용해야 합니다.

다음 AWS CLI 명령은 이 목적으로 `{{rds-efs-integration-role}}`이라는 역할을 생성합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws iam create-role \
   --role-name {{rds-efs-integration-role}} \
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": {{my_account_ID}},
                 "aws:SourceArn": "arn:aws:rds:{{Region}}:{{my_account_ID}}:db:{{dbname}}"
             }
         }
       }
     ]
   }'
```
Windows의 경우:  

```
aws iam create-role ^
   --role-name {{rds-efs-integration-role}} ^
   --assume-role-policy-document '{
     "Version": "2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
            "Service": "rds.amazonaws.com"
          },
         "Action": "sts:AssumeRole",
         "Condition": {
             "StringEquals": {
                 "aws:SourceAccount": {{my_account_ID}},
                 "aws:SourceArn": "arn:aws:rds:{{Region}}:{{my_account_ID}}:db:{{dbname}}"
             }
         }
       }
     ]
   }'
```

자세한 내용은 *IAM 사용 설명서*의 [IAM 사용자에게 권한을 위임하기 위한 역할 생성](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)을 참조하십시오.

## 2단계: Amazon EFS 파일 시스템의 파일 시스템 정책 생성
<a name="oracle-efs-integration.iam.policy"></a>

이 단계에서는 Amazon EFS 파일 시스템의 파일 시스템 정책을 생성합니다.

**EFS 파일 시스템 정책을 생성하거나 편집하는 방법**

1. [EFS 관리 콘솔](https://console.aws.amazon.com/efs/home?#home)을 엽니다.

1. **파일 시스템**을 선택합니다.

1. **파일 시스템** 페이지에서 파일 시스템 정책을 편집하거나 생성할 파일 시스템을 선택합니다. 해당 파일 시스템의 세부 정보 페이지가 표시됩니다.

1. **File system policy**(파일 시스템 정책) 탭을 선택합니다.

   정책이 비어 있으면 기본 EFS 파일 시스템 정책이 사용 중인 것입니다. 자세한 내용은 *Amazon Elastic File System 사용 설명서*에서 [기본 EFS 파일 시스템 정책](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy )을 참조하세요.

1. **편집**을 선택합니다. **파일 시스템 정책** 페이지가 나타납니다.

1. **정책 편집기**에서 다음과 같은 정책을 입력한 다음 **Save**(저장)를 선택합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "ExamplePolicy01",
       "Statement": [
           {
               "Sid": "ExampleStatement01",
               "Effect": "Allow",
               "Principal": {
                   "AWS": "arn:aws:iam::{{123456789012}}:role/rds-efs-integration-role"
               },
               "Action": [
                   "elasticfilesystem:ClientMount",
                   "elasticfilesystem:ClientWrite",
                   "elasticfilesystem:ClientRootAccess"
               ],
               "Resource": "arn:aws:elasticfilesystem:{{us-east-1}}:{{123456789012}}:file-system/{{fs-1234567890abcdef0}}"
           }
       ]
   }
   ```

------

## 3단계: IAM 역할을 RDS for Oracle DB 인스턴스와 연결
<a name="oracle-efs-integration.iam.instance"></a>

이 단계에서는 IAM 역할을 DB 인스턴스와 연결합니다. 다음 요구 사항에 유의하세요.
+ 필수 Amazon EFS 권한 정책이 연결된 IAM 역할에 대한 액세스 권한이 있어야 합니다.
+ 한 번에 하나의 IAM 역할만 RDS for Oracle DB 인스턴스에 연결할 수 있습니다.
+ 인스턴스의 상태는 **사용 가능**이어야 합니다.

자세한 내용은 *Amazon Elastic File System 사용 설명서*의 [Amazon EFS ID 및 액세스 관리](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html)를 참조하세요.

### 콘솔
<a name="oracle-efs-integration.iam.instance.console"></a>

**IAM 역할을 RDS for Oracle DB 인스턴스와 연결하는 방법**

1. AWS Management Console에 로그인한 후 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)에서 Amazon RDS 콘솔을 엽니다.

1. **데이터베이스**를 선택합니다.

1. 데이터베이스 인스턴스를 사용할 수 없는 경우 **작업**을 선택한 수 **시작**을 선택합니다. 인스턴스 상태가 **시작됨**으로 표시되면 다음 단계로 이동합니다.

1. 세부 정보를 표시하고자 하는 Oracle DB 인스턴스 이름을 선택합니다.

1. **연결성 및 보안(Connectivity & security)** 탭에서 페이지 하단의 **IAM 역할 관리(Manage IAM roles)** 섹션이 나올 때까지 아래로 스크롤합니다.

1. **Add IAM roles to this instance**(이 인스턴스에 IAM 역할 추가) 섹션에서 추가할 역할을 선택합니다.

1. **Feature**(기능)에서 **EFS\_INTEGRATION**을 선택합니다.

1. [**Add role**]을 선택합니다.

### AWS CLI
<a name="oracle-efs-integration.iam.instance.CLI"></a>

다음 AWS CLI 명령은 `{{mydbinstance}}`라는 Oracle DB 인스턴스에 역할을 추가합니다.

**Example**  
대상 LinuxmacOS, 또는Unix:  

```
aws rds add-role-to-db-instance \
   --db-instance-identifier {{mydbinstance}} \
   --feature-name EFS_INTEGRATION \
   --role-arn {{your-role-arn}}
```
Windows의 경우:  

```
aws rds add-role-to-db-instance ^
   --db-instance-identifier {{mydbinstance}} ^
   --feature-name EFS_INTEGRATION ^
   --role-arn {{your-role-arn}}
```

`{{your-role-arn}}`을 이전 단계에서 기록한 역할 ARN으로 바꿉니다. `EFS_INTEGRATION` 옵션에 대해 `--feature-name`을 지정해야 합니다.