

# Modificar um RDS Proxy
<a name="rds-proxy-modifying-proxy"></a>

 Você pode alterar determinadas configurações associadas a um proxy depois de criar o proxy. Faça isso modificando o próprio proxy, seu grupo de destino associado ou ambos. Cada proxy tem um grupo de destino associado. 

## Console de gerenciamento da AWS
<a name="rds-proxy-modifying-proxy.console"></a>

**Importante**  
Os valores nos campos **Client authentication type** (Tipo de autenticação do cliente) e **IAM authentication** (Autenticação do IAM) se aplicam a todos os segredos do Secrets Manager associados a esse proxy. Para especificar valores diferentes para cada segredo, modifique seu proxy usando a AWS CLI ou a API.

**Como modificar as configurações de um proxy**

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.  No painel de navegação, escolha **Proxies**. 

1.  Na lista de proxies, escolha o proxy cujas configurações você deseja modificar ou vá para sua página de detalhes. 

1.  Para **Actions (Ações)**, escolha **Modify (Modificar)**. 

1.  Insira ou escolha as propriedades a serem modificadas. Você pode modificar o seguinte: 
   +  **Proxy identifier** (Identificador de proxy): renomeie o proxy inserindo um novo identificador. 
   +  **Idle client connection timeout** (Tempo limite da conexão do cliente ociosa): insira um período para o tempo limite da conexão do cliente ociosa. 
   +  **IAM role** (Perfil do IAM): altere o perfil do IAM usada para recuperar os segredos do Secrets Manager. 
**nota**  
Você não poderá criar um perfil do IAM se definir o **esquema de autenticação padrão** como **autenticação do IAM**.
   +  **Secrets Manager secrets** (Segredos do Secrets Manager): adicione ou remova segredos do Secrets Manager. Esses segredos correspondem a nomes de usuário e senhas de banco de dados. 
   +  **Tipo de autenticação de cliente**: altere o tipo de autenticação das conexões do cliente com o proxy. 
   +  **IAM Authentication** (Autenticação do IAM): exija ou desabilite a autenticação do IAM para conexões com o proxy. 
   +  **Esquema de autenticação padrão**: altere o esquema de autenticação padrão usado pelo proxy para conexões do cliente com o proxy e conexões do proxy com o banco de dados subjacente. 
   +  **Require Transport Layer Security** (Exija Transport Layer Security): ative ou desative o requisito de segurança do Transport layer Security (TLS). 
   +  **VPC grupo de segurança** (Grupos de segurança da VPC): adicione ou remova grupos de segurança da VPC para uso do proxy. 
   +  **Enable enhanced logging** (Habilite o registro em log aprimorado): habilite ou desabilite o registro em log aprimorado. 

1.  Selecione **Modify**. 

Se você não encontrou as configurações listadas que deseja alterar, use o procedimento a seguir para atualizar o grupo de destino para o proxy. O *grupo de destino* associado a um proxy controla as configurações relacionadas às conexões físicas do banco de dados. Cada proxy tem um grupo de destino associado, chamado `default`, que é criado automaticamente com o proxy. Não é possível renomear o grupo de destino padrão.

 Você só pode modificar o grupo de destino na página de detalhes do proxy, não na lista da página **Proxies**. 

**Como modificar as configurações de um grupo de destino de proxy**

1.  Na página **Proxies**, acesse a página de detalhes de um proxy. 

1.  Em **Target groups (Grupos de destino)**, escolha o link `default`. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. 

1.  Na página de detalhes do grupo de destino **default (padrão)** escolha **Modify (Modificar)**. 

