

# Configuración de permisos de IAM para la integración de RDS para Oracle con Amazon EFS
<a name="oracle-efs-integration.iam"></a>

De forma predeterminada, la característica de integración de Amazon EFS no utiliza un rol de IAM: la configuración de la opción `USE_IAM_ROLE` es `FALSE`. Para integrar RDS para Oracle con Amazon EFS y un rol de IAM, su instancia de base de datos debe tener permisos de IAM para acceder a un sistema de archivos de Amazon EFS.

**Topics**
+ [Paso 1: crear un rol de IAM para la instancia de base de datos y asociarle la política](#oracle-efs-integration.iam.role)
+ [Paso 2: crear una política de sistema de archivos para su sistema de archivos Amazon EFS](#oracle-efs-integration.iam.policy)
+ [Paso 3: asociar el rol de IAM a la instancia de base de datos de RDS para Oracle](#oracle-efs-integration.iam.instance)

## Paso 1: crear un rol de IAM para la instancia de base de datos y asociarle la política
<a name="oracle-efs-integration.iam.role"></a>

En este paso, creará un rol para su instancia de base de datos de RDS para Oracle para permitir que Amazon RDS acceda a su sistema de archivos EFS.

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

**Para crear un rol de IAM que permita a Amazon RDS acceder a un sistema de archivos EFS**

1. Abra la [Management Console de IAM](https://console.aws.amazon.com/iam/home?#home).

1. Seleccione **Roles** en el panel de navegación.

1. Elija **Create role (Crear rol)**.

1. Para obtener **el servicio de AWS**, elija **RDS**.

1. En **Select your use case (Seleccionar su caso de uso)**, elija **RDS: Add Role to Database (RDS: Añadir rol a base de datos)**.

1. Elija **Siguiente**.

1. No añada ninguna política de permisos. Elija **Siguiente**.

1. En **Role name (Nombre de rol)**, escriba un nombre para el rol de IAM, por ejemplo, `rds-efs-integration-role`. También puede añadir una descripción opcional en **Description (Descripción)**.

1. Elija **Creación de rol**.

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

Para limitar los permisos del servicio a un recurso específico, le recomendamos que utilice las claves de contexto de condición globales [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) y [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) en las relaciones de confianza basadas en recursos. Esta es la forma más eficaz de protegerse contra el [problema del suplente confuso](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Puede utilizar claves de contexto de condición globales y hacer que el valor de `aws:SourceArn` contenga el ID de cuenta. En estos casos, el valor de `aws:SourceAccount` y la cuenta del valor de `aws:SourceArn` deben utilizar el mismo ID de cuenta cuando se utilizan en la misma instrucción.
+ Use `aws:SourceArn` si quiere acceso entre servicios para un único recurso.
+ Use `aws:SourceAccount` si quiere permitir que cualquier recurso de esa cuenta se asocie al uso entre servicios.

En la relación de confianza, asegúrese de usar la clave de contexto de la condición global `aws:SourceArn` con el nombre de recurso de Amazon (ARN) completo de los recursos que acceden al rol.

El siguiente comando AWS CLI crea el rol nombrado `{{rds-efs-integration-role}}` para este propósito.

**Example**  
Para Linux, macOS o 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}}"
             }
         }
       }
     ]
   }'
```
Para 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}}"
             }
         }
       }
     ]
   }'
```

Para obtener más información, vea [Crear un rol para delegar permisos a un usuario de IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) en *Guía del usuario de IAM. *

## Paso 2: crear una política de sistema de archivos para su sistema de archivos Amazon EFS
<a name="oracle-efs-integration.iam.policy"></a>

En este paso, creará una política de sistema de archivos para su sistema de archivos EFS.

**Para crear o editar una política del sistema de archivos EFS**

1. Abra la [consola de administración de EFS](https://console.aws.amazon.com/efs/home?#home).

1. Elija **File Systems (Sistemas de archivos)**.

1. En la página **File systems** (Sistemas de archivos) elija el sistema de archivos que quiere editar o para el que desea crear una política de sistema de archivos. Aparece la página de detalles de ese sistema de archivos.

1. Seleccione la pestaña **File system policy** (Política del sistema de archivos).

   Si la política está vacía, significa que se está utilizando la política del sistema de archivos EFS predeterminada. Para obtener más información, consulte [Política del sistema de archivos EFS por defecto](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy ) en la *Guía del usuario de Amazon Elastic File System*.

1. Elija **Edit (Edición de)**. Aparece la página **File system policy (Política del sistema de archivos)**.

1. En **Policy editor** (Editor de políticas), introduzca una política como la siguiente y, a continuación, seleccione **Save** (Guardar).

------
#### [ 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}}"
           }
       ]
   }
   ```

------

## Paso 3: asociar el rol de IAM a la instancia de base de datos de RDS para Oracle
<a name="oracle-efs-integration.iam.instance"></a>

En este paso, asociará el rol de IAM a su instancia de base de datos. Tenga en cuenta los siguientes requisitos:
+ Debe tener acceso a un rol de IAM con la política de permisos de Amazon EFS requerida adjunta. 
+ Solo puede asociar un rol de IAM a su instancia de base de datos de RDS para Oracle cada vez.
+ El estado de la instancia debe ser **Available** (Disponible).

Para obtener más información, consulte [Identity and access management for Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html) (Administración de identidades y accesos para Amazon EFS) en la *Guía del usuario de Amazon Elastic File System*.

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

**Para asociar su rol de IAM a su instancia de base de datos de RDS para Oracle**

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon RDS en [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Seleccione **Bases de datos**.

1. Si la instancia de base de datos no está disponible, elija **Actions (Acciones)** y, a continuación, **Start (Inicio)**. Cuando el estado de la instancia muestre **Started (Iniciada)**, vaya al paso siguiente.

1. Seleccione el nombre de la instancia de base de datos Oracle para mostrar sus detalles.

1. En la pestaña **Connectivity & Security** (Conectividad y seguridad), desplácese hacia abajo hasta la sección **Manage IAM roles** (Administrar roles de IAM) de la parte inferior de la página.

1. Elija el rol que se va a añadir en la sección **Add IAM roles to this instance** (Agregar roles de IAM a esta instancia).

1. En **Feature** (Característica), elija **EFS\_INTEGRATION**.

1. Seleccione **Add role (Añadir rol)**.

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

El siguiente comando de la AWS CLI añade el rol a una instancia de base de datos de Oracle denominada `{{mydbinstance}}`.

**Example**  
Para Linux, macOS o Unix:  

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

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

Sustituya `{{your-role-arn}}` por el ARN del rol anotado en el paso anterior. `EFS_INTEGRATION` debe especificarse para la opción `--feature-name`.