Ao provisionar um novo Autonomous Database, temos três opções para controle de acesso ao banco de dados a nível de rede, conforme abaixo:

  • “Secure access from everywhere”: Nesta opção, o banco de dados é exposto para a internet e não há nenhum controle de segurança sobre quem pode conectar no banco de dados. Essa é a opção padrão e até antes de abril de 2019, era a única forma de provisionar um ADB.
  • “Secure access from allowed IP’s and VCNs only”: Esta opção também expõe o banco de dados publicamente na internet, mas permite filtrar quais IPs podem conectar no ADB.
  • “Private endpoint access only”: Esta opção é a mais segura de todas, o banco dados é acessível apenas a partir de algum IP privado dentro da VCN em que ele foi criado e não é exposto publicamente na internet.

Secure access from everywhere

Quando usamos a opção “Secure access from everywhere”, a autenticação usando mTLS é obrigatória, enquanto nas demais opções, essa configuração é opcional (sendo necessário usar somente TLS). Além disso, não há nenhum requisito ou configuração adicional.

Na página de detalhes de um Autonomous Database existente, na sessão Network, a configuração deve ser apresentada desta forma:

Secure access from allowed IP’s and VCNs only

Selecionando esta opção, podemos configurar as regras de acesso especificando um endereço IP, um range de IPs especificando um CIDR Block ou uma VCN específica. Para VCN podemos selecionar o nome da VCN na lista de VCN disponíveis ou informar o OCID da VCN desejada.

Note que é possível usar múltiplas regras de tipos diferentes e mesclar a configuração de controle de acesso. Quando selecionamos uma VCN, por padrão, todos os IP’s dessa VCN podem conectar no ADB, opcionalmente podemos restringir a lista de IPs da VCN.

Private endpoint access only

A opção de usar Private Endpoint é a que tem mais requisitos a serem atendidos e configurações a serem realizadas:

Conforme o exemplo acima, precisamos informar a VCN e a Subnet no qual o ADB será vinculado. Também, a VCN já deve ter ao menos um Network Security Group (NSG) previamente criado para ser vinculado ao ADB. Com Private Endpoint, as regras de quais IPs podem conectar no banco de dados são configuradas através do NSG vinculado ao ADB e podemos vincular de 1 a 5 NSGs no mesmo ADB.

Abaixo um exemplo de uma configuração simples do NSG utilizado na criação do Autonomous Database, permitindo acesso a porta 1522 para qualquer IP na rede 10.2.0.0/28:

A porta 1522 é usada para conexões usando o protocolo mTLS, enquanto a 1521 é utilizada para conexões com TLS. É importante observar que na ausência de uma regra correta no NSG, não é possível conectar no banco de dados mesmo que o client esteja dentro da mesma VCN.

Alterando a Configuração: Habilitando e Desabilitando ACL

Para alternar entre as opções de controle de acesso Secure access from everywhere e Secure access from allowed IP’s and VCNs only ou vice versa, basta acessar a página principal do ADB e clicar no link “edit” em “Access Control list”. Neste tipo de alteração, o endpoint¹ em si não é alterado e dessa forma não é necessário gerar uma nova wallet para os clientes que conectam no banco de dados.

¹ endpoint é o endereço IP e Porta no qual o Listener recebe conexões, então ao mudar o endpoint, a string de conexão para o banco de dados também deve ser alterada.

No exemplo abaixo, o ADB está na configuração padrão Secure access from everywhere:

A seguir, estou habilitando o controle por ACL e limitando o acesso para uma VCN específica.

Após habilitar o controle de acesso por ACL, a informação deve ser apresentada dessa forma na página inicial do ADB:

Desabilitando ACL

Para desabilitar o controle de acesso por ACL, o procedimento é basicamente o mesmo, mas é importante observar que a opção Mutual TLS (mTLS) Authentication deve estar configurada como “Required”.

Clique no link “edit”, ao abrir a tela de edição da ACL, remova todas as regras clicando no “X” ao lado de cada regra:

Por fim, clique em “Save Changes”:

Alterando a Configuração Para Private Endpoint

Para alterações de Public para Private Endpoint ou vice versa, acesse a opção “More Actions” e clique em “Update Network Access”:

Na tela “Update Network Access”, selecione a opção Private endpoint access only:

Nas opções abaixo, selecione a VCN, uma Subnet e um Network Security Group (NSG):

Por fim, clique em Update. Neste tipo de alteração, é necessário realizar uma confirmação adicional:

Após concluir a alteração, a configuração deve ser exibida dessa forma na console:

Neste tipo de alteração, o endpoint do banco de dados é alterado, dessa forma é necessário baixar a nova wallet e disponibilizar para os clientes/usuários.

Conclusão

Neste post apresentamos um resumo das opções de controle de acesso a nível de rede disponíveis atualmente no serviço Autonomous Database. Também abordamos alguns exemplos de configuração e de como alterar o tipo de controle de acesso e um ADB existente. Por fim, é importante lembrar que alterações de Public para Private Endpoint, ou vice versa, alteram a string de conexão para o banco de dados e é necessário atualizar a configuração das aplicações.

One thought on “Opções de Controle de Acesso do Autonomous Database na Oracle Cloud Infrastructure (OCI)”

Leave a Reply

Discover more from Blog do Dibiei

Subscribe now to keep reading and get access to the full archive.

Continue reading