

# Configurar permissões do IAM para a integração do RDS para Oracle com o Amazon EFS
<a name="oracle-efs-integration.iam"></a>

Por padrão, o recurso de integração do Amazon EFS não usa um perfil do IAM: a configuração da opção `USE_IAM_ROLE` é `FALSE`. Para integrar o RDS para Oracle ao Amazon EFS e um perfil do IAM, a instância de banco de dados deve ter permissões do IAM para acessar um sistema de arquivos Amazon EFS.

**Topics**
+ [Etapa 1: Criar um perfil do IAM para a instância de banco de dados e anexar a política](#oracle-efs-integration.iam.role)
+ [Etapa 2: Criar uma política para seu sistema de arquivos Amazon EFS](#oracle-efs-integration.iam.policy)
+ [Etapa 3: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle](#oracle-efs-integration.iam.instance)

## Etapa 1: Criar um perfil do IAM para a instância de banco de dados e anexar a política
<a name="oracle-efs-integration.iam.role"></a>

Nesta etapa, você criará uma função para a instância de banco de dados do RDS para Oracle para permitir que o Amazon RDS acesse o sistema de arquivos EFS.

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

**Como criar um perfil do IAM a fim de permitir que o Amazon RDS acesse um sistema de arquivos EFS**

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

1. No painel de navegação, escolha **Roles**.

1. Selecione **Create role**.

1. Para **Serviço da AWS**, escolha **RDS**.

1. Em **Select your use case (Selecionar o caso de uso)**, escolha **RDS – Add Role to Database (Adicionar função ao banco de dados)**.

1. Escolha **Próximo**.

1. Não adicione nenhuma política de permissões. Escolha **Próximo**.

1. Defina **Role name (Nome da função)** como um nome para a sua função do IAM, por exemplo, `rds-efs-integration-role`. Você também pode adicionar um valor opcional para **Description** (Descrição).

1. Selecione **Criar perfil**.

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

Para limitar as permissões do serviço a um recurso específico, recomendamos usar as chaves de contexto de condição global [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) e [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) em relações de confiança baseadas em recursos. Essa é a maneira mais eficiente de se proteger contra o [problema "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html).

Você pode usar as duas chaves de contexto de condição global e fazer com que o valor `aws:SourceArn` contenha o ID da conta. Nesses casos, verifique se o valor `aws:SourceAccount` e a conta no `aws:SourceArn` usa o mesmo ID de conta quando eles são usados na mesma instrução.
+ Use `aws:SourceArn` se quiser acesso entre serviços para um único recurso.
+ Use `aws:SourceAccount` se você quiser permitir que qualquer recurso nessa conta seja associado ao uso entre serviços.

Na relação de confiança, certifique-se de usar a chave de contexto de condição global `aws:SourceArn` com o nome do recurso da Amazon (ARN) completo dos recursos que acessam a função.

O seguinte comando da AWS CLI cria a função chamada `{{rds-efs-integration-role}}` para essa finalidade.

**Example**  
Para Linux, macOS ou 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 ter mais informações, consulte [Criar uma função para delegar permissões a um usuário do IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) no *Guia do usuário do IAM*.

## Etapa 2: Criar uma política para seu sistema de arquivos Amazon EFS
<a name="oracle-efs-integration.iam.policy"></a>

Nesta etapa, crie uma política para seu sistema de arquivos EFS.

**Como criar ou editar uma política de sistema de arquivos EFS**

1. Abra o [Console de Gerenciamento do EFS](https://console.aws.amazon.com/efs/home?#home).

1. Escolha **File Systems (Sistemas de arquivos)**.

1. Na página **File systems** (Sistemas de arquivos), selecione o sistema para o qual deseja editar ou criar uma política de sistema de arquivos. A página de detalhes desse sistema de arquivos é exibida.

1. Selecione a guia **File system policy** (Política do sistema de arquivos).

   Se a política estiver em branco, a política padrão do sistema de arquivos EFS estará em uso. Para ter mais informações, consulte [Default EFS file system policy](https://docs.aws.amazon.com/efs/latest/ug/iam-access-control-nfs-efs.html#default-filesystempolicy ) (Política padrão do sistema de arquivos EFS) no *Guia do usuário do Amazon Elastic File System*.

1. Escolha **Editar**. A página **File system policy (Política de sistema de arquivos)** é exibida.

1. No **Policy editor** (Editor de políticas), insira uma política como a seguinte e selecione **Save** (Salvar).

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

------

## Etapa 3: Associar um perfil do IAM à sua instância de banco de dados do RDS para Oracle
<a name="oracle-efs-integration.iam.instance"></a>

Nesta etapa, associe um perfil do IAM à instância de banco de dados. Esteja ciente dos seguintes requisitos:
+ Você precisa ter acesso a um perfil do IAM com a política de permissões do Amazon EFS necessária anexada a ele. 
+ Só é possível associar um perfil do IAM à instância de banco de dados do RDS para Oracle por vez.
+ O status de sua instância deve ser **Available** (Disponível).

Para ter mais informações, consulte [Identity and access management for Amazon EFS](https://docs.aws.amazon.com/efs/latest/ug/auth-and-access-control.html) (Identity and access management para Amazon EFS) no *Guia do usuário do Amazon Elastic File System*.

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

**Como associar um perfil do IAM à instância de banco de dados do RDS para Oracle**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon RDS em [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/).

1. Escolha **Databases (Bancos de dados)**.

1. Se a instância do banco de dados não estiver disponível, escolha **Actions (Ações)** e, em seguida, **Start (Iniciar)**. Quando o status da instância for exibido **Started (Iniciado)**, vá para a próxima etapa.

1. Escolha o nome da instância de banco de dados Oracle para exibir os detalhes.

1. Na guia **Connectivity & security** (Conectividade e segurança), role para baixo até a seção **Manage IAM roles** (Gerenciar funções do IAM) na parte inferior da página.

1. Escolha a função a ser adicionada na seção **Add IAM roles to this instance** (Adicionar funções do IAM a essa instância).

1. Em **Feature** (Recurso), selecione **EFS\_INTEGRATION**.

1. Escolha **Add role (adicionar função)**.

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

O seguinte comando da AWS CLI adiciona a função a uma instância de banco de dados Oracle denominada `{{mydbinstance}}`.

**Example**  
Para Linux, macOS ou 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}}
```

Substitua `{{your-role-arn}}` pelo ARN da função que você anotou em uma etapa anterior. `EFS_INTEGRATION` deve ser especificado para a opção `--feature-name`.