1.  Escolha novas configurações para as propriedades que você pode modificar: 
   +  **Banco de dados**: escolha outro cluster do Aurora. 
   +  **Connection pool maximum connections** (Conexões máximas do grupo de conexões): ajuste a porcentagem das conexões máximas disponíveis que o proxy pode usar. 
   +  **Session pinning filters** (Filtros de fixação de sessões): (opcional) escolha um filtro de fixação de sessões. Isso contorna as medidas de segurança padrão para multiplexar conexões de banco de dados entre conexões de clientes. No momento, a configuração não é compatível com o PostgreSQL. A única opção é `EXCLUDE_VARIABLE_SETS`. 

     Habilitar essa configuração pode fazer com que as variáveis da sessão de uma conexão afetem outras conexões. Isso pode causar erros ou problemas de correção se suas consultas dependerem dos valores das variáveis de sessão definidos fora da transação atual. Considere a possibilidade de usar essa opção depois de verificar se é seguro as aplicações compartilharem conexões de banco de dados entre conexões de clientes.

     Os seguintes padrões podem ser considerados seguros:
     + Instruções `SET` em que não há alteração no valor efetivo da variável de sessão; isto é, não há alteração na variável de sessão.
     + Você altera o valor da variável de sessão e executa uma instrução na mesma transação.

     Para obter mais informações, consulte [Evitar a fixação de um RDS Proxy](rds-proxy-pinning.md). 
   +  **Connection borrow timeout** (Tempo limite do empréstimo de conexões): ajuste o intervalo do tempo limite de empréstimo de conexões. Essa configuração se aplica quando o número máximo de conexões já está sendo usado para o proxy. A configuração determina quanto tempo o proxy espera que uma conexão fique disponível antes de retornar um erro de tempo limite. 
   + **Consulta de inicialização**. (Opcional) Adicione uma consulta de inicialização ou modifique a atual. Você pode especificar uma ou mais instruções SQL para o proxy executar ao abrir cada nova conexão de banco de dados. A configuração normalmente é usada com instruções `SET` para garantir que cada conexão tenha configurações idênticas. Verifique se a consulta adicionada é válida. Para incluir diversas variáveis em uma única instrução `SET`, use vírgulas como separadores. Por exemplo:

     ```
     SET variable1=value1, variable2=value2
     ```

     Para várias instruções, use um ponto e vírgula como separador.

    Não é possível alterar determinadas propriedades, como o identificador do grupo de destino e o mecanismo de banco de dados. 

1.  Escolha **Modify target group (Modificar grupo de destino)**. 

