Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 1)

Por Deiby Gómez Robles , Yenugula Venkata RaviKumar (OCM) e David Siqueira
Postado em Fevereiro 2014


Indice:

  1. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 1)
  2. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 2)
  3. Oracle Exadata Database Machine: Segurança a nível de ASM e de Banco de Dados (Parte 3)


Introdução:
A questão de segurança no acessoaos dados é um tema muito importante dentros das empresas e algo que debemos dar maisatenção, implementar e não descartar esta opção. Em se tratando de ambientes EXADATA DATABASE MACHINE, temo suma organização do hardware dividos entre Servidores de Banco de Dados ( Database Servers) e Servidores de Armazenamento( Storage Servers ), a titulo de exemplo temo suma HALF HACK, que possui 4 servidores de Banco de Dados e 7 servidores para armazenamento, isto nos leva a umaquestão:Quais servidores de banco de dados, podemacessar os servidores de armazenamentoQuaisCluster de ASM podemacessarquais discos?Poisbem,este é o obejtivo principal desteartigo,entrarmosmais a fundo naadministração dos banco de dados, e tambémentendermos como é a forma de utilização da segurança e suaimplementaçãodenteo de um "Oracle ExadataDatabase Machine".

A segurança á nível de Célula de Exadata( ExadataCell ) éresponsaveldireta por determinar quem é que irá acessar as "ExadataCell" e seus respectivos "Grid Disks", este tipo de segurança pode ser implementado a partir de duaspespectivas:

  1. Segurança a nível de ASM
  2. Segurança a nível de Banco de Dados

As boas práticas da implementação de segurança, recomendam que seja realizado umplanejamento antes mesmo da existencia da Base de Dados no que dizrespeito a segurançaemASM .

Segurança á nível de ASM : Utilizando este nível de segurança, todas as bases de dados , mesmo as emcluster, terãoacesso a um ASM especifico “Grid Disk”, desta forma agrupamos varias bases de dados aomesmo tempo.

Segurança á nível de Banco de Dados :Com este tipo de segurança, especificas bases de dados podemacessar determinados “Grid Disks”. Devemos usar o arquivo de controle “cellkey.ora” para cada base de dados. Este tipo de segurança é umpoucomais refinada e garante umamaiorgranularidadeao restringir o acessoaos “Grid Disks”.

Por regra e padrão do ambiente ExadataDatabase Machine,  todos os ASM emcluster  e banco de dados existentes, podemacessar todos os “Grid Disks” emqualquer lugar “ExadataCell”, essa forma é chamada pela Oracle como “SEGURANÇA ABERTA” ou “Open Security”.

Quandodevemos implementar a Segurançaemum Oracle “ExadataDatabase Machine”?

  • Quandofornecessário dividir o negócio entre vários departamentos e vários bancos de dados emClusters e permitir que cada umdestes grupos tenhamacesso a certas "células deExadata."
  • Quando se tem varios ambientes de T.I dentro de ummesmo “Oracle ExadataDatabase Machine”e seu ciclo de vida afetadiretamentealgumas "Células de Exadata".
  • Quando é necessário testar ambientes e restringir o acesso a determinados sistemas de armazenamentos de produção.
  • Como boas práticas de segurança.
  • A fim de evitar o mau uso oucorrupão de bases de dados emarmazenamento que nãosão de missão critica.

Exemplo de Segurança a Nível de Banco de Daso e ASM :

  • O cluster de ASM"A" usa dois "GridDisk" em cada "Célula de Exadata" para armazenaruma base de dados simples emoutrocluster.
  • O Cluster de ASM "B" utiliza um"GridDisk"emcada"Célula de Exadata"para armazenaruma base de dados simples.
  • O Cluster de ASM “B” utiliza umoutro conjunto único de "Grid Disk" por cada "Célula de Exadata" para armazenamentode uma base de dado do tipo RAC.
  • O cluster ASM “A”, nãoteráacessoaos “Grid Disks” do Cluster ASM “B” e vice-versa.
  • A base de dados simples presente no Cluster ASM “A” poderia ter acesso á todos os “Grid Disks” que utilizam o Cluster de ASM “A”..
  • A base de dados simples que utiliza o Cluster de ASM “B” nãopoderá ter acessoaos “Grid Disks” que utilizam a base de dados existentes dentro de ummesmoCluster de ASM e Vice-Versa..

