

# Alternar as credenciais do RDS Custom para Oracle para programas de conformidade
<a name="custom-security.cred-rotation"></a>

Alguns programas de conformidade exigem que as credenciais do usuário do banco de dados sejam alteradas periodicamente, por exemplo, a cada 90 dias. O RDS Custom para Oracle alterna automaticamente as credenciais de alguns usuários predefinidos do banco de dados.

**Topics**
+ [Alternância automática de credenciais para usuários predefinidos](#custom-security.cred-rotation.auto)
+ [Diretrizes para alternância de credenciais de usuário](#custom-security.cred-rotation.guidelines)
+ [Alternar manualmente as credenciais do usuário](#custom-security.cred-rotation.manual)

## Alternância automática de credenciais para usuários predefinidos
<a name="custom-security.cred-rotation.auto"></a>

Se sua instância de banco de dados do RDS Custom para Oracle estiver hospedada no Amazon RDS, as credenciais dos seguintes usuários predefinidos da Oracle serão alternadas automaticamente a cada 30 dias. As credenciais dos usuários anteriores residem em AWS Secrets Manager.


| Usuário do banco de dados | Criado por | Versões compatíveis do mecanismo | Observações | 
| --- | --- | --- | --- | 
|  `SYS`  |  Oracle  |  custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb  |  | 
|  `SYSTEM`  |  Oracle  |  custom-oracle-ee custom-oracle-ee-cdb custom-oracle-se2 custom-oracle-se2-cdb  |  | 
|  `RDSADMIN`  |  RDS  |  custom-oracle-ee custom-oracle-se2  |  | 
|  `C##RDSADMIN`  |  RDS  |  custom-oracle-ee-cdb custom-oracle-se2-cdb  | Nomes de usuário com um prefixo C\$1\$1 só existem em CDBs. Para ter mais informações sobre CDBs, consulte [Visão geral da arquitetura do Amazon RDS Custom para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.overview). | 
|  `RDS_DATAGUARD`  |  RDS  |  custom-oracle-ee  | Esse usuário existe somente em réplicas de leitura, bancos de dados de origem para réplicas de leitura e bancos de dados que você migrou fisicamente para o RDS Custom usando o Oracle Data Guard. | 
|  `C##RDS_DATAGUARD`  |  RDS  |  custom-oracle-ee-cdb  | Esse usuário existe somente em réplicas de leitura, bancos de dados de origem para réplicas de leitura e bancos de dados que você migrou fisicamente para o RDS Custom usando o Oracle Data Guard. Nomes de usuário com um prefixo C\$1\$1 só existem em CDBs. Para ter mais informações sobre CDBs, consulte [Visão geral da arquitetura do Amazon RDS Custom para Oracle](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/custom-creating.html#custom-creating.overview). | 

Uma exceção à alternância automática de credenciais é uma instância de banco de dados do RDS Custom para Oracle que você configurou manualmente como um banco de dados de espera. O RDS alterna somente as credenciais para réplicas de leitura que você criou usando o comando `create-db-instance-read-replica` DA CLI ou a API `CreateDBInstanceReadReplica`.

## Diretrizes para alternância de credenciais de usuário
<a name="custom-security.cred-rotation.guidelines"></a>

Para garantir que suas credenciais sejam alternadas de acordo com seu programa de conformidade, observe as seguintes diretrizes:
+ Se sua instância de banco de dados alternar as credenciais automaticamente, não altere nem exclua manualmente um segredo, um arquivo de senha ou uma senha para usuários listados em [Usuários predefinidos da Oracle](#auto-rotation). Caso contrário, o RDS Custom pode colocar sua instância de banco de dados fora do perímetro de suporte, o que suspende a alternância automática.
+ O usuário principal do RDS não é predefinido, então você é responsável por alterar a senha manualmente ou configurar a alternância automática no Secrets Manager. Para ter mais informações, consulte [Alternar segredos do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html).

## Alternar manualmente as credenciais do usuário
<a name="custom-security.cred-rotation.manual"></a>

Para as seguintes categorias de bancos de dados, o RDS não alterna automaticamente as credenciais dos usuários listados em [Usuários predefinidos da Oracle](#auto-rotation):
+ Um banco de dados que você configurou manualmente para funcionar como um banco de dados de espera.
+ Um banco de dados on-premises.
+ Uma instância de banco de dados que está fora do perímetro de suporte ou em um estado em que a automação do RDS Custom não pode ser executada. Nesse caso, o RDS Custom também não alterna as chaves.

Se seu banco de dados estiver em qualquer uma das categorias anteriores, você deverá alternar suas credenciais de usuário manualmente.

**Como alternar as credenciais do usuário manualmente para uma instância de banco de dados**

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. Em **Bancos de dados**, garanta que o RDS não esteja fazendo backup de sua instância de banco de dados nem realizando operações como configuração de alta disponibilidade.

1. Na página de detalhes do banco de dados, selecione **Configuração** e anote o ID do recurso para a instância de banco de dados. Você pode usar o comando `describe-db-instances` da AWS CLI.

1. Abra o console do Secrets Manager em [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/).

1. Na caixa de pesquisa, insira o ID do recurso do seu banco de dados e pesquise um segredo usando uma das seguintes convenções de nomenclatura:

   ```
   do-not-delete-rds-custom-resource_id-uuid
   rds-custom!oracle-do-not-delete-resource_id-uuid
   ```

   Esse segredo armazena a senha para `RDSADMIN`, `SYS` e `SYSTEM`. As seguintes chaves de exemplo são para a instância de banco de dados com o ID de recurso `db-ABCDEFG12HIJKLNMNOPQRS3TUVWX` e o UUID `123456`:

   ```
   do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
   rds-custom!oracle-do-not-delete-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-123456
   ```
**Importante**  
Se sua instância de banco de dados for uma réplica de leitura e usar o mecanismo `custom-oracle-ee-cdb`, haverá dois segredos com o sufixo `db-resource_id-uuid`, um para o usuário principal e outro para `RDSADMIN`, `SYS` e `SYSTEM`. Para encontrar o segredo correto, execute o seguinte comando no host:  

   ```
   cat /opt/aws/rdscustomagent/config/database_metadata.json | python3 -c "import sys,json; print(json.load(sys.stdin)['dbMonitoringUserPassword'])"
   ```
O atributo `dbMonitoringUserPassword` indica o segredo para `RDSADMIN`, `SYS` e `SYSTEM`.

1. Se sua instância de banco de dados estiver em uma configuração do Oracle Data Guard, pesquise um segredo usando uma das seguintes convenções de nomenclatura:

   ```
   do-not-delete-rds-custom-resource_id-uuid-dg
   rds-custom!oracle-do-not-delete-resource_id-uuid-dg
   ```

   Esse segredo armazena a senha para `RDS_DATAGUARD`. As seguintes chaves de exemplo são para a instância de banco de dados com o ID de recurso `db-ABCDEFG12HIJKLNMNOPQRS3TUVWX` e o UUID **789012**:

   ```
   do-not-delete-rds-custom-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
   rds-custom!oracle-do-not-delete-db-ABCDEFG12HIJKLNMNOPQRS3TUVWX-789012-dg
   ```

1. Para todos os usuários do banco de dados listados em [Usuários predefinidos da Oracle](#auto-rotation), atualize as senhas seguindo as instruções em [Modificar um segredo do AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/manage_update-secret.html).

1. Se seu banco de dados for um banco de dados independente ou de origem em uma configuração do Oracle Data Guard:

   1. Inicie seu cliente Oracle SQL e faça login como `SYS`.

   1. Execute uma instrução SQL no seguinte formato para cada usuário do banco de dados listado em [Usuários Oracle predefinidos](#auto-rotation):

      ```
      ALTER USER user-name IDENTIFIED BY pwd-from-secrets-manager ACCOUNT UNLOCK;
      ```

      Por exemplo, se a nova senha do `RDSADMIN` armazenada no Secrets Manager for `pwd-123`, execute a seguinte instrução:

      ```
      ALTER USER RDSADMIN IDENTIFIED BY pwd-123 ACCOUNT UNLOCK;
      ```

1. Se sua instância de banco de dados executa o Oracle Database 12c Release 1 (12.1) e é gerenciada pelo Oracle Data Guard, copie manualmente o arquivo de senha (`orapw`) da instância de banco de dados primária para cada instância de banco de dados de espera. 

   Se sua instância de banco de dados estiver hospedada no Amazon RDS, o local do arquivo de senha será `/rdsdbdata/config/orapw`. Para bancos de dados que não estão hospedados no Amazon RDS, o local padrão é `$ORACLE_HOME/dbs/orapw$ORACLE_SID` no Linux e no UNIX e `%ORACLE_HOME%\database\PWD%ORACLE_SID%.ora` no Windows.