## AWS CLI
<a name="rds-proxy-modifying-proxy.cli"></a>

 Para modificar um proxy usando a AWS CLI, use os comandos [modify-db-proxy](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy.html), [modify-db-proxy-target-group](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-proxy-target-group.html), [deregister-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/deregister-db-proxy-targets.html) e [register-db-proxy-targets](https://docs.aws.amazon.com/cli/latest/reference/rds/register-db-proxy-targets.html). 

 Com o comando `modify-db-proxy`, é possível alterar propriedades como as seguintes: 
+  O conjunto de segredos do Secrets Manager usados pelo proxy. 
+  Se o TLS é necessário. 
+  O tempo limite do cliente ocioso. 
+  Se deseja registrar em log informações adicionais de instruções SQL para depuração. 
+  O perfil do IAM usada para recuperar segredos do Secrets Manager. 
+  Os grupos de segurança usados pelo proxy. 
+ O esquema de autenticação padrão associado ao proxy.

 O exemplo a seguir mostra como renomear um proxy existente. 

```
aws rds modify-db-proxy --db-proxy-name the-proxy --new-db-proxy-name the_new_name
```

Para modificar configurações relacionadas à conexão ou renomear o grupo de destino, use o comando `modify-db-proxy-target-group`. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. Ao trabalhar com esse grupo de destino, especifique o nome do proxy e `default` para o nome do grupo de destino. Não é possível renomear o grupo de destino padrão.

 O exemplo a seguir mostra como verificar primeiro a configuração de `MaxIdleConnectionsPercent` de um proxy e alterá-la usando o grupo de destino. 

```
aws rds describe-db-proxy-target-groups --db-proxy-name the-proxy

{
    "TargetGroups": [
        {
            "Status": "available",
            "UpdatedDate": "2019-11-30T16:49:30.342Z",
            "ConnectionPoolConfig": {
                "MaxIdleConnectionsPercent": 50,
                "ConnectionBorrowTimeout": 120,
                "MaxConnectionsPercent": 100,
                "SessionPinningFilters": []
            },
            "TargetGroupName": "default",
            "CreatedDate": "2019-11-30T16:49:27.940Z",
            "DBProxyName": "the-proxy",
            "IsDefault": true
        }
    ]
}

aws rds modify-db-proxy-target-group --db-proxy-name the-proxy --target-group-name default --connection-pool-config '
{ "MaxIdleConnectionsPercent": 75 }'

{
    "DBProxyTargetGroup": {
        "Status": "available",
        "UpdatedDate": "2019-12-02T04:09:50.420Z",
        "ConnectionPoolConfig": {
            "MaxIdleConnectionsPercent": 75,
            "ConnectionBorrowTimeout": 120,
            "MaxConnectionsPercent": 100,
            "SessionPinningFilters": []
        },
        "TargetGroupName": "default",
        "CreatedDate": "2019-11-30T16:49:27.940Z",
        "DBProxyName": "the-proxy",
        "IsDefault": true
    }
}
```

 Com os comandos `deregister-db-proxy-targets` e `register-db-proxy-targets`, você altera a quais clusters de bancos de dados do Aurora o proxy está associado por meio de seu grupo de destino. No momento, cada proxy pode se conectar a um cluster de banco de dados do Aurora. O grupo de destino controla os detalhes da conexão de todas as instâncias de banco de dados em um cluster do Aurora.

 O exemplo a seguir começa com um proxy associado a um cluster do Aurora MySQL chamado `cluster-56-2020-02-25-1399`. O exemplo mostra como alterar o proxy para que ele possa se conectar a outro cluster chamado `provisioned-cluster`. 

 Ao trabalhar com um cluster de bancos de dados Aurora, você especifica a opção `--db-cluster-identifier`. 

 O exemplo a seguir modifica um proxy Aurora MySQL. Um proxy Aurora PostgreSQL tem a porta 5432. 

```
aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": [
        {
            "Endpoint": "instance-9814.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-9814"
        },
        {
            "Endpoint": "instance-8898.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-8898"
        },
        {
            "Endpoint": "instance-1018.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-1018"
        },
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "cluster-56-2020-02-25-1399"
        },
        {
            "Endpoint": "instance-4330.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "instance-4330"
        }
    ]
}

aws rds deregister-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier cluster-56-2020-02-25-1399

aws rds describe-db-proxy-targets --db-proxy-name the-proxy

{
    "Targets": []
}

aws rds register-db-proxy-targets --db-proxy-name the-proxy --db-cluster-identifier provisioned-cluster

{
    "DBProxyTargets": [
        {
            "Type": "TRACKED_CLUSTER",
            "Port": 0,
            "RdsResourceId": "provisioned-cluster"
        },
        {
            "Endpoint": "gkldje.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "gkldje"
        },
        {
            "Endpoint": "provisioned-1.demo.us-east-1.rds.amazonaws.com",
            "Type": "RDS_INSTANCE",
            "Port": 3306,
            "RdsResourceId": "provisioned-1"
        }
    ]
}
```

## API do RDS
<a name="rds-proxy-modifying-proxy.api"></a>

 Para modificar um proxy utilizando a API do RDS, utilize as operações [ModifyDBProxy](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxy.html), [ModifyDBProxyTargetGroup](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_ModifyDBProxyTargetGroup.html), [DeregisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DeregisterDBProxyTargets.html) e [RegisterDBProxyTargets](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RegisterDBProxyTargets.html). 

 Com `ModifyDBProxy`, é possível alterar propriedades como as seguintes: 
+  O conjunto de segredos do Secrets Manager usados pelo proxy. 
+  Se o TLS é necessário. 
+  O tempo limite do cliente ocioso. 
+  Se deseja registrar em log informações adicionais de instruções SQL para depuração. 
+  O perfil do IAM usada para recuperar segredos do Secrets Manager. 
+  Os grupos de segurança usados pelo proxy. 

Com `ModifyDBProxyTargetGroup`, é possível modificar as configurações relacionadas à conexão. Atualmente, todos os proxies têm um único grupo de destino chamado `default`. Ao trabalhar com esse grupo de destino, especifique o nome do proxy e `default` para o nome do grupo de destino. Não é possível renomear o grupo de destino padrão.

 Com `DeregisterDBProxyTargets` e `RegisterDBProxyTargets`, altere a qual cluster do Aurora o proxy está associado por meio do grupo de destino. Atualmente, cada proxy pode se conectar a um cluster de bancos de dados do Aurora. O grupo de destino monitora os detalhes da conexão das instâncias de banco de dados em um cluster do Aurora. 