

# 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>

このステップでは、RDS for Oracle DB インスタンスのロールを作成し、Amazon RDS が EFS ファイルシステムにアクセスできるようにします。

### コンソール
<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 - Add Role to Database (ロールをデータベースに追加する)**] を選択します。

1. [**次へ**] を選択します。

1. アクセス許可ポリシーを追加しないでください。[**次へ**] を選択します。

1. [**ロール名**] を IAM ロールの名前 (例: `rds-efs-integration-role`) に設定します。オプションで [**Description**] 値を追加することもできます。

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`を使用します。

信頼関係では、`aws:SourceArn` グローバル条件コンテキストキーに、必ず、ロールにアクセスするリソースの完全な Amazon リソースネーム (ARN) を使用します。

次の AWS CLI コマンドでは、この目的で `{{rds-efs-integration-role}}` という名前のロールを作成します。

**Example**  
Linux、macOS、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>

このステップでは、EFS ファイルシステムのファイルシステムポリシーを作成します。

**EFS ファイルシステムポリシーを作成または編集するには**

1. [EFS 管理コンソール](https://console.aws.amazon.com/efs/home?#home)を開きます。

1. [**File Systems (ファイルシステム)**] を選択します。

1. [**File systems (ファイルシステム)**] ページで、ファイルシステムポリシーを編集または作成する対象のファイルシステムを選択します。そのファイルシステムの詳細ページが表示されます。

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. **[編集]** を選択します。[**File system policy (ファイルシステムポリシー)**] ページが表示されます。

1. **[Policy editor]** (ポリシーエディタ) で次のようなポリシーを入力し、**[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 ロールへのアクセスが許可されている必要があります。
+ RDS for Oracle DB インスタンスには、一度に 1 つの IAM ロールのみを関連付けることができます。
+ インスタンスのステータスは **[Available]** (使用可能) である必要があります。

詳細については、*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 マネジメントコンソール にサインインし、Amazon RDS コンソール ([https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)) を開きます。

1. [**データベース**] をクリックします。

1. データベースインスタンスが使用できない場合は、[**Actions (アクション)**]、[**Start (スタート)**] の順に選択します。インスタンスのステータスに [**Started (スタート済み)**] と表示されたら、次のステップに進みます。

1. 詳細を表示する Oracle DB インスタンスの名前を選択します。

1. 「**接続性とセキュリティ**」 タブで、ページ下部の**IAM ロールを管理する** セクションまでスクロールダウンします。

1. **IAM ロールをこのインスタンスに追加する**セクションに追加するロールを選択します。

1. **[Feature]** (機能) で、**[EFS\_INTEGRATION]** (EFS 統合) を選択します。

1. [**Add role**] を選択します。

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

以下の AWS CLI コマンドでは、`{{mydbinstance}}` という名前の Oracle DB インスタンスにこのロールを追加します。

**Example**  
Linux、macOS、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` が指定されている必要があります。