Configuração de Segurança á Nível de ASM

1. Baixe os serviços de Banco de Dados e ASM. É importante que no caso de um ambiente “ExadataDatabase Machine” será necessário a execuçãodestespassosem casa servidor presente no ASM Cluster.

Utilizando o usuárioroot (Este comando baixará todos os serviços):

[root@exadb01 ~]# crsctl stop crs

Utilizando o usuáriooracle (caso nãotenhaacessoaousuárioroot):

[oracle@exadb01 ~]$ ps -ef | greppmon
oracle    3490     1  0 04:49 ?        00:00:00 asm_pmon_+ASM
oracle    3739     1  0 04:50 ?        00:00:00 ora_pmon_xdbvm
oracle    3912  3392  0 04:50 pts/2    00:00:00 greppmon

[oracle@exadb01 ~]$ srvctl stop database -d xdbvm

[oracle@exadb01 ~]$ ps -ef | greppmon
oracle    3490     1  0 04:49 ?        00:00:00 asm_pmon_+ASM
oracle    4139  3392  0 04:51 pts/2    00:00:00 greppmon

[oracle@exadb01 ~]$ srvctl stop diskgroup -g DATA
[oracle@exadb01 ~]$ srvctl stop diskgroup -g RECO
[oracle@exadb01 ~]$ srvctl stop asm

[oracle@exadb01 ~]$ ps -ef | greppmon
oracle    4215  3392  0 04:52 pts/2    00:00:00 grep pmon

2. Gerandouma chave de segurança, utilizando o CELLCLI "CREATE KEY". Execute este comando uma única vez emqualquer “Célula Exadata.”

Exadata Cell Cell01:

login as: celladmin
celladmin@192.168.56.101's password:
Last login: Tue Dec  3 04:41:31 2013
[celladmin@cell01 ~]$ servicecelld status
Password:
rsStatus:               running
msStatus:               running
cellsrvStatus:          running
[celladmin@cell01 ~]$ cellcli
CellCLI: Release 11.2.3.2.1 - Production on Tue Dec 03 04:53:25 GMT+00:00 2013

Copyright (c) 2007, 2012, Oracle.  All rights reserved.
Cell Efficiency Ratio: 510

CellCLI> create key
8804b0e5bb8f6a4d10a0e17843e60c1

Exadata Cell Cell02:

login as: celladmin
celladmin@192.168.56.102's password:
Last login: Tue Dec  3 04:42:17 2013
[celladmin@cell02 ~]$ servicecelld status
Password:
rsStatus:               running
msStatus:               running
cellsrvStatus:          running

3. Utilizaro comando "ASSIGN KEY"para atribuir a chave de segurança para clusters ASM que énecessário para ter acesso a "Célula de Exadata" eleita.

Exadata Cell Cell01:

CellCLI> alter cell realmName=my_realm
Cell cell01 successfully altered

CellCLI> assign key for +ASM='8804b0e5bb8f6a4d10a0e17843e60c1'
Key for +ASM successfully created

    

Exadata Cell Cell02:

CellCLI> alter cell realmName=my_realm
Cell cell02 successfully altered

CellCLI> assign key for +ASM='8804b0e5bb8f6a4d10a0e17843e60c1'
Key for +ASM successfullycreated

Nota:Podemos optar por utilizamor o DCLI para executarmos o mesmo comando em todas as “Células de Exadata” de umasó vez, se necessário.

dcli -c cell01,cell02 "cellcli -e assign key for +ASM='8804b0e5bb8f6a4d10a0e17843e60c1'

4. Verificando a disponibilidade dos "Grid Disk" no "ExadataCell Cell01"

CellCLI> list griddisk
         DATA_CD_disk01_cell01   active
         DATA_CD_disk02_cell01   active
         DATA_CD_disk03_cell01   active
         DATA_CD_disk04_cell01   active
         DATA_CD_disk05_cell01   active
         DATA_CD_disk06_cell01   active
         DATA_CD_disk07_cell01   active
         DATA_CD_disk08_cell01   active
         DATA_CD_disk09_cell01   active
         DATA_CD_disk10_cell01   active
         DATA_CD_disk11_cell01   active
         DATA_CD_disk12_cell01   active
         RECO_CD_disk01_cell01   active
         RECO_CD_disk02_cell01   active
         RECO_CD_disk03_cell01   active
         RECO_CD_disk04_cell01   active
         RECO_CD_disk05_cell01   active
         RECO_CD_disk06_cell01   active
         RECO_CD_disk07_cell01   active
         RECO_CD_disk08_cell01   active
         RECO_CD_disk09_cell01   active
         RECO_CD_disk10_cell01   active
         RECO_CD_disk11_cell01   active
