- 1. Cadastro de integração com AWS Bucket S3
- 2. Nova Notificação com S3 no Melhores Práticas
- 3. Configuração de Notificação com S3 em Configurações de Relatórios no Melhores Práticas
- 4. Integração de Relatórios do Melhores Práticas (JSON / DETAILED)
- 5. Integração de Relatórios do Melhores Práticas (JSON / SUMMARIZED)
A integração de notificação por tópico do S3 Bucket da AWS é possível dentro da Plataforma Cloud8. Basta seguir os seguintes passos abaixo:
1. Cadastro de integração com AWS Bucket S3 #
- Se você ainda não configurou uma integração com um Bucket S3 que deseja usar, siga esse link com a explicação de como fazer isso.
2. Nova Notificação com S3 no Melhores Práticas #
Após cadastrar uma integração do tipo “Bucket S3”, em “Integrations” na plataforma, uma
sincronização será feita com o Melhores Práticas. Com isto, será possível visualizar uma nova notificação do tipo “S3” no Melhores Práticas, conforme abaixo:
- No Painel Cloud8, acesse a aba Melhores Práticas
- Dentro do Melhores Práticas, clique no botão “Notificações Globais”
- Selecione a aba “Configurar Notificações”. Será listado a notificação S3 integrada com o nome.
NOTA: Como está sincronizado, não será possível editar ou excluir o cadastro. Para isto utilize a tela de “Integrations” dentro da plataforma do Cloud8.
3. Configuração de Notificação com S3 em Configurações de Relatórios no Melhores Práticas #
- Acessando a aba Melhores Práticas, clique no botão Relatórios, em seguida selecione a aba Configurações;
- No campo “Notificação“, selecionar a notificação cadastrada no Passo 1;
- Selecione em “Automações” o item desejado para esta configuração;
- A seleção de Provedor é opcional;
- Escolha o formato que deseja gerar o relatório: PDF (padrão) ou JSON;
- Defina o nível de detalhamento do relatório no campo “Versão“. A versão padrão é “detalhado”;
- Para finalizar o cadastro, basta salvar.
Ao selecionar um Provedor, é possível determinar o nome como Prefixo. Alternativamente você pode selecionar um prefixo Customizado e escrever o que preferir.
A partir deste ponto, o Melhores Práticas irá fazer os uploads dos arquivos conforme os relatórios forem sendo gerados (tanto em PDF como em JSON). Abaixo temos um exemplo do Bucket S3 cadastrado acima, e com os arquivos de relatórios.
Se você definir um Prefixo, os arquivos de relatório aparecem dessa forma:
4. Integração de Relatórios do Melhores Práticas (JSON / DETAILED) #
Estrutura do formato JSON #
providers: #
Lista dos provedores do relatório gerado. Cada item da lista possui dois campos:
- id: identificador do provedor AWS ou Azure
- name: nome do provedor AWS ou Azure
Exemplo:
"providers": [
{
"id": "xxxxxxxxxxxx",
"name": "Provedor 1 (AWS)"
},
{
"id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"name": "Provedor 2 (Azure)"
}
]
Reports: #
Lista de regras, resultados, configurações e itens não monitorados que compõem o relatório. Cada item da lista possui os seguintes campos:
- category: categoria da regra
- product: nome do produto / serviço do cloud provider (AWS ou Azure)
- id: identificador da regra
- rule: nome da regra
- description: descrição da regra
- instant: data e hora da execução em milisegundos
- headers: nome das colunas da tabela de resultados
Exemplo:
{
"category": "Cost Optimization",
"product": "RDS - Database",
"id": "OLD_DATABASE_SNAPSHOTS",
"rule": "[Unused Resource] Old Database Snapshots",
"instant": 1643120438000,
"headers": [
"Region",
"Snapshot",
"Name",
"Days"
]
...
results: #
Lista de itens que compõem a tabela de resultados, com os seguintes campos:
- provider: identificador do provedor (mesmo id do campo providers detalhado acima)
- results: tabela de resultados, que contém os campos:
- columns: itens de resultados (seguem a ordem das colunas definidos em headers)
- kind: identificador de severidade da linha do provedor, com o pior resultado para ele, podendo ser:
- DANGER: crítico
- WARN: alerta
- INFO: sugestão
- SUCCESS: sucesso
- CREDENTIAL_ISSUE: problemas com credenciais do provedor
Exemplo:
"results": [
{
"provider": "xxxxxxxxxxxx",
"results": [
{
"columns": [
"us-east-1",
"arn:aws:rds:us-east-1:xxxxxxxxxxxx:snapshot:public-database-snapshot",
"public-database-snapshot",
"272"
],
"kind": "WARN"
}
]
}
],
...
conditions: #
Lista de configurações de filtros na regra, contendo os seguintes campos:
- name: nome do filtro
- option: nome do campo para filtrar o resultado
- operation: operador que será usado ao filtrar o resultado
- value: valor que será filtrado no resultado
Exemplo:
"conditions": [
{
"name": "Manual snapshots older than 180 days",
"option": "DatabaseSnapshot.name",
"operation": "=",
"value": "public-database-snapshot"
},
{
"name": "Manual snapshots older than 180 days",
"option": "DatabaseSnapshot.days",
"operation": ">=",
"value": "180"
}
]
...
excludes: #
Lista de itens selecionados pelo usuário que não serão monitorados na regra:
- comments: comentário do item
- providers: lista dos provedores e itens que não serão monitorados, que contém os seguintes campos:
- provider: identificador do provedor
- excludes: lista de itens não monitorados, que contém os campos:
- columns: itens de resultados (seguem a ordem das colunas definidos em headers)
Exemplo:
"excludes": [
{
"comments": "não monitorar este item",
"providers": [
{
"provider": "xxxxxxxxxxxx",
"excludes": [
{
"columns": [
"us-east-1",
"arn:aws:rds:us-east-1:xxxxxxxxxxxx:snapshot:public-database-snapshot",
"public-database-snapshot",
"273"
]
}
]
}
]
}
],
...
kind: #
Identificador de severidade da regra, com o pior resultado para ela, podendo ser:
- DANGER: crítico
- WARN: alerta
- INFO: sugestão
- SUCCESS: sucesso
- CREDENTIAL_ISSUE: problemas com credenciais do provedor
Nome do arquivo gerado #
Os arquivos gerados seguem o seguinte padrão de nome:
- Código do cliente
- Código do usuário
- Código configuração do relatório
- Data e hora de geração (formato YYYY_MM_DDTHH_MM_SSZ)
- Extensão do arquivo (formato .pdf ou .json)
Exemplo:
report_1_31_1144_2022_01_26T12_11_02Z
Sendo:
report_[código cliente]_[código do usuário]_[código configuração do relatório]_[YYYY_MM_DDTHH_MM_SSZ]
NOTA: Cada arquivo gerado é único, e não é sobrescrito.
5. Integração de Relatórios do Melhores Práticas (JSON / SUMMARIZED) #
Estrutura do formato JSON #
providers: #
Lista dos provedores do relatório gerado. Cada item da lista possui dois campos:
- id: identificador do provedor AWS ou Azure
- name: nome do provedor AWS ou Azure
Exemplo:
"providers": [
{
"id": "xxxxxxxxxxxx",
"name": "Provedor 1 (aws)"
},
{
"id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"name": "Provedor 2 (azure)"
}
]
Reports: #
Lista de regras, resultados, configurações e itens não monitorados que compõem o relatório. Cada item da lista possui os seguintes campos:
- category: categoria da regra
- product: nome do produto / serviço do cloud provider (AWS ou Azure)
- id: identificador da regra
- rule: nome da regra
- instant: data e hora da execução em milissegundos
- monthlySavings: total estimado de economia (quando aplicável)
- headers: fixo “Affected entries” – coluna de quantidade de itens reportados
Exemplo:
{
{
"category": "Cost Optimization",
"product": "EC2 / Virtual Machines - Compute",
"level": "Improvement",
"id": "COMPUTE_OPTIMIZER_EC2_INSTANCES_RECOMMENDATIONS",
"rule": "Compute Optimizer recommendations for EC2 instances",
"instant": 1672455600000,
"monthlySavings": "$0.88",
"headers": [
"Affected entries"
],
...
results: #
Lista de itens que compõem a tabela de resultados, com os seguintes campos:
- provider: identificador do provedor (mesmo id do campo providers detalhado acima)
- results: tabela de resultados, que contém os campos:
- columns: quantidade de itens reportados
Exemplo:
"results": [
{
"provider": "xxxxxxxxxxxx",
"results": [
{
"columns": [
2
]
}
]
}
]
...
Nome do arquivo gerado #
Os arquivos gerados com a versão resumida seguem a seguinte padrão de nome:
- Código do cliente
- Código do usuário
- Código configuração do relatório
- Versão do relatório (summarized)
- Data e hora de geração (formato YYYY_MM_DDTHH_MM_SSZ)
- Extensão do arquivo (formato .pdf ou .json)
Exemplo:
report_1_31_1144_summarized_2022_01_26T12_11_02Z
Sendo:
report_[código cliente]_[código do usuário]_[código configuração do relatório]_summarized_[YYYY_MM_DDTHH_MM_SSZ]
NOTA: Cada arquivo gerado é único, e não é sobrescrito.