Nova pagina docs/10-carga-cmdb-vulnerabilidades.html documentando como filtrar e mapear novas cargas de CMDB (ServiceNow) e vulnerabilidades (Tenable) pra manter o ambiente com dados exclusivos da AM/PM - o export bruto do grupo Ultrapar traz Ipiranga/Ultrapar/Iconic misturados, e a coluna "company"/"empresa" do export nao e confiavel (~40% das linhas marcadas AMPM tinham nome de servidor de outra empresa); o criterio usado e o prefixo do nome do servidor (AM...). Inclui os dois templates finais ja sanitizados e com cabecalho mapeado pro formato esperado pelos perfis de carga do APEX (DL_TECH_CMDB_V1 e DL_TECH_VULNERABILIDADE_V2): Artefatos/template_limpo_ampm/*_AMPM.xlsx. .gitignore atualizado pra nunca versionar os exports brutos/intermediarios (contem dados reais de outras empresas do grupo) - so os *_AMPM.xlsx finais sao rastreados. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
115 lines
8.7 KiB
HTML
115 lines
8.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="pt-BR">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>ampmInsights · Pré-requisitos & credenciais</title>
|
|
<meta name="description" content="Checklist de pré-requisitos e passo a passo para criar a chave de API OCI usada pelo ampmInsights.">
|
|
<link rel="stylesheet" href="assets/main.css">
|
|
</head>
|
|
<body>
|
|
<div class="layout">
|
|
<aside class="sidebar">
|
|
<div class="brand">
|
|
<span class="oracle">ORACLE</span>
|
|
<span class="name">ampmInsights</span>
|
|
</div>
|
|
<button class="menu-toggle" type="button">Menu ☰</button>
|
|
<div class="kicker">Documentação V1 · AM/PM</div>
|
|
<ul class="nav-list">
|
|
<li><a class="" href="index.html"><span class="step-no">1</span>Visão geral</a></li>
|
|
<li><a class="" href="02-arquitetura.html"><span class="step-no">2</span>Arquitetura</a></li>
|
|
<li><a class="active" href="03-pre-requisitos-credenciais.html"><span class="step-no">3</span>Pré-requisitos & credenciais</a></li>
|
|
<li><a class="" href="04-passo-a-passo-banco.html"><span class="step-no">4</span>Passo a passo: banco de dados</a></li>
|
|
<li><a class="" href="05-passo-a-passo-apex.html"><span class="step-no">5</span>Passo a passo: aplicação APEX</a></li>
|
|
<li><a class="" href="06-validacao-testes.html"><span class="step-no">6</span>Validação & testes</a></li>
|
|
<li><a class="" href="07-seguranca-boas-praticas.html"><span class="step-no">7</span>Segurança & boas práticas</a></li>
|
|
<li><a class="" href="08-glossario-roadmap.html"><span class="step-no">8</span>Glossário & roadmap</a></li>
|
|
<li><a class="" href="09-operacao-observabilidade.html"><span class="step-no">9</span>Operação & observabilidade</a></li>
|
|
<li><a class="" href="10-carga-cmdb-vulnerabilidades.html"><span class="step-no">10</span>Carga: CMDB & Vulnerabilidades</a></li>
|
|
</ul>
|
|
<div class="sidebar-footer">
|
|
Vulnerability & Audit AI Insights<br>
|
|
Oracle AI Database 26ai · AI Vector Search<br>
|
|
Versão V1 · ambiente reprodutível do cliente
|
|
</div>
|
|
</aside>
|
|
<main class="content">
|
|
<p class="page-kicker">Antes de começar</p>
|
|
<h1>Pré-requisitos e criação de credenciais</h1>
|
|
<p class="lede">Nenhuma habilidade prévia é assumida: este é o roteiro completo para gerar, do zero, tudo que os scripts pedem como <SUBSTITUA_...>.</p>
|
|
|
|
<h2>Checklist de pré-requisitos</h2>
|
|
<div class="grid">
|
|
<div class="card"><h4>Autonomous Database 26ai</h4><p>Provisionado (ATP/ADW), com acesso ADMIN e AI Vector Search disponível.</p></div>
|
|
<div class="card"><h4>Acesso ao Console OCI</h4><p>Usuário com permissão para criar API Signing Key no compartimento correto.</p></div>
|
|
<div class="card"><h4>Política IAM</h4><p>Uso do Generative AI e leitura de objetos no bucket do modelo ONNX (se for usar).</p></div>
|
|
<div class="card"><h4>Região com Generative AI</h4><p>Confirme que a região do seu tenancy oferece o OCI Generative AI (ex.: us-chicago-1 ou sa-saopaulo-1, conforme disponibilidade).</p></div>
|
|
<div class="card"><h4>Cliente SQL</h4><p>Database Actions (SQL Worksheet), SQL Developer ou SQLcl para rodar os scripts.</p></div>
|
|
<div class="card"><h4>Workspace APEX</h4><p>Um workspace disponível (ou permissão para criar um) para instalar a aplicação.</p></div>
|
|
</div>
|
|
|
|
<div class="callout info">
|
|
<div class="callout-title">Você preenche cada valor uma única vez</div>
|
|
<p>Todo OCID/região/bucket coletado nesta página é digitado <strong>uma única vez</strong>, na
|
|
tabela de configuração criada na Seção 2 do <code>01_ampminsights_db_setup.sql</code>. Os blocos
|
|
seguintes do script (credencial, modelo ONNX, SELECT AI) leem esses valores automaticamente — você
|
|
não precisa repetir nenhum OCID em vários lugares do arquivo.</p>
|
|
</div>
|
|
|
|
<h2>Passo a passo: criar a chave de API da OCI</h2>
|
|
<p>Esta chave autentica o banco de dados para chamar o OCI Generative AI (e, opcionalmente, o Object
|
|
Storage). É o único pré-requisito "manual" fora do banco de dados.</p>
|
|
<ol class="steps">
|
|
<li><h4>Abrir "User settings"</h4><p>No Console OCI, clique no seu avatar/usuário (canto superior direito) e selecione "User settings" — ou peça a um administrador OCI para gerar a chave para o usuário/service account que a aplicação vai usar.</p></li>
|
|
<li><h4>Adicionar API key</h4><p>No menu lateral, clique em "API keys" e depois em "Add API key".</p></li>
|
|
<li><h4>Gerar o par de chaves</h4><p>Selecione "Generate API key pair", clique em "Download private key" (baixa um arquivo <code>.pem</code>) e depois em "Add".</p></li>
|
|
<li><h4>Guardar os 4 valores</h4><p>A tela final mostra um "Configuration file preview" com <code>user</code>, <code>fingerprint</code>, <code>tenancy</code> e <code>region</code>. Guarde esses 4 valores — eles vão para a tabela de configuração (Seção 2 do script 1).</p></li>
|
|
<li><h4>Obter o OCID do compartimento</h4><p>Identity & Security → Compartments → abra o compartimento do banco → copie o OCID no topo da página.</p></li>
|
|
<li><h4>Obter o namespace do Object Storage</h4><p>Console OCI → Storage → Buckets → o "Namespace" aparece no topo da página, independente de qual bucket você abrir. Só necessário se for usar o modelo ONNX (Seção 4 do script 1).</p></li>
|
|
<li><h4>Copiar o conteúdo da chave privada</h4><p>Abra o arquivo <code>.pem</code> em um editor de texto simples e copie todo o conteúdo, incluindo as linhas <code>BEGIN/END PRIVATE KEY</code> e as quebras de linha originais. Este é o único valor que <strong>não</strong> vai para a tabela de configuração — ele é colado direto no bloco da Seção 3, na hora de criar a credencial.</p></li>
|
|
</ol>
|
|
|
|
<div class="callout danger">
|
|
<div class="callout-title">Trate a chave privada como uma senha</div>
|
|
<p>Não envie o arquivo <code>.pem</code> por e-mail ou chat, não o suba para repositórios de código
|
|
e restrinja a política IAM do usuário ao mínimo necessário. Depois de criar a credencial no banco
|
|
(script 1, Seção 3), o arquivo local pode ser apagado com segurança — o Autonomous Database guarda a
|
|
chave de forma criptografada e ela não aparece em nenhuma consulta.</p>
|
|
</div>
|
|
|
|
<h2>Exemplo de política IAM mínima</h2>
|
|
<div class="code-block">
|
|
<div class="code-bar">
|
|
<span class="code-label">Política IAM</span>
|
|
<button class="copy-btn" type="button">Copiar</button>
|
|
</div>
|
|
<pre><code class="lang-sql">Allow group ampminsights-app to use generative-ai-family in compartment <nome-do-compartimento>
|
|
Allow group ampminsights-app to read objects in compartment <nome-do-compartimento> where target.bucket.name='<seu-bucket-onnx>'</code></pre>
|
|
</div>
|
|
|
|
<h2>Onde cada valor da tabela de configuração é preenchido</h2>
|
|
<div class="table-wrap">
|
|
<table>
|
|
<tr><th>Campo (PARAM_NAME)</th><th>Onde obter</th></tr>
|
|
<tr><td><code>EMBEDDING_COMPARTMENT</code></td><td>Passo 5 acima (OCID do compartimento do banco).</td></tr>
|
|
<tr><td><code>OCI_TENANCY_OCID</code></td><td>Passo 4 acima (campo <code>tenancy</code>).</td></tr>
|
|
<tr><td><code>OCI_USER_OCID</code></td><td>Passo 4 acima (campo <code>user</code>).</td></tr>
|
|
<tr><td><code>OCI_FINGERPRINT</code></td><td>Passo 4 acima (campo <code>fingerprint</code>).</td></tr>
|
|
<tr><td><code>OCI_REGION</code></td><td>Passo 4 acima (campo <code>region</code>), ex.: <code>sa-saopaulo-1</code>.</td></tr>
|
|
<tr><td><code>OS_NAMESPACE</code></td><td>Passo 6 acima. Só necessário se for usar o modelo ONNX (Seção 4 do script 1).</td></tr>
|
|
<tr><td><code>OS_BUCKET</code></td><td>Nome que você escolher para o bucket que vai criar na Seção 4 do script 1.</td></tr>
|
|
<tr><td><code>GENAI_REGION</code></td><td>Região do OCI Generative AI (Seção 5+) — pode ser diferente de <code>OCI_REGION</code>. Padrão <code>us-chicago-1</code>; troque se sua tenancy não alcançar essa região (ver <a href="09-operacao-observabilidade.html">Operação & observabilidade</a>).</td></tr>
|
|
<tr><td><code>AI_LOG_RETENTION_DAYS</code></td><td>Preenchido automaticamente (90 dias) — dias de retenção do log de chamadas de IA/embeddings.</td></tr>
|
|
<tr><td>Chave privada (.pem)</td><td>Passo 7 acima — colada direto na Seção 3 do script 1, nunca na tabela de configuração.</td></tr>
|
|
<tr><td>Credenciais do export APEX (<code>apex_cred</code>, <code>RAG_CRED</code>, compartimento no remote server <code>apex_genai</code>)</td><td>Mesmos valores de tenancy/compartimento acima — preenchidos na importação do app (ver <a href="05-passo-a-passo-apex.html">Passo a passo: aplicação APEX</a>).</td></tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="pillnav"><a class="prev" href="02-arquitetura.html">← Arquitetura</a><a class="next" href="04-passo-a-passo-banco.html">Passo a passo: banco de dados →</a></div>
|
|
</main>
|
|
</div>
|
|
<script src="assets/main.js"></script>
|
|
</body>
|
|
</html>
|