RECO_CD_disk12_cell01   active

5. Utilizando o comando"CREATE GRIDDISK"ou "ALTER GRIDDISK"para configurar a segurança nos "Grid Disk" nos quais será permitido o acessovia ASM.

[oracle@exadb01 ~]$ dcli -g ./cell_group "cellcli -e \alter griddisk all availableTo=\'+ASM\'"

The authenticity of host 'cell01 (192.168.56.101)' can't be established.
RSA key fingerprint is 39:e3:37:14:23:4c:6e:eb:08:9f:c6:07:d7:55:7e:e0.
Are you sure you want to continue connecting (yes/no)? 
The authenticity of host 'cell02 (192.168.56.102)' can't be established.
RSA key fingerprint is 39:e3:37:14:23:4c:6e:eb:08:9f:c6:07:d7:55:7e:e0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'cell01,192.168.56.101' (RSA) to the list of known hosts.
celladmin@cell01's password: Please type 'yes' or 'no':
Warning: Permanently added 'cell02,192.168.56.102' (RSA) to the list of known hosts.
celladmin@cell02's password:
cell01: GridDisk DATA_CD_disk01_cell01 successfully altered
cell01: GridDisk DATA_CD_disk02_cell01 successfully altered
cell01: GridDisk DATA_CD_disk03_cell01 successfully altered
cell01: GridDisk DATA_CD_disk04_cell01 successfully altered
cell01: GridDisk DATA_CD_disk05_cell01 successfully altered
cell01: GridDisk DATA_CD_disk06_cell01 successfully altered
cell01: GridDisk DATA_CD_disk07_cell01 successfully altered
cell01: GridDisk DATA_CD_disk08_cell01 successfully altered
cell01: GridDisk DATA_CD_disk09_cell01 successfully altered
cell01: GridDisk DATA_CD_disk10_cell01 successfully altered
cell01: GridDisk DATA_CD_disk11_cell01 successfully altered
cell01: GridDisk DATA_CD_disk12_cell01 successfully altered
cell01: GridDisk RECO_CD_disk01_cell01 successfully altered
cell01: GridDisk RECO_CD_disk02_cell01 successfully altered
cell01: GridDisk RECO_CD_disk03_cell01 successfully altered
cell01: GridDisk RECO_CD_disk04_cell01 successfully altered
cell01: GridDisk RECO_CD_disk05_cell01 successfully altered
cell01: GridDisk RECO_CD_disk06_cell01 successfully altered
cell01: GridDisk RECO_CD_disk07_cell01 successfully altered
cell01: GridDisk RECO_CD_disk08_cell01 successfully altered
cell01: GridDisk RECO_CD_disk09_cell01 successfully altered
cell01: GridDisk RECO_CD_disk10_cell01 successfully altered
cell01: GridDisk RECO_CD_disk11_cell01 successfully altered
cell01: GridDisk RECO_CD_disk12_cell01 successfully altered
cell02: GridDisk DATA_CD_disk01_cell02 successfully altered
cell02: GridDisk DATA_CD_disk02_cell02 successfully altered
cell02: GridDisk DATA_CD_disk03_cell02 successfully altered
cell02: GridDisk DATA_CD_disk04_cell02 successfully altered
cell02: GridDisk DATA_CD_disk05_cell02 successfully altered
cell02: GridDisk DATA_CD_disk06_cell02 successfully altered
cell02: GridDisk DATA_CD_disk07_cell02 successfully altered
cell02: GridDisk DATA_CD_disk08_cell02 successfully altered
cell02: GridDisk DATA_CD_disk09_cell02 successfully altered
cell02: GridDisk DATA_CD_disk10_cell02 successfully altered
cell02: GridDisk DATA_CD_disk11_cell02 successfully altered
cell02: GridDisk DATA_CD_disk12_cell02 successfully altered
cell02: GridDisk RECO_CD_disk01_cell02 successfully altered
cell02: GridDisk RECO_CD_disk02_cell02 successfully altered
cell02: GridDisk RECO_CD_disk03_cell02 successfully altered
cell02: GridDisk RECO_CD_disk04_cell02 successfully altered
cell02: GridDisk RECO_CD_disk05_cell02 successfully altered
cell02: GridDisk RECO_CD_disk06_cell02 successfully altered
cell02: GridDisk RECO_CD_disk07_cell02 successfully altered
cell02: GridDisk RECO_CD_disk08_cell02 successfully altered
cell02: GridDisk RECO_CD_disk09_cell02 successfully altered
cell02: GridDisk RECO_CD_disk10_cell02 successfully altered
cell02: GridDisk RECO_CD_disk11_cell02 successfully altered
cell02: GridDisk RECO_CD_disk12_cell02 successfully altered

