

# Configurar um Active Directory autogerenciado
<a name="db2-self-managed-active-directory.SettingUp"></a>

Para configurar um AD autogerenciado, siga as etapas abaixo.

**Topics**
+ [Etapa 1: Criar uma unidade organizacional no AD](#db2-self-managed-active-directory.SettingUp.CreateOU)
+ [Etapa 2: criar uma conta de serviço de domínio AD em seu AD](#db2-self-managed-active-directory.SettingUp.CreateADuser)
+ [Etapa 3: delegar controle à conta de serviço de domínio AD](#db2-self-managed-active-directory.SettingUp.DelegateControl)
+ [Etapa 4: criar uma chave do AWS KMS](#db2-self-managed-active-directory.SettingUp.CreateKMSkey)
+ [Etapa 5: Criar um segredo da AWS](#db2-self-managed-active-directory.SettingUp.CreateSecret)
+ [Etapa 6: criar ou modificar uma instância de banco de dados do Db2](#db2-self-managed-active-directory.SettingUp.CreateModify)

## Etapa 1: Criar uma unidade organizacional no AD
<a name="db2-self-managed-active-directory.SettingUp.CreateOU"></a>

**Importante**  
Recomendamos criar uma UO dedicada e credenciais de serviço restritas a essa UO para cada conta da AWS proprietária de uma instância de banco de dados do RDS para Db2 ingressada no domínio do AD autogerenciado. Ao dedicar uma UO e credenciais de serviço, você evita conflitos de permissões e segue o princípio do privilégio mínimo.

**Como criar uma OU no AD**

1. Conecte-se ao seu domínio de AD como administrador do domínio.

1. Abra **Usuários e computadores do Active Directory** e selecione o domínio em que deseja criar a OU.

1. Abra o menu de contexto do domínio, escolha **Novo** e, depois, **Unidade organizacional**.

1. Insira um nome para a OU.

1. Mantenha a caixa **Proteger o contêiner contra exclusão acidental** selecionada.

1. Escolha **OK**. A nova UO será exibida no domínio.

## Etapa 2: criar uma conta de serviço de domínio AD em seu AD
<a name="db2-self-managed-active-directory.SettingUp.CreateADuser"></a>

Use as credenciais da conta de serviço do domínio como o segredo no AWS Secrets Manager.

**Como criar uma conta de serviço de domínio AD em seu AD**

1. Abra **Usuários e computadores do Active Directory** e selecione o domínio e a OU em que deseja criar o usuário.

1. Abra o menu de contexto de **Usuários**, escolha **Novo** e, depois, **Usuário**.

1. Insira um nome, sobrenome e nome de login para o usuário. Escolha **Próximo**.

1. Insira uma senha para o usuário. Não selecione **Usuário deve alterar a senha no próximo login**. Não selecione **A conta está desabilitada**. Escolha **Próximo**.

1. Escolha **OK**. O novo usuário aparecerá no domínio.

## Etapa 3: delegar controle à conta de serviço de domínio AD
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl"></a>

### Parte A: delegar permissões usando o Assistente para Delegação de Controle
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl.Wizard"></a>

**Como delegar controle à conta de serviço de domínio AD em seu domínio**

1. Abra o snap-in do Console de Gerenciamento Microsoft (MMC) **Usuários e computadores do Active Directory** e selecione o domínio no qual deseja criar o usuário.

1. Abra o menu de contexto da UO criada anteriormente e escolha **Delegar controle**.

1. No **Assistente para Delegação de Controle**, escolha **Próximo**.

1. Na seção **Usuários ou grupos**, escolha **Adicionar**.

1. Na seção **Selecionar usuários, computadores ou grupos**, informe a conta de serviço do domínio do AD criada anteriormente e escolha **Verificar nomes**. Se a validação da conta de serviço do domínio for bem-sucedida, escolha **OK**.

1. Na seção **Usuários ou grupos**, confirme que a conta de serviço do domínio foi adicionada e escolha **Avançar**.

1. Na seção **Tarefas para delegar**, selecione **Criar uma tarefa personalizada para delegar** e escolha **Avançar**.

1. Na seção **Tipo de objeto do Active Directory**:

   1. Selecione **Somente os objetos a seguir na pasta**.

   1. Selecione **Objetos de usuário**.

   1. Selecione **Criar objetos selecionados nesta pasta**.

   1. Selecione **Excluir os objetos selecionados nesta pasta** e escolha **Avançar**.

1. Na seção **Permissões**:

   1. Mantenha a opção **Geral** selecionada.

   1. Selecione **Específico da propriedade**.

   1. Selecione **Criação/exclusão de objetos secundários específicos**.

   1. Selecione **Redefinir senha**.

   1. Selecione **Ler msDS-SupportedEncryptionTypes**.

   1. Selecione **Gravar msDS-SupportedEncryptionTypes**.

1. Em **Concluir o Assistente para Delegação de Controle**, revise e confirme as configurações e escolha **Concluir**.

### Parte B: delegar permissões de servicePrincipalName usando o PowerShell
<a name="db2-self-managed-active-directory.SettingUp.DelegateControl.PowerShell"></a>

O Assistente para Delegação de Controle não expõe a propriedade `servicePrincipalName` para objetos de usuário. Execute o script do PowerShell a seguir no controlador de domínio para conceder à conta de serviço do domínio do AD permissão de leitura e gravação do atributo `servicePrincipalName` em objetos de usuário na UO.

Substitua {{service-account}} pelo nome da conta de serviço do domínio criada na Etapa 2 e atualize o nome distinto da UO para corresponder à UO criada na Etapa 1.

```
$ou = "OU={{my-AD-test-OU}},DC={{my-AD-test}},DC={{my-AD}},DC={{my-domain}}"
$user = Get-ADUser "{{service-account}}"
$acl = Get-Acl "AD:\$ou"

$schemaPath = (Get-ADRootDSE).schemaNamingContext
$spnSchema = Get-ADObject -SearchBase $schemaPath -Filter {lDAPDisplayName -eq "servicePrincipalName"} -Properties schemaIDGUID
$spnGuid = New-Object Guid (,$spnSchema.schemaIDGUID)
$userGuid = New-Object Guid "bf967aba-0de6-11d0-a285-00aa003049e2"

$ace = New-Object System.DirectoryServices.ActiveDirectoryAccessRule(
   $user.SID,
   "ReadProperty,WriteProperty",
   "Allow",
   $spnGuid,
   "Descendents",
   $userGuid
)

$acl.AddAccessRule($ace)
Set-Acl "AD:\$ou" $acl
```

Para verificar se as permissões foram aplicadas corretamente, execute o seguinte script do PowerShell:

```
$acl = Get-Acl "AD:\$ou"
$acl.Access | Where-Object { $_.IdentityReference -like "*{{service-account}}*" } | Format-List
```

## Etapa 4: criar uma chave do AWS KMS
<a name="db2-self-managed-active-directory.SettingUp.CreateKMSkey"></a>

A chave do KMS criptografa o seu segredo do AWS.

**nota**  
Em **Chave de criptografia**, não use a chave do KMS padrão da AWS. Crie a chave do AWS KMS na mesma conta da AWS que contém a instância do RDS para Db2 que será associada ao domínio do AD autogerenciado.

**Para criar uma chave de KMS da AWS**

1. Abra o console do AWS KMS em [https://console.aws.amazon.com/kms/](https://console.aws.amazon.com/kms/). Escolha **Criar chave**.

1. Em **Tipo de chave**, escolha **Simétrica**.

1. Em **Uso da chave**, escolha **Criptografar e descriptografar**.

1. Em **Advanced options (Opções avançadas)**:

   1. Em **Origem do material de chaves**, escolha **Externa**.

   1. Em **Regionalidade**, escolha **Chave de região única** e escolha **Próximo**.

1. Em **Alias**, forneça um nome para a chave do KMS.

1. (Opcional) Em **Descrição**, forneça uma descrição da chave do KMS.

1. (Opcional) Em **Tags**, forneça uma tag da chave do KMS e clique em **Próximo**.

1. Em **Administradores de chaves**, forneça o nome de um usuário do IAM e selecione-o.

1. Em **Exclusão de chaves**, mantenha a caixa **Permitir administradores de chaves** selecionada para que eles possam excluir essa chave, e escolha **Próximo**.

1. Em **Usuários de chaves**, informe o mesmo usuário do IAM da etapa anterior e selecione-o. Escolha **Próximo**.

1. Revise a configuração.

1. Em **Política de chave**, inclua o seguinte na **Instrução** da política:

   ```
   {
       "Sid": "Allow use of the KMS key on behalf of RDS",
       "Effect": "Allow",
       "Principal": {
           "Service": [
               "rds.amazonaws.com"
           ]
       },
       "Action": "kms:Decrypt",
       "Resource": "*"
   }
   ```

1. Escolha **Terminar**.

## Etapa 5: Criar um segredo da AWS
<a name="db2-self-managed-active-directory.SettingUp.CreateSecret"></a>

**nota**  
Crie o segredo na mesma conta da AWS que contém a instância do RDS para Db2 que será associada ao domínio do AD autogerenciado.

**Como criar um segredo**

1. Abra o console do AWS Secrets Manager em[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/). Selecione **Armazenar um novo segredo**.

1. Em **Tipo de segredo**, escolha **Outro tipo de segredo**.

1. Em **Pares de chave/valor**, adicione suas duas chaves:

   1. Para a primeira chave, insira `SELF_MANAGED_ACTIVE_DIRECTORY_USERNAME`.

   1. Para o valor da primeira chave, insira somente o nome de usuário (sem o prefixo do domínio) do usuário do AD. Não inclua o nome do domínio, pois isso faz com que a criação da instância falhe.

   1. Para a segunda chave, insira `SELF_MANAGED_ACTIVE_DIRECTORY_PASSWORD`.

   1. Para o valor da segunda chave, insira a senha que você criou para o usuário do AD no domínio.

1. Em **Chave de criptografia**, selecione a chave do KMS criada na etapa anterior e escolha **Próximo**.

1. Em **Nome do secreto**, insira um nome descritivo que ajude você a encontrar o segredo posteriormente.

1. (Opcional) Em **Descrição**, insira uma descrição para o nome do segredo.

1. Em **Permissão de recurso**, escolha **Editar**.

1. Adicione a política a seguir à política de permissões:
**nota**  
Recomendamos que você use as condições `aws:sourceAccount` e `aws:sourceArn` na política para evitar o problema de *representante confuso*. Use sua conta da AWS em `aws:sourceAccount` e o ARN da instância de banco de dados do RDS para Db2 em `aws:sourceArn`. Para obter mais informações, consulte [Prevenção do problema do substituto confuso entre serviços](cross-service-confused-deputy-prevention.md).

   ```
   {
       "Version":"2012-10-17",
       "Statement":
       [
           {
               "Effect": "Allow",
               "Principal":
               {
                   "Service": "rds.amazonaws.com"
               },
               "Action": "secretsmanager:GetSecretValue",
               "Resource": "*",
               "Condition":
               {
                   "StringEquals":
                   {
                       "aws:sourceAccount": "123456789012"
                   },
                   "ArnLike":
                   {
                       "aws:sourceArn": "arn:aws:rds:us-west-2:123456789012:db:*"
                   }
               }
           }
       ]
   }
   ```

1. Escolha **Salvar** e **Próximo**.

1. Em **Definir configurações de rotação**, mantenha os valores padrão e escolha **Próximo**.

1. Consulte as configurações do segredo e escolha **Armazenar**.

1. Escolha o segredo que você criou e copie o valor do **ARN do segredo**. Use esse valor na próxima etapa para configurar o Active Directory autogerenciado.

## Etapa 6: criar ou modificar uma instância de banco de dados do Db2
<a name="db2-self-managed-active-directory.SettingUp.CreateModify"></a>

É possível usar a AWS CLI para associar uma instância do RDS para Db2 a um domínio do AD autogerenciado. É possível fazer isso por meio de uma das seguintes maneiras:
+ Crie uma instância de banco de dados do Db2 usando o comando da CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html). Para instruções, consulte [Criar uma instância de banco de dados do Amazon RDS](USER_CreateDBInstance.md).
+ Modifique uma instância de banco de dados existente do Db2 usando o comando da CLI [https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html](https://docs.aws.amazon.com/cli/latest/reference/rds/modify-db-instance.html). Para instruções, consulte [Modificar uma instância de banco de dados do Amazon RDS](Overview.DBInstance.Modifying.md).

Ao usar a AWS CLI, os seguintes parâmetros são obrigatórios para que a instância de banco de dados possa usar o domínio do AD autogerenciado criado.
+ Em relação ao parâmetro `--domain-fqdn`, use o nome de domínio totalmente qualificado (FQDN) do seu AD autogerenciado.
+ Para o parâmetro `--domain-ou`, use a OU criada em seu AD autogerenciado.
+ Para o parâmetro `--domain-auth-secret-arn`, use o valor do ARN do segredo criado em uma etapa anterior.
+ Para o parâmetro `--domain-dns-ips`, use os endereços IPv4 primário e secundário dos servidores DNS para seu AD autogerenciado. Se você não tiver um endereço IP de servidor DNS secundário, insira o endereço IP principal duas vezes.

O comando da CLI a seguir cria uma instância do RDS para Db2 e a associa a um domínio do AD autogerenciado.

Para Linux, macOS ou Unix:

```
aws rds create-db-instance \
    --db-instance-identifier {{my-DB-instance}} \
    --db-instance-class db.m6i.large \
    --allocated-storage 50 \
    --engine db2-se \
    --engine-version 11.5 \
    --master-username {{my-master-username}} \
    --master-user-password {{my-master-password}} \
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} \
    --domain-ou {{OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain}} \
    --domain-auth-secret-arn "arn:aws:secretsmanager:{{region}}:{{account-number}}:secret:{{my-AD-test-secret-123456}}" \
    --domain-dns-ips "{{10.11.12.13}}" "{{10.11.12.14}}"
```

Para Windows:

```
aws rds create-db-instance ^
    --db-instance-identifier {{my-DB-instance}} ^
    --db-instance-class db.m6i.large ^
    --allocated-storage 50 ^
    --engine db2-se ^
    --engine-version 11.5 ^
    --master-username {{my-master-username}} ^
    --master-user-password {{my-master-password}} ^
    --domain-fqdn {{my_AD_domain.my_AD.my_domain}} ^
    --domain-ou {{OU=my-AD-test-OU,DC=my-AD-test,DC=my-AD,DC=my-domain}} ^
    --domain-auth-secret-arn "arn:aws:secretsmanager:{{region}}:{{account-number}}:secret:{{my-AD-test-secret-123456}}" ^
    --domain-dns-ips "{{10.11.12.13}}" "{{10.11.12.14}}"
```