

# Configurar seu ambiente para o Amazon RDS Custom for SQL Server
<a name="custom-setup-sqlserver"></a>

Antes de criar e gerenciar uma instância de banco de dados para a instância de banco de dados Amazon RDS Custom for SQL Server, certifique-se de realizar as tarefas a seguir.

**Contents**
+ [Pré-requisitos para configurar o RDS Custom for SQL Server](#custom-setup-sqlserver.review)
  + [Criação automática de perfis de instância usando o Console de gerenciamento da AWS](#custom-setup-sqlserver.instanceProfileCreation)
+ [Etapa 1: conceder as permissões necessárias à entidade principal do IAM](#custom-setup-sqlserver.iam-user)
+ [Etapa 2: configurar rede, perfil de instância e criptografia](#custom-setup-sqlserver.iam-vpc)
  + [Configurar com o CloudFormation](#custom-setup-sqlserver.cf)
    + [Parâmetros exigidos pelo CloudFormation](#custom-setup-sqlserver.cf.params)
    + [Baixar o arquivo de modelo do CloudFormation](#custom-setup-sqlserver.cf.download)
    + [Configurar recursos usando o CloudFormation](#custom-setup-sqlserver.cf.config)
  + [Configurar manualmente](#custom-setup-sqlserver.manual)
    + [Verifique se você tem uma chave do AWS KMS de criptografia simétrica.](#custom-setup-sqlserver.cmk)
    + [Criar sua função do IAM e seu perfil de instância manualmente](#custom-setup-sqlserver.iam)
      + [Criar a função do IAM AWSRDSCustomSQLServerInstanceRole](#custom-setup-sqlserver.iam.create-role)
      + [Adicionar uma política de acesso a AWSRDSCustomSQLServerInstanceRole](#custom-setup-sqlserver.iam.add-policy)
      + [Criar seu perfil de instância do RDS Custom for SQL Server](#custom-setup-sqlserver.iam.create-profile)
      + [Adicionar AWSRDSCustomSQLServerInstanceRole ao seu perfil de instância do RDS Custom for SQL Server](#custom-setup-sqlserver.iam.add-profile)
    + [Configurar sua VPC manualmente](#custom-setup-sqlserver.vpc)
      + [Configurar o grupo de segurança da sua VPC](#custom-setup-sqlserver.vpc.sg)
      + [Configurar endpoints para Serviços da AWS dependentes](#custom-setup-sqlserver.vpc.endpoints)
      + [Configurar o serviço de metadados da instância](#custom-setup-sqlserver.vpc.imds)
+ [Restrição entre instâncias](#custom-setup-sqlserver.cross-instance-restriction)

**nota**  
Para ver um tutorial passo a passo sobre como configurar os pré-requisitos e iniciar o Amazon RDS Custom para SQL Server, consulte [Get started with Amazon RDS Custom for SQL Server using an CloudFormation template (Network setup)](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/) e [Explore the prerequisites required to create an Amazon RDS Custom for SQL Server instance](https://aws.amazon.com/blogs/database/explore-the-prerequisites-required-to-create-an-amazon-rds-custom-for-sql-server-instance/).

## Pré-requisitos para configurar o RDS Custom for SQL Server
<a name="custom-setup-sqlserver.review"></a>

Antes de criar uma instância de banco de dados do RDS Custom para SQL Server, seu ambiente deve atender aos requisitos descritos neste tópico. Também é possível usar o modelo do CloudFormation para configurar os pré-requisitos da Conta da AWS. Para obter mais informações, consulte . [Configurar com o CloudFormation](#custom-setup-sqlserver.cf)

O RDS Custom para SQL Server exige que você configure os seguintes pré-requisitos:
+ Configure as permissões do AWS Identity and Access Management (IAM) para a criação da instância. Esse é o usuário ou o perfil do AWS Identity and Access Management (IAM) necessário para fazer uma solicitação `create-db-instance` ao RDS.
+ Configure os recursos obrigatórios exigidos pela instância de banco de dados do RDS Custom para SQL Server:
  + Configure a chave do AWS KMS necessária para a criptografia da instância do RDS Custom. O RDS Custom exige uma chave gerenciada pelo cliente no momento da criação da instância para criptografia. O ARN da chave do KMS, o ID, o ARN do alias ou o nome do alias é transmitido como o parâmetro `kms-key-id` na solicitação para criar a instância de banco de dados do RDS Custom.
  + Configure as permissões necessárias na instância de banco de dados do RDS Custom para SQL Server. O RDS Custom anexa um perfil à instância de banco de dados no momento da criação e o utiliza para automação dentro da respectiva instância. O nome do perfil da instância está definido como `custom-iam-instance-profile` na solicitação de criação do RDS Custom. É possível criar um perfil de instância por meio do Console de gerenciamento da AWS ou criá-lo manualmente. Para obter mais informações, consulte [Criação automática de perfis de instância usando o Console de gerenciamento da AWS](#custom-setup-sqlserver.instanceProfileCreation) e [Criar sua função do IAM e seu perfil de instância manualmente](#custom-setup-sqlserver.iam).
  + Defina a configuração de rede de acordo com os requisitos do RDS Custom para SQL Server. As instâncias do RDS Custom residem nas sub-redes (configuradas com o grupo de sub-redes de banco de dados) que você fornece na criação da instância. Essas sub-redes devem permitir que as instâncias do RDS Custom comuniquem-se com os serviços necessários para a automação do RDS.

**nota**  
Para atender aos requisitos mencionados acima, verifique se não há nenhuma política de controle de serviços (SCP) restringindo permissões em nível de conta.  
Se a conta que você está usando fizer parte de uma organização da AWS, ela poderá ter políticas de controle de serviço (SCPs) restringindo permissões em nível de conta. Os SCPs não podem restringir as permissões em usuários e perfis criados com os procedimentos a seguir.  
Para ter mais informações sobre SCPs, consulte [Políticas de controle de serviço](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) no *Guia do usuário do AWS Organizations*. Use o comando [describe-organization](https://docs.aws.amazon.com/cli/latest/reference/organizations/describe-organization.html) da AWS CLI para conferir se sua conta faz parte de uma organização da AWS.  
Para ter mais informações sobre o AWS Organizations, consulte [O que é o AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) no *Guia do usuário do AWS Organizations Organizations*.

Para conhecer os requisitos gerais que se aplicam ao RDS Custom for SQL Server, consulte [Requisitos gerais do RDS Custom for SQL Server](custom-reqs-limits-MS.md#custom-reqs-limits.reqsMS).

### Criação automática de perfis de instância usando o Console de gerenciamento da AWS
<a name="custom-setup-sqlserver.instanceProfileCreation"></a>

O RDS Custom exige que você crie e configure um perfil de instância para iniciar qualquer instância de banco de dados do RDS Custom para SQL Server. Use o Console de gerenciamento da AWS para criar um perfil de instância e anexá-lo em uma única etapa. Essa opção está disponível na seção de segurança do RDS Custom nas páginas do console **Criar banco de dados**, **Restaurar snapshot** e **Restaurar para um momento específico**. Selecione **Criar um novo perfil da instância** para fornecer um sufixo de nome de perfil de instância. O Console de gerenciamento da AWS cria um perfil de instância com as permissões necessárias para tarefas de automação do RDS Custom. Para criar automaticamente perfis de instância, seu usuário conectado ao Console de gerenciamento da AWS deve ter as permissões `iam:CreateInstanceProfile`, `iam:AddRoleToInstanceProfile`, `iam:CreateRole` e `iam:AttachRolePolicy`.

**nota**  
Essa opção só está disponível no Console de gerenciamento da AWS. Se você estiver usando a CLI ou o SDK, use o modelo do CloudFormation fornecido pelo RDS Custom ou crie manualmente um perfil de instância. Para obter mais informações, consulte [Criar sua função do IAM e seu perfil de instância manualmente](#custom-setup-sqlserver.iam).

## Etapa 1: conceder as permissões necessárias à entidade principal do IAM
<a name="custom-setup-sqlserver.iam-user"></a>

Verifique se você tem acesso suficiente para criar uma instância do RDS Custom. O perfil ou o usuário do IAM (conhecido como a *entidade principal do IAM*) para criar uma instância de banco de dados do RDS Custom para SQL Server usando o console ou a CLI deve ter uma das seguintes políticas para a criação bem-sucedida de uma instância de banco de dados:
+ A política `AdministratorAccess`
+ A política do `AmazonRDSFullAccess` mostra as seguintes permissões adicionais:

  ```
  iam:SimulatePrincipalPolicy
  cloudtrail:CreateTrail
  cloudtrail:StartLogging
  s3:CreateBucket
  s3:PutBucketPolicy
  s3:PutBucketObjectLockConfiguration
  s3:PutBucketVersioning 
  kms:CreateGrant
  kms:DescribeKey
  kms:Decrypt
  kms:ReEncryptFrom
  kms:ReEncryptTo
  kms:GenerateDataKeyWithoutPlaintext
  kms:GenerateDataKey
  ec2:DescribeImages
  ec2:RunInstances
  ec2:CreateTags
  ```

  O RDS Custom usa essas permissões durante a criação da instância. Essas permissões configuram recursos em sua conta que são necessários para operações do RDS Custom.

  Para ter mais informações sobre a permissão `kms:CreateGrant`, consulte [AWS KMS keyGerenciamento de](Overview.Encryption.Keys.md).

O exemplo de política JSON a seguir concede as permissões necessárias.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ValidateIamRole",
            "Effect": "Allow",
            "Action": "iam:SimulatePrincipalPolicy",
            "Resource": "*"
        },
        {
            "Sid": "CreateCloudTrail",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:CreateTrail",
                "cloudtrail:StartLogging"
            ],
            "Resource": "arn:aws:cloudtrail:*:*:trail/do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateS3Bucket",
            "Effect": "Allow",
            "Action": [
                "s3:CreateBucket",
                "s3:PutBucketPolicy",
                "s3:PutBucketObjectLockConfiguration",
                "s3:PutBucketVersioning"
            ],
            "Resource": "arn:aws:s3:::do-not-delete-rds-custom-*"
        },
        {
            "Sid": "CreateKmsGrant",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

------

A entidade principal do IAM exige as seguintes permissões adicionais para trabalhar com versões personalizadas do mecanismo (CEVs):

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ConfigureKmsKeyEncryptionPermission",
            "Effect": "Allow",
            "Action": [
                "kms:CreateGrant",
                "kms:DescribeKey",
                "kms:Decrypt",
                "kms:ReEncryptFrom",
                "kms:ReEncryptTo",
                "kms:GenerateDataKeyWithoutPlaintext",
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key_id"
        },
        {
            "Sid": "CreateEc2Instance",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeImages",
                "ec2:RunInstances",
                "ec2:CreateTags"
            ],
            "Resource": "*"
        }
    ]
}
```

------

Substitua *111122223333* pelo ID da conta que você está usando para criar a instância. Substitua *us-east-1* pela Região da AWS que você está usando para criar a instância. Substitua *key\$1id* pelo ID da chave gerenciada pelo cliente. É possível adicionar várias chaves, conforme necessário. 

Para ter mais informações sobre as permissões em nível de recurso que são necessárias para iniciar uma instância do EC2, consulte [Executar instâncias (RunInstances)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-runinstances). 

Além disso, a entidade principal do IAM exige a permissão `iam:PassRole` no perfil do IAM. Ela deve ser anexada ao perfil de instância transmitido no parâmetro `custom-iam-instance-profile` na solicitação para criar a instância de banco de dados do RDS Custom. O perfil de instância e sua função anexada são criados posteriormente em [Etapa 2: configurar rede, perfil de instância e criptografia](#custom-setup-sqlserver.iam-vpc).

**nota**  
As permissões listadas anteriormente não devem ser restritas por políticas de controle de serviço (SCPs), limites de permissão nem políticas de sessão associadas à entidade principal do IAM.

## Etapa 2: configurar rede, perfil de instância e criptografia
<a name="custom-setup-sqlserver.iam-vpc"></a>

Você pode configurar sua função de perfil de instância do IAM, nuvem privada virtual (VPC) e chave de criptografia simétrica do AWS KMS usando um dos seguintes processos:
+ [Configurar com o CloudFormation](#custom-setup-sqlserver.cf) (recomendado)
+ [Configurar manualmente](#custom-setup-sqlserver.manual)

**nota**  
Se sua conta fizer parte de qualquer AWS Organizations, as permissões exigidas pelo perfil de instância não deverão ser restritas por políticas de controle de serviços (SCPs).  
As configurações de rede neste tópico funcionam melhor com instâncias de banco de dados que não são acessíveis ao público. Você não pode se conectar diretamente a essas instâncias de banco de dados de fora da VPC.

### Configurar com o CloudFormation
<a name="custom-setup-sqlserver.cf"></a>

Para simplificar a configuração, é possível utilizar um arquivo de modelo do CloudFormation para criar uma pilha do CloudFormation. Um modelo do CloudFormation cria todos os recursos de rede, perfis de instância e criptografia de acordo com os requisitos do RDS Custom.

Para saber como criar pilhas, consulte [Criar uma pilha no console do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html), no *Guia do usuário do CloudFormation*.

Para ver um tutorial sobre como executar o Amazon RDS Custom para SQL Server usando um modelo do CloudFormation, consulte [Começar a usar o Amazon RDS Custom para SQL Server usando um modelo do CloudFormation](https://aws.amazon.com/blogs/database/get-started-with-amazon-rds-custom-for-sql-server-using-an-aws-cloudformation-template-network-setup/) no *blog de banco de dados da AWS*.

**Topics**
+ [Parâmetros exigidos pelo CloudFormation](#custom-setup-sqlserver.cf.params)
+ [Baixar o arquivo de modelo do CloudFormation](#custom-setup-sqlserver.cf.download)
+ [Configurar recursos usando o CloudFormation](#custom-setup-sqlserver.cf.config)

#### Parâmetros exigidos pelo CloudFormation
<a name="custom-setup-sqlserver.cf.params"></a>

Os seguintes parâmetros são necessários para configurar os recursos obrigatórios do RDS Custom com o CloudFormation:

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)

#### Recursos criados pelo CloudFormation
<a name="custom-setup-sqlserver.cf.list"></a>

A criação bem-sucedida da pilha do CloudFormation usando configurações padrão cria os seguintes recursos na Conta da AWS:
+ Chave do KMS de criptografia simétrica para criptografia de dados gerenciados pelo RDS Custom.
+ O perfil de instância é associado a um perfil do IAM com `AmazonRDSCustomInstanceProfileRolePolicy` para fornecer as permissões exigidas pelo RDS Custom. Para ter mais informações, consulte [AmazonRDSCustomServiceRolePolicy](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonRDSCustomServiceRolePolicy.html) no *Guia de referência de políticas gerenciadas da AWS*.
+ VPC com o intervalo CIDR especificado como o parâmetro CloudFormation. O valor padrão é `10.0.0.0/16`.
+ Duas sub-redes privadas com o intervalo CIDR especificado nos parâmetros e duas zonas de disponibilidade diferentes na Região da AWS. Os valores padrão para os CIDRs de sub-rede são `10.0.128.0/20` e `10.0.144.0/20`.
+ Uma sub-rede pública com o intervalo CIDR especificado nos parâmetros. O valor padrão para o CIDR da sub-rede é 10.0.0.0/20. A instância do EC2 reside nessa sub-rede e pode ser usada para estabelecer conexão com a instância do RDS Custom. 
+ Opção DHCP definida para a VPC com resolução de nome de domínio para um servidor do Sistema de Nomes de Domínio da Amazon (DNS).
+ Tabela de rota para associar a duas sub-redes privadas e sem acesso à Internet.
+ Tabela de rotas para associar à sub-rede pública e ter acesso à internet.
+ Gateway da internet associado à VPC para permitir o acesso à internet à sub-rede pública.
+ Lista de controle de acesso (ACL) à rede a ser associada a duas sub-redes privadas e acesso restrito a HTTPS e à porta de banco de dados na VPC.
+ Grupo de segurança da VPC a ser associado à instância do RDS Custom. Para HTTPS de saída, o acesso é restrito a endpoints de AWS service (Serviço da AWS) que são exigidos pelo RDS Custom e pela porta de banco de dados do grupo de segurança da instância do EC2.
+ O grupo de segurança da VPC a ser associado à instância do EC2 na sub-rede pública. Para a porta de banco de dados de saída, o acesso é restrito ao grupo de segurança da instância do RDS Custom.
+ Grupo de segurança da VPC a ser associado aos endpoints da VPC criados para endpoints de AWS service (Serviço da AWS) que são exigidos pelo RDS Custom.
+ Grupo de sub-redes de banco de dados no qual instâncias do RDS Custom são criadas. Duas sub-redes privadas criadas por esse modelo são adicionadas ao grupo de sub-redes de banco de dados.
+ Endpoints da VPC para cada um dos endpoints de AWS service (Serviço da AWS) que são exigidos pelo RDS Custom.

Definir a configuração de disponibilidade como multi-az criará os seguintes recursos, além da lista acima:
+ Regras de ACL de rede que permitem a comunicação entre sub-redes privadas.
+ Acesso de entrada e de saída à porta multi-AZ dentro do grupo de segurança da VPC associado à instância do RDS Custom.
+ Endpoints da VPC para endpoints de serviços da AWS que são necessários para a comunicação multi-AZ.

Além disso, definir a configuração de acesso RDP cria os seguintes recursos:
+ Configurar o acesso RDP à sub-rede pública por meio do endereço IP de origem:
  + Regras de ACL de rede que permitem a conexão RDP do IP de origem à sub-rede pública.
  + Acesso de entrada à porta RDP pelo IP de origem ao grupo de segurança da VPC associado à instância do EC2.
+ Configurar o acesso RDP da instância do EC2 na sub-rede pública à instância do RDS Custom em sub-redes privadas:
  + Regras de ACL de rede que permitem a conexão RDP da sub-rede pública a sub-redes privadas.
  + Acesso de entrada à porta RDP pelo grupo de segurança da VPC associado à instância do EC2 ao grupo de segurança da VPC associado à instância do RDS Custom.

Use os procedimentos a seguir para criar a pilha do CloudFormation para o RDS Custom para SQL Server.

#### Baixar o arquivo de modelo do CloudFormation
<a name="custom-setup-sqlserver.cf.download"></a>

**Como baixar o arquivo de modelo**

1. Abra o menu de contexto (clique com o botão direito do mouse) do link [ custom-sqlserver-onboard.zip](samples/custom-sqlserver-onboard.zip) e selecione **Save Link As** (Salvar link como).

1. Salve e extraia o arquivo no computador.

#### Configurar recursos usando o CloudFormation
<a name="custom-setup-sqlserver.cf.config"></a>

**Como configurar recursos usando o CloudFormation**

1. Abra o console do CloudFormation em [https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/).

1. Para iniciar o assistente de criação de pilha, escolha **Create Stack** (Criar pilha).

   A página **Create stack** (Criar pilha) é exibida.

1. Em **Prerequisite - Prepare template** (Pré-requisito - Preparar template), escolha **Template is ready** (O template está pronto).

1. Na página **Specify template** (Especificar modelo), faça o seguinte:

   1. Para **Template source** (Origem do template), escolha **Upload a template file** (Fazer upload de um arquivo de template).

   1. Em **Escolher arquivo**, acesse e escolha o arquivo correto.

1. Escolha **Avançar**.

   A página **Specify stack details** (Especificar detalhes da pilha) é exibida.

1. Para **Stack name (Nome da pilha)**, insira **rds-custom-sqlserver**.

1. Em **Parameters** (Parâmetros), faça o seguinte:

   1. Para manter as opções padrão, escolha **Next** (Próximo).

   1. Para alterar as opções, escolha a configuração apropriada de disponibilidade, de rede e de acesso RDP e, depois, selecione **Próximo**.

      Leia atentamente a descrição de cada parâmetro antes de alterar os parâmetros.
**nota**  
Se você optar por criar pelo menos uma instância multi-AZ nessa pilha do CloudFormation, garanta que o parâmetro da pilha do CloudFormation **Selecionar uma configuração de disponibilidade para configuração de pré-requisitos** esteja definido como `Multi-AZ`. Se você criar a pilha do CloudFormation como single-AZ, atualize-a para a configuração multi-AZ antes de criar a primeira instância multi-AZ.

1. Na página **Configurar opções de pilha**, selecione **Avançar**.

1. Na página **Review rds-custom-sqlserver** (Revisar rds-custom-sqlserver), faça o seguinte:

   1. Em **Recursos**, marque a caixa de seleção ****Eu confirmo que o CloudFormation pode criar os recursos do IAM com nomes personalizados****.

   1. Selecione **Criar pilha**.

**nota**  
Não atualize os recursos criados com base nessa pilha do CloudFormation diretamente das páginas de recursos. Isso impede que você aplique futuras atualizações a esses recursos usando um modelo do CloudFormation.

O CloudFormation cria os recursos necessários ao RDS Custom para SQL Server. Se ocorrer uma falha na criação da pilha, leia a guia **Events** (Eventos) para ver em qual recurso a criação falhou e seu motivo de status.

A guia **Outputs** (Saídas) para essa pilha do CloudFormation no console deve ter informações sobre todos os recursos a serem transmitidos como parâmetros para criar uma instância de banco de dados do RDS Custom para SQL Server. Use o grupo de segurança da VPC e o grupo de sub-redes de banco de dados criados pelo CloudFormation para instâncias de banco de dados do RDS Custom. Por padrão, o RDS tenta anexar o grupo de segurança da VPC padrão, que pode não ter o acesso necessário.

Se você usou o CloudFormation para criar recursos, você pode ignorar [Configurar manualmente](#custom-setup-sqlserver.manual).

#### Atualizar a pilha do CloudFormation
<a name="custom-setup-sqlserver.cf.update"></a>

Você também pode atualizar algumas das configurações na pilha do CloudFormation após a criação. As configurações que podem ser atualizadas são:
+ Considerações sobre disponibilidade do RDS Custom para SQL Server
  + **Selecionar uma configuração de disponibilidade para a configuração de pré-requisitos**: atualize esse parâmetro para alternar entre a configuração single-AZ e multi-AZ. Se você estiver usando essa pilha do CloudFormation para pelo menos uma instância multi-AZ, deverá atualizar a pilha para escolher a configuração multi-AZ.
+ Configuração do acesso RDP para RDS Custom para SQL Server
  + O bloco CIDR IPv4 da sua origem: é possível atualizar o bloco CIDR IPv4 (ou intervalo de endereços IP) da sua origem atualizando esse parâmetro. Definir esse parâmetro como vazio remove a configuração de acesso RDP do bloco CIDR de origem para a sub-rede pública. 
  + Configurar o acesso RDP ao RDS Custom para SQL Server: habilite ou desabilite a conexão RDP da instância do EC2 com a instância do RDS Custom para SQL Server.

#### Excluir a pilha do CloudFormation
<a name="custom-setup-sqlserver.cf.delete"></a>

É possível excluir a pilha do CloudFormation depois de excluir todas as instâncias do RDS Custom que usam recursos da pilha. O RDS Custom não monitora a pilha do CloudFormation e, portanto, não bloqueia a exclusão da pilha quando há instâncias de banco de dados que usam recursos da pilha. Garanta que não haja instâncias de banco de dados do RDS Custom que usem os recursos da pilha ao excluí-la.

**nota**  
Quando você exclui a pilha do CloudFormation, todos os recursos criados pela pilha são excluídos, exceto a chave do KMS. A chave do KMS entra em um estado de exclusão pendente e é excluída após trinta dias. Para manter a chave do KMS, execute uma operação [CancelKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_CancelKeyDeletion.html) durante o período de carência de 30 dias.

### Configurar manualmente
<a name="custom-setup-sqlserver.manual"></a>

Se você optar por configurar recursos manualmente, realize as tarefas a seguir.

**nota**  
Para simplificar a configuração, é possível usar o arquivo de modelo do CloudFormation para criar uma pilha do CloudFormation em vez de uma configuração manual. Para obter mais informações, consulte [Configurar com o CloudFormation](#custom-setup-sqlserver.cf).  
Você também pode usar a AWS CLI para concluir esta seção. Se sim, baixe e instale a CLI mais recente.

**Topics**
+ [Verifique se você tem uma chave do AWS KMS de criptografia simétrica.](#custom-setup-sqlserver.cmk)
+ [Criar sua função do IAM e seu perfil de instância manualmente](#custom-setup-sqlserver.iam)
+ [Configurar sua VPC manualmente](#custom-setup-sqlserver.vpc)

#### Verifique se você tem uma chave do AWS KMS de criptografia simétrica.
<a name="custom-setup-sqlserver.cmk"></a>

Uma AWS KMS key de criptografia simétrica é necessária para o RDS Custom. Ao criar uma instância de banco de dados do RDS Custom para SQL Server, forneça o identificador de chave do KMS como o parâmetro `kms-key-id`. Para obter mais informações, consulte [Criar e conectar-se a uma instância de banco de dados Amazon RDS Custom for SQL Server](custom-creating-sqlserver.md).

Você tem as seguintes opções:
+ Se você tiver uma chave do KMS gerenciada pelo cliente em sua Conta da AWS, poderá usá-la com o RDS Custom. Nenhuma outra ação é necessária.
+ Se você já tiver criado uma chave do KMS de criptografia simétrica gerenciada pelo cliente para outro mecanismo do RDS Custom, poderá reutilizar a mesma chave do KMS. Nenhuma outra ação é necessária.
+ Se você não tiver uma chave do KMS de criptografia simétrica gerenciada pelo cliente em sua conta, crie uma seguindo as instruções em [Criar chaves](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk) no *Guia do desenvolvedor do AWS Key Management Service*.
+ Se você estiver criando uma instância de banco de dados do CEV ou do RDS Custom e sua chave do KMS estiver em outra Conta da AWS, use a AWS CLI. Você não pode usar o console da AWS com chaves do KMS de várias contas.

**Importante**  
O RDS Custom não é compatível com chaves do KMS gerenciadas pela AWS.

A chave de criptografia simétrica deve conceder acesso às operações `kms:Decrypt` e `kms:GenerateDataKey` ao perfil do AWS Identity and Access Management (IAM) em seu perfil de instância do IAM. Se você tiver uma nova chave de criptografia simétrica em sua conta, nenhuma alteração será necessária. Do contrário, a política de sua chave de criptografia simétrica precisará conceder acesso a essas operações.

Para ter mais informações, consulte [Etapa 4: Configurar o IAM para RDS Custom para Oracle](custom-setup-orcl.md#custom-setup-orcl.iam-vpc).

#### Criar sua função do IAM e seu perfil de instância manualmente
<a name="custom-setup-sqlserver.iam"></a>

É possível criar manualmente um perfil de instância e usá-lo para iniciar instâncias do RDS Custom. Se você planeja criar a instância no Console de gerenciamento da AWS, ignore esta seção. O Console de gerenciamento da AWS permite que você crie e anexe um perfil às suas instâncias do RDS Custom. Para obter mais informações, consulte [Criação automática de perfis de instância usando o Console de gerenciamento da AWS](#custom-setup-sqlserver.instanceProfileCreation). 

Ao criar manualmente um perfil de instância, transmita o respectivo nome como o parâmetro `custom-iam-instance-profile` para o comando `create-db-instance` da CLI. O RDS Custom usa o perfil associado a esse perfil de instância a fim de executar a automação para gerenciar a instância.

**Como criar o perfil de instância do IAM e perfis do IAM para o RDS Custom para SQL Server**

1. Criar a função do IAM chamada `AWSRDSCustomSQLServerInstanceRole` com uma política de confiança que permita ao Amazon EC2 assumir essa função.

1. Adicione a política gerenciada `AmazonRDSCustomInstanceProfileRolePolicy` da AWS a `AWSRDSCustomSQLServerInstanceRole`.

1. Crie um perfil de instância do IAM para o RDS Custom para SQL Server chamado `AWSRDSCustomSQLServerInstanceProfile`.

1. Adicione `AWSRDSCustomSQLServerInstanceRole` ao perfil da instância.

##### Criar a função do IAM AWSRDSCustomSQLServerInstanceRole
<a name="custom-setup-sqlserver.iam.create-role"></a>

O exemplo a seguir cria a função `AWSRDSCustomSQLServerInstanceRole`. A política de confiança permite que o Amazon EC2 assuma a função.

```
aws iam create-role \
    --role-name AWSRDSCustomSQLServerInstanceRole \
    --assume-role-policy-document '{
        "Version": "2012-10-17",		 	 	 
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                  "Service": "ec2.amazonaws.com"
              }
            }
          ]
        }'
```

##### Adicionar uma política de acesso a AWSRDSCustomSQLServerInstanceRole
<a name="custom-setup-sqlserver.iam.add-policy"></a>

Para fornecer as permissões necessárias, anexe a política `AmazonRDSCustomInstanceProfileRolePolicy`gerenciada pela AWS a `AWSRDSCustomSQLServerInstanceRole`. A `AmazonRDSCustomInstanceProfileRolePolicy` permite que as instâncias do RDS Custom enviem e recebam mensagens e realizem várias ações de automação.

**nota**  
As permissões na política de acesso não devem ser restritas por SCPs nem por limites de permissão associados à função de perfil de instância.

O exemplo a seguir anexa a política `AmazonRDSCustomInstanceProfileRolePolicy` gerenciada pela AWS ao perfil `AWSRDSCustomSQLServerInstanceRole`.

```
aws iam attach-role-policy \
    --role-name AWSRDSCustomSQLServerInstanceRole \
    --policy-arn arn:aws:iam::aws:policy/AmazonRDSCustomInstanceProfileRolePolicy
```

##### Criar seu perfil de instância do RDS Custom for SQL Server
<a name="custom-setup-sqlserver.iam.create-profile"></a>

Um perfil de instância é um contêiner que inclui um único perfil do IAM. O RDS Custom usa o perfil de instância para transmitir o perfil à instância.

Se você usar o Console de gerenciamento da AWS para criar um perfil para o Amazon EC2, o console criará automaticamente um perfil de instância e dará a ele o mesmo nome dado ao perfil quando este foi criado. Crie seu perfil de instância da seguinte maneira, chamando-o de `AWSRDSCustomSQLServerInstanceProfile`.

```
aws iam create-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile
```

##### Adicionar AWSRDSCustomSQLServerInstanceRole ao seu perfil de instância do RDS Custom for SQL Server
<a name="custom-setup-sqlserver.iam.add-profile"></a>

Adicione o perfil `AWSRDSCustomInstanceRoleForRdsCustomInstance` ao perfil `AWSRDSCustomSQLServerInstanceProfile` criado anteriormente.

```
aws iam add-role-to-instance-profile \
    --instance-profile-name AWSRDSCustomSQLServerInstanceProfile \
    --role-name AWSRDSCustomSQLServerInstanceRole
```

#### Configurar sua VPC manualmente
<a name="custom-setup-sqlserver.vpc"></a>

Sua instância de banco de dados do RDS Custom está em uma nuvem privada virtual (VPC) com base no serviço da Amazon VPC, assim como uma instância do Amazon EC2 ou do Amazon RDS. Você fornece e configura sua própria VPC. Assim, você tem controle total sobre a configuração de rede da sua instância.

O RDS Custom envia comunicações de sua instância de banco de dados para outros Serviços da AWS. Garanta que os seguintes serviços estejam acessíveis por meio da sub-rede na qual você cria instâncias de banco de dados do RDS Custom:
+ Amazon CloudWatch (`com.amazonaws.region.monitoring`)
+ Amazon CloudWatch Logs (`com.amazonaws.region.logs`)
+ Amazon CloudWatch Events (`com.amazonaws.region.events`)
+ Amazon EC2 (`com.amazonaws.region.ec2` e `com.amazonaws.region.ec2messages`)
+ Amazon S3 (`com.amazonaws.region.s3`)
+ AWS Secrets Manager (`com.amazonaws.region.secretsmanager`)
+ AWS Systems Manager (`com.amazonaws.region.ssm` and `com.amazonaws.region.ssmmessages`)

Se você criar implantações multi-AZ
+ Amazon Simple Queue Service (`com.amazonaws.region.sqs`)

Se o RDS Custom não conseguir se comunicar com os serviços necessários, ele publicará os seguintes eventos:

```
Database instance in incompatible-network. SSM Agent connection not available. Amazon RDS can't connect to the dependent AWS services.
```

```
Database instance in incompatible-network. Amazon RDS can't connect to dependent AWS services. Make sure port 443 (HTTPS) allows outbound connections, and try again. "Failed to connect to the following services: s3 events"
```

Para evitar erros `incompatible-network`, os componentes da VPC envolvidos na comunicação entre sua instância de banco de dados do RDS Custom e os Serviços da AWS devem cumprir os seguintes requisitos:
+ A instância de banco de dados pode fazer conexões de saída na porta 443 para outros Serviços da AWS.
+ A VPC permite respostas recebidas a solicitações originadas de sua instância de banco de dados do RDS Custom.
+ O RDS Custom pode resolver corretamente os nomes de domínio dos endpoints para cada AWS service (Serviço da AWS).

Se você já configurou uma VPC para outro mecanismo de banco de dados do RDS Custom, poderá reutilizar essa VPC e ignorar esse processo.

**Topics**
+ [Configurar o grupo de segurança da sua VPC](#custom-setup-sqlserver.vpc.sg)
+ [Configurar endpoints para Serviços da AWS dependentes](#custom-setup-sqlserver.vpc.endpoints)
+ [Configurar o serviço de metadados da instância](#custom-setup-sqlserver.vpc.imds)

##### Configurar o grupo de segurança da sua VPC
<a name="custom-setup-sqlserver.vpc.sg"></a>

Um *grupo de segurança* atua como um firewall virtual para uma instância VPC, controlando os tráfegos de entrada e de saída. Uma instância de banco de dados do RDS Custom tem um grupo de segurança anexado à interface de rede que protege a instância. O grupo de segurança deve permitir o tráfego entre o RDS Custom e outros Serviços da AWS por meio de HTTPS. Você transmite esse grupo de segurança como o parâmetro `vpc-security-group-ids` na solicitação de criação da instância.

**Para configurar seu grupo de segurança para o RDS Custom**

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

1. Permita que o RDS Custom use o grupo de segurança padrão ou crie seu próprio grupo de segurança.

   Para ter instruções detalhadas, consulte [Fornecer acesso à instância de banco de dados na VPC criando um grupo de segurança](CHAP_SettingUp.md#CHAP_SettingUp.SecurityGroup).

1. Verifique se o grupo de segurança permite conexões de saída na porta 443. O RDS Custom precisa dessa porta para se comunicar com os Serviços da AWS dependentes.

1. Se você tiver uma VPC privada e utilizar endpoints da VPC, verifique se o grupo de segurança associado à instância de banco de dados permite conexões de saída na porta 443 para endpoints da VPC. Verifique também se o grupo de segurança associado ao endpoint da VPC permite conexões de entrada na porta 443 da instância de banco de dados.

   Se não forem permitidas conexões de entrada, a instância do RDS Custom não poderá se conectar ao AWS Systems Manager e a endpoints do Amazon EC2. Para ter mais informações, consulte [Criar um endpoint da nuvem privada virtual](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-create-vpc.html) no *Guia do usuário do AWS Systems Manager*.

1. Em relação a instâncias do RDS Custom para SQL Server, verifique se o grupo de segurança associado à instância de banco de dados permite conexões de entrada e de saída na porta 1120 com esse próprio grupo de segurança. Isso é necessário para a conexão de host de emparelhamento em uma instância multi-AZ de banco de dados do RDS Custom para SQL Server. 

Para ter mais informações sobre grupos de segurança, consulte [Grupos de segurança para sua VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) no *Guia do desenvolvedor da Amazon VPC*.

##### Configurar endpoints para Serviços da AWS dependentes
<a name="custom-setup-sqlserver.vpc.endpoints"></a>

Convém adicionar endpoints para cada serviço à sua VPC utilizando as instruções a seguir. No entanto, é possível utilizar qualquer solução que permita que a sua VPC se comunique com endpoints de serviços da AWS. Por exemplo, é possível utilizar a Conversão de endereços de rede (NAT) ou AWS Direct Connect.

**Como configurar endpoints de Serviços da AWS com os quais o RDS Custom funciona**

1. Abra o console da Amazon VPC, em [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Na barra de navegação, use o seletor de região para escolher a Região da AWS.

1. No painel de navegação, escolha **Endpoints**. No painel principal, escolha **Create Endpoint (Criar endpoint)**.

1. Em **Service category** (Categoria de serviço), escolha **Serviços da AWS**.

1. Para **Service Name** (Nome do serviço), escolha o endpoint mostrado na tabela.

1. Em **VPC**, escolha sua VPC.

1. Em **Subnets (Sub-redes)**, escolha uma sub-rede de cada zona de disponibilidade a ser incluída.

   O endpoint da VPC pode abranger várias zonas de disponibilidade. A AWS cria uma interface de rede elástica do endpoint da VPC em cada sub-rede que você escolhe. Cada interface de rede tem um nome de host de Sistema de Nomes de Domínio (DNS) e um endereço IP privado.

1. Para **Security group** (Grupo de segurança), escolha ou crie um grupo de segurança.

   Você pode usar grupos de segurança para controlar o acesso ao seu endpoint, da mesma forma que usa um firewall. Verifique se o grupo de segurança permite conexões de entrada na porta 443 por meio das instâncias de banco de dados. Para ter mais informações sobre grupos de segurança de VPC, consulte [Grupos de segurança para a VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html) no *Guia do usuário da Amazon VPC*. 

1. Você também pode anexar uma política ao endpoint da VPC. As políticas de endpoint podem controlar o acesso ao AWS service (Serviço da AWS) ao qual você está se conectando. A política padrão permite que todas as solicitações passem pelo endpoint. Se você estiver usando uma política personalizada, verifique se as solicitações da instância de banco de dados são permitidas na política.

1. Escolha **Criar endpoint**.

A tabela a seguir explica como encontrar a lista de endpoints que a sua VPC precisa para comunicações de saída.


| Serviço | Formato do endpoint | Observações e links | 
| --- | --- | --- | 
|  AWS Systems Manager  |  Utilize os seguintes formatos de endpoint: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  Para ver uma lista de todos os endpoints regionais, consulte [Cotas e endpoints do AWS Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html) no *Referência geral da Amazon Web Services*.  | 
|  AWS Secrets Manager  |  Usar o formato de endpoint `secretsmanager.region.amazonaws.com`.  |  Para ver uma lista de todos os endpoints regionais, consulte [Cotas e endpoints do AWS Secrets Manager](https://docs.aws.amazon.com/general/latest/gr/asm.html) no *Referência geral da Amazon Web Services*.  | 
|  Amazon CloudWatch  |  Utilize os seguintes formatos de endpoint: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  | Para ver a lista de endpoints em todas as regiões, consulte: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html) | 
|  Amazon EC2  |  Utilize os seguintes formatos de endpoint: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/AmazonRDS/latest/UserGuide/custom-setup-sqlserver.html)  |  Para ver a lista de endpoints em cada região, consulte [Endpoints e cotas do Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/general/latest/gr/ec2-service.html) na *Referência geral da Amazon Web Services*.  | 
|  Amazon S3  |  Use o formato de endpoint `s3.region.amazonaws.com`.  |  Para ver a lista de endpoints em cada região, consulte [Endpoints e cotas do Amazon Simple Storage Service](https://docs.aws.amazon.com/general/latest/gr/s3.html) na *Referência geral da Amazon Web Services*.  Para saber mais sobre endpoints de gateway para o Amazon S3, consulte [Endpoints do Amazon S3](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html), no *Guia do desenvolvedor da Amazon VPC*.  Para saber como criar um ponto de acesso, consulte [Criar pontos de acesso](https://docs.aws.amazon.com/AmazonS3/latest/user-guide/access-points-create-ap.html) no *Guia do desenvolvedor do Amazon VPC*. Para saber como criar endpoints de gateway para o Amazon S3, consulte [Endpoints da VPC do gateway](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html).  | 
|  Amazon Simple Queue Service  | Usar o formato de endpoint sqs.region.amazonaws.com | Para ver a lista de endpoints em cada região, consulte [Amazon Simple Queue Service endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/sqs-service.html). | 

##### Configurar o serviço de metadados da instância
<a name="custom-setup-sqlserver.vpc.imds"></a>

Verifique se a sua instância pode fazer o seguinte:
+ Acesse o serviço de metadados de instância utilizando o Instance Metadata Service versão 2 (IMDSv2).
+ Permita comunicações de saída por meio da porta 80 (HTTP) com o endereço IP do link IMDS.
+ Solicite metadados da instância de `http://169.254.169.254`, o link IMDSv2.

Consulte mais informações em [Usar IMDSv2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) no *Guia do usuário do Amazon EC2*.

## Restrição entre instâncias
<a name="custom-setup-sqlserver.cross-instance-restriction"></a>

Quando você cria um perfil de instância seguindo as etapas acima, ele usa a política `AmazonRDSCustomInstanceProfileRolePolicy` gerenciada pela AWS para fornecer as permissões necessárias ao RDS Custom, o que permite o gerenciamento de instâncias e a automação do monitoramento. A política gerenciada garante que as permissões viabilizem acesso somente aos recursos que o RDS Custom exige para executar a automação. Recomendamos usar a política gerenciada para comportar novos recursos e atender aos requisitos de segurança que são aplicados automaticamente aos perfis de instância existentes sem intervenção manual. Para ter mais informações, consulte a [política gerenciada pela AWS: AmazonRDSCustomInstanceProfileRolePolicy](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-security-iam-awsmanpol.html#rds-security-iam-awsmanpol-AmazonRDSCustomInstanceProfileRolePolicy).

A política gerenciada `AmazonRDSCustomInstanceProfileRolePolicy` impede que o perfil de instância tenha acesso entre contas, mas pode permitir acesso a alguns recursos gerenciados do RDS Custom entre as respectivas instâncias na mesma conta. Com base em suas necessidades, você pode usar limites de permissão para restringir ainda mais o acesso entre instâncias. Os limites de permissões definem o número máximo de permissões que as políticas baseadas em identidade podem conceder a uma entidade, mas, por si sós, não concedem permissões. Para ter mais informações, consulte [Avaliar permissões efetivas com limites](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html#access_policies_boundaries-eval-logic).

Por exemplo, a política de limite a seguir impede que o perfil de instância acesse uma chave do AWS KMS específica e limita o acesso aos recursos gerenciados do RDS Custom em instâncias que usam chaves do AWS KMS diferentes.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DenyOtherKmsKeyAccess",
            "Effect": "Deny",
            "Action": "kms:*",
            "NotResource": "arn:aws:kms:us-east-1:111122223333:key/KMS_key_ID"
        }
    ]
}
```

------

**nota**  
Garanta que o limite de permissões não bloqueie nenhuma permissão que a `AmazonRDSCustomInstanceProfileRolePolicy` concede ao RDS Custom.