6. Verificando o Status e a Disponibilidade dos "Grid Disk" no "ExadataCell Cell01"

CellCLI> list griddisk attributes name, availableTo
         DATA_CD_disk01_cell01   +ASM
         DATA_CD_disk02_cell01   +ASM
         DATA_CD_disk03_cell01   +ASM
         DATA_CD_disk04_cell01   +ASM
         DATA_CD_disk05_cell01   +ASM
         DATA_CD_disk06_cell01   +ASM
         DATA_CD_disk07_cell01   +ASM
         DATA_CD_disk08_cell01   +ASM
         DATA_CD_disk09_cell01   +ASM
         DATA_CD_disk10_cell01   +ASM
         DATA_CD_disk11_cell01   +ASM
         DATA_CD_disk12_cell01   +ASM
         RECO_CD_disk01_cell01   +ASM
         RECO_CD_disk02_cell01   +ASM
         RECO_CD_disk03_cell01   +ASM
         RECO_CD_disk04_cell01   +ASM
         RECO_CD_disk05_cell01   +ASM
         RECO_CD_disk06_cell01   +ASM
         RECO_CD_disk07_cell01   +ASM
         RECO_CD_disk08_cell01   +ASM
         RECO_CD_disk09_cell01   +ASM
         RECO_CD_disk10_cell01   +ASM
RECO_CD_disk11_cell01   +ASM
         RECO_CD_disk12_cell01   +ASM

7. Verificando o Status e a Disponibilidade dos "Grid Disk" no "ExadataCell Cell02"

CellCLI> list griddisk attributes name, availableTo
         DATA_CD_disk01_cell02   +ASM
         DATA_CD_disk02_cell02   +ASM
         DATA_CD_disk03_cell02   +ASM
         DATA_CD_disk04_cell02   +ASM
         DATA_CD_disk05_cell02   +ASM
         DATA_CD_disk06_cell02   +ASM
         DATA_CD_disk07_cell02   +ASM
         DATA_CD_disk08_cell02   +ASM
         DATA_CD_disk09_cell02   +ASM
         DATA_CD_disk10_cell02   +ASM
         DATA_CD_disk11_cell02   +ASM
         DATA_CD_disk12_cell02   +ASM
         RECO_CD_disk01_cell02   +ASM
         RECO_CD_disk02_cell02   +ASM
         RECO_CD_disk03_cell02   +ASM
         RECO_CD_disk04_cell02   +ASM
         RECO_CD_disk05_cell02   +ASM
         RECO_CD_disk06_cell02   +ASM
         RECO_CD_disk07_cell02   +ASM
         RECO_CD_disk08_cell02   +ASM
         RECO_CD_disk09_cell02   +ASM
         RECO_CD_disk10_cell02   +ASM
RECO_CD_disk11_cell02   +ASM
         RECO_CD_disk12_cell02   +ASM

8. Criarumarquivo "cellkey.ora" utilizando a chave de segurançagerada.Copiaro arquivo "cellkey.ora" para dentro do diretório "/etc/oracle/cell/network-config/" em cada servidor do cluster de ASM.

[oracle@exadb01 ~]$ pwd
/home/oracle

[oracle@exadb01 ~]$ touch cellkey.ora
[oracle@exadb01 ~]$ vi cellkey.ora
[oracle@exadb01 ~]$ cat cellkey.ora
key=8804b0e5bb8f6a4d10a0e17843e60c1
asm=+ASM
#realm=my_realm
[oracle@exadb01 ~]$

Copie o diretóriodesejado (/etc/oracle/cell/network-config/)

[oracle@exadb01 ~]$ cpcellkey.ora /etc/oracle/cell/network-config/
[oracle@exadb01 ~]$ cd /etc/oracle/cell/network-config
[oracle@exadb01 network-config]$ chmod 640 cellkey.ora
[oracle@exadb01 network-config]$ vicellkey.ora
[oracle@exadb01 ~]$ catcellkey.ora
key=8804b0e5bb8f6a4d10a0e17843e60c1
asm=+ASM
realm=my_realm

9. Inicializar a instancia de ASM e a Instância de Banco de Dados.

[oracle@exadb01 ~]$ ps -ef | greppmon
oracle   32175  3392  0 06:20 pts/2    00:00:00 greppmon
[oracle@exadb01 ~]$ srvctl start asm
[oracle@exadb01 ~]$ ps -ef | greppmon
oracle   32261     1  0 06:20 ?        00:00:00 asm_pmon_+ASM
oracle   32346  3392  0 06:20 pts/2    00:00:00 greppmon
[oracle@exadb01 ~]$ srvctl start diskgroup -g DATA
[oracle@exadb01 ~]$ srvctl start diskgroup -g RECO
[oracle@exadb01 ~]$ srvctl start database -d xdbvm
[oracle@exadb01 ~]$ ps -ef | greppmon
oracle     423  3392  0 06:24 pts/2    00:00:00 greppmon
oracle   32261     1  0 06:20 ?        00:00:00 asm_pmon_+ASM
oracle   32520     1  0 06:21 ?        00:00:00 ora_pmon_xdbvm
[oracle@exadb01 ~]$

10. Efetuar “Login” na base de dados para validar o inicio corretamente da instância.

[oracle@exadb01 ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 3 06:25:25 2013

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> connect sys/welcome1@xdbvm as sysdba
Connected.
SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE
-------------------- ----------------
READ WRITE           PRIMARY

11. Verificar as chaves das "Células de Exadata"

Exadata Cell Cell01:

CellCLI> list key
+ASM    8804b0e5bb8f6a4d10a0e17843e60c1

    

Exadata Cell Cell02:

CellCLI>listkey
         +ASM    8804b0e5bb8f6a4d10a0e17843e60c1

 


Deiby Gomez é um DBA com vasta experiencia em Oracle ExadataDatabase Machine esoluções de Alta Dipsonibilidade. Deiby frequentemente ministra palestras em importantes eventos Oracle na Guatemala tais como "Oracle Technology Network Tour", "Java Day", "Primer Simposio de Oracle" e em varias Universidades de seu país de residencia (Guatemala). Deiby é o primeiro Oracle ACE da Guatemala. É "Oracle RAC 11g and GridInfraestructureAdministrator", "ExadataDatabase Machine X3 Administrator", "Oracle Linux CertifiedImplementationSpecialist" e "Oracle SOA ImplementationCertifiedExpert".

YenugulaVenkataRavikumar é um DBA commais de 15 anos de experiencia com Oracle e em ambientes de alta disponibilidade (RAC, Data Guard, dentreoutros), tuninge desempenho, migrações, backuperecover, Oracle Exadata X2 e X3, é Expertem sistemas operacionaistais como como AIX, HP-UX e Linux. Jáparticipou como conferencista de Oracle pela India, ode mora atualmente. Obteve o titulo de "Oracle Certified Master (OCM 10g)" em 2009.

David Siqueira DBA desde 2001, atuante no mercado de São Paulo Brasil, trabalhounasprincipaisconsultoriassempre buscando melhorarconhecimentos e agregar valor aos ambientes por ondepassou, é OCP 10 e 11g, OCE SQL Expert, OCE RAC 10g, OCE Exadata Essentials e foinomeado Oracle ACE emDezembro de 2011. Atuacom ambientes de Alta DisponibilidadeOracel RAC 11g, Exadata X2-2 e Administração de Banco de Dados emGeral. Tambémpossuiconhecimentosem sistemas operacionais Oracle VM server e Oracle BusinnesIntelligence.