Search
Close this search box.

Notificação por tópico do AWS Bucket S3

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 #

CLoud8 - Nova Integração

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.

Cloud8 Nova Notificação com S3

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 o “Agendador” 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.
Cloud8 Configuração de Notificação com S3 em Configurações de Relatórios no Melhores Práticas

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.

Cloud8 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:

Cloud8 Cloud8 exemplo do Bucket S3 cadastrado com prefixo, e com os arquivos de relatórios.

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 Savings",
  "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 Savings",
    "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.