Add scenario runbooks and documentation updates
Some checks failed
Repo Quality / structure (push) Has been cancelled
Some checks failed
Repo Quality / structure (push) Has been cancelled
This commit is contained in:
79
scenarios/02-shared-app-account/RUNBOOK.md
Normal file
79
scenarios/02-shared-app-account/RUNBOOK.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# Runbook - 02 Shared App Account
|
||||
|
||||
## Objetivo
|
||||
|
||||
Demonstrar que uma conta tecnica compartilhada de aplicacao nao deve ser a fronteira real de autorizacao de dados.
|
||||
|
||||
## Valor De Seguranca
|
||||
|
||||
- Reduz o risco de connection pools com privilegios excessivos.
|
||||
- Permite que o banco avalie o usuario final, e nao apenas a conta tecnica.
|
||||
- Ajuda a proteger aplicacoes web, APIs, BI e agentes que usam contas compartilhadas.
|
||||
|
||||
## Pre-Requisitos
|
||||
|
||||
- Banco Oracle AI Database compativel com Oracle Deep Data Security.
|
||||
- SQLcl ou SQL*Plus.
|
||||
- Entendimento de qual identidade final sera propagada pela aplicacao.
|
||||
|
||||
## Antes - Ambiente Vulneravel
|
||||
|
||||
1. Limpe o cenario:
|
||||
|
||||
```sql
|
||||
@scenarios/02-shared-app-account/sql/99_reset.sql
|
||||
```
|
||||
|
||||
2. Crie a tabela, dados e conta tecnica:
|
||||
|
||||
```sql
|
||||
@scenarios/02-shared-app-account/sql/00_schema.sql
|
||||
@scenarios/02-shared-app-account/sql/01_seed_data.sql
|
||||
@scenarios/02-shared-app-account/sql/02_identities.sql
|
||||
```
|
||||
|
||||
3. Simule uma aplicacao ou API usando a conta `DDS_APP` para consultar todos os pedidos:
|
||||
|
||||
```sql
|
||||
@scenarios/02-shared-app-account/sql/04_test_queries.sql
|
||||
```
|
||||
|
||||
## Resultado Esperado Antes
|
||||
|
||||
- A conta compartilhada consegue enxergar pedidos de todos os vendedores e regioes.
|
||||
- Campos como `MARGIN` podem ficar expostos se a aplicacao gerar SQL incorreto.
|
||||
- Um bug, prompt injection ou endpoint abusado pode consultar mais dados do que o usuario deveria ver.
|
||||
|
||||
## Depois - Aplicando Deep Data Security
|
||||
|
||||
1. Aplique data grants por papel de negocio:
|
||||
|
||||
```sql
|
||||
@scenarios/02-shared-app-account/sql/03_data_grants.sql
|
||||
```
|
||||
|
||||
2. Execute a mesma query no contexto de `alice` e `bruno`:
|
||||
|
||||
```sql
|
||||
@scenarios/02-shared-app-account/sql/04_test_queries.sql
|
||||
```
|
||||
|
||||
## Resultado Esperado Depois
|
||||
|
||||
- `alice` ve somente seus pedidos e nao ve `margin`.
|
||||
- `bruno` ve pedidos LATAM com acesso gerencial.
|
||||
- A conta tecnica deixa de ser a unica fronteira de seguranca.
|
||||
|
||||
## Evidencias Para Demo
|
||||
|
||||
- Comparacao antes/depois do mesmo SQL.
|
||||
- Explicacao do uso de data roles.
|
||||
- Diagrama simples: usuario final -> app -> banco -> data grants.
|
||||
|
||||
## Referencias Oficiais
|
||||
|
||||
- Oracle Deep Data Security Guide: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/index.html
|
||||
- Fine-Grained Data Authorization: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/fine-grained-data-authorization.html
|
||||
- Create Data Grants: https://docs.oracle.com/en/database/oracle/oracle-database/26/ddscg/create-data-grants.html
|
||||
- End-User Security Contexts: https://docs.oracle.com/en/database/oracle/oracle-database/26/refrn/DBA_END_USER_SECURITY_CONTEXTS.html
|
||||
|
||||
Reference in New Issue
Block a user