Skip to content
Cloud8 Logo
  • PRODUCT
  • PRICING
  • SUPPORT
  • CONTACT US
  • LOGIN
  • PRODUCT
  • PRICING
  • SUPPORT
  • CONTACT US
  • LOGIN

Best Practices

  • Best Practices: Custom Rule Notifications via AWS S3
  • Best Practices: Microsoft Teams Support
  • Best Practices: Password and Credential Monitoring
  • AWS Bucket S3 Topic Notification
  • How to integrate Slack into Best Practices
  • How to monitor memory and swap with SSM

Charging

  • AWS account suspension: tips and what to do

Concepts

  • Cloud Control Panel – AWS, Azure, GCP, Huawei and Oracle
  • Cloud server image or template
  • Cost model: pay per use
  • FINOPS: Data Integration and Enhancement Flow (Infographic)
  • Difference between RI Applied vs RI in Cloud8 Panel
  • Security groups
  • Access key
  • Snapshot
  • Additional disks
  • Cloud Computing
  • Comparison: Automation via Cloud8 vs “homemade” automation

Credentials

  • Connecting OCI Providers to Cloud8 – Full Tutorial
  • Best Practices: Enabling user monitoring in Azure
  • Multi-Factor Authentication (MFA) with Cloud8 Panel
  • How to integrate SSO with Azure AD
  • Security credentials for public clouds
  • How to use IAM Role to integrate your security with Cloud8
  • Using Cloud8 with a custom AWS security credential
  • Credential for Huawei Cloud

First Steps

  • Connecting OCI Providers to Cloud8 – Full Tutorial
  • Connecting AWS Providers to Cloud8 – Full Tutorial
  • Onboarding: getting started on Cloud8
  • Cloud8 Users and Profiles
  • How to create an Azure credential to integrate with Cloud8
  • Creating a new Amazon AWS account
  • How to associate your Amazon AWS account with Cloud8
  • Hot to enable cloud cost estimates monitoring
  • How to manage more than one AWS account
  • How to create a GCP Credential to integrate with Cloud8
  • Creating a New Account on Amazon Cloud (AWS)

MSP / Reseller

  • MSP: Configuring markup
  • White label at no additional cost
  • MSP: Configuring costs

Services

  • S3 Lambda Notification Processor (deploy via CLI)
  • Exporting data to Azure Storage Account
  • FinOps: Cost Anomaly Reports and Charts
  • FinOps: Reports, Alerts and Budgets
  • FinOps: Tagged / Untagged
  • FinOps: Tag Sanitization, Compliance and MultiCloud
  • FinOps: Tag Sharing and Prorating
  • FinOps: Reverse API
  • Exporting data to AWS S3 (Bucket)
  • Cloud Task Automations
  • Automated backup of cloud servers
  • How to install the Metricbeat component in OKE
  • How to install Metricbeat component on EKS
  • How to install Metricbeat component on GKE clusters
  • How to install Metricbeat component on AKS
  • GCP Storage Integration
  • How to enable support for ECS / EKS shared costs
  • RDS reports with grouping by ID
  • Add TAGs with CSV file
  • Kubernetes Cost Support
  • Detailed Costs Report
  • Workflow: How to reset tasks periodically
  • How to integrate SSO with Azure AD
  • Cloud aggregator control panel
  • Multiple Users – Multiuser Panel
  • Cloud cost control, alerts and reports
  • Cloud usage statistics
  • Alerts
  • Managers on Cloud8 – Resource management on AWS, Azure and GCP
  • Audit logs
  • ECS / Fargate support on Workflow

Troubleshooting

  • I exported the cloud server usage report. What do the fields mean?
  • I subscribed Amazon and I still can’t access Cloud8
  • How is the cloud cost estimate calculated?
  • I created a security group through the AWS console and it still doesn’t appear in Cloud8
  • Cloud8 and Amazon don’t monitor my cloud server’s memory?
  • Using Cloud8 with a custom AWS security credential

Tutorials

  • S3 Lambda Notification Processor (deploy via CLI)
  • Best Practices: Microsoft Teams Support
  • FinOps: Cost Anomaly Reports and Charts
  • FinOps: Tagged / Untagged
  • FinOps: Tag Sanitization, Compliance and MultiCloud
  • Group data in Pivot Table
  • How to install the Metricbeat component in OKE
  • How to install Metricbeat component on EKS
  • How to install Metricbeat component on GKE clusters
  • How to install Metricbeat component on AKS
  • Workflow: How to reset tasks periodically
  • How to integrate SSO with Azure AD
  • How to configure the Scheduler for script execution on OCI
  • How to access a Windows server in the Amazon AWS cloud
  • How to access a Linux server
  • How to create a cloud server
  • How to configure scheduling for script execution in AWS
  • How to configure scheduling by Tags / Labels
  • Configure vault copy at AWS (cross account) with KMS
  • How to integrate Slack into Best Practices
View Categories
  • Home
  • Docs
  • Best Practices

Best Practices: Custom Rule Notifications via AWS S3

7 min read

How to configure notifications via AWS S3 in custom rules #

As a first step, you need to create an integration between the Cloud8 Platform and an AWS S3 Bucket , as described in the linked document, if you haven’t done so already. After that, follow these steps:

Configure new notification with S3 #

After registering an integration of the “S3 Bucket” type, in “Integrations” on the platform, a synchronization will be made with Best Practices. With this, it will be possible to view a new “S3” type notification in Best Practices, as shown below:

1. Within Best Practices , access “ Global Notifications ”

Cloud8 Global Notifications

2. Select the “ Config Notifications ” tab. The integrated S3 notification will be listed with the name.

Cloud8 Config Notifications

NOTE: Since it is synchronized, it will not be possible to edit or delete the registration. To do this, use the “ Integrations ” screen within the Cloud8 platform.

Configure S3 integration in custom rule notifications #

1. Locate the icon in the image below to open the watering notifications customization screen.

Cloud8 edit notifications icon

2. Select the AWS S3 notification previously registered in the previous step

Cloud8 edit notifications

3. When selecting an AWS S3 notification, the scheduler must be selected as “ Immediately ”.

From this point on, Best Practices will upload the notification JSON files related to the alerts generated by the rule executions to the previously configured S3 Bucket.

Below is an example of the S3 Bucket notification JSON file:

Cloud8 notifications rules sample

Configuring Notification with S3 in Filter Group Notification Customizations #

1. Open the group notification customization screen (as shown in the image)

Cloud8 group notification customization screen

2. Select the previously registered AWS S3 notification

Cloud8 select s3 notification

When selecting an AWS S3 notification, the scheduler must be selected as “ Immediately ”.

From this point on, Best Practices will upload the notification JSON files related to the alerts generated by the rule filter executions to the S3 Bucket, previously configured in step 1.

The file will have the suffix group-filter–.json’. Below is an example of the S3 Bucket notification JSON file:

Cloud8 S3 Bucket Notification JSON File Example

Global Notifications #

Configuration for all providers #

To configure all rules once, simply use the “Global Notifications” menu, as shown in the example below:

Cloud8 global notifications for all providers

Configuration by provider

It is also possible to configure global notifications by provider. To do this, simply click – in the same “ Global Notifications ” menu – the “ All Providers ” option and select the desired provider.

This will produce a file in the Bucket (with each execution of a rule supported by the provider) with the result lines only from the selected provider. The file will have the suffix ‘provider–.json’. See the example:

[image]

AWS S3 Notification – JSON Format File #

File directory structure in AWS S3 bucket #

Best Practices will upload the notification JSON files into the following directory structure in the bucket:

bestpractices/yyyy/MM/dd/rules/
  • bestpractices/ – root directory;
  • yyyy/MM/dd/ – generation subdirectories by year, month and day – date (UTC format);
  • rules/ – subdirectory indicating rules notification files;

Example of file generated in directory structure:

bestpractices/2024/11/12/rules/ecs-container-account-settings-arn-format-disabled-17-36-27_702.json

File structure in JSON format #

providers #

List of providers with rule results. Each item in the list has two fields:

  • id : AWS, Azure, GCP, or OCI provider identifier
  • name : name of the AWS, Azure, GCP or OCI provider

Example:

"providers": [
    {
        "id": "xxxxxxxxxxxx",
        "name": "Provedor 1 (aws)"
    },
    {
        "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
        "name": "Provedor 2 (azure)"
    }
]

reports #

List of rules, results, settings, and unmonitored items that make up the notification. Each item in the list has the following fields:

  • category : rule category
  • product : name of the cloud provider product/service (AWS, Azure, GCP or OCI)
  • id : rule identifier
  • rule : rule name
  • description : rule description
  • instant : date and time of execution in milliseconds
  • executionDateTimeUtc : date and time of rule execution in ISO and UTC
  • headers : name of the columns in the results table

Example :

{
    "category": "Compliance & Availability",
    "product": "ECS - Container",
    "id":
    "ECS_CONTAINER_ACCOUNT_SETTINGS_ARN_FORMAT_DISABLED",
    "rule": "ECS settings with ARN new format disabled",
    "description": "Checks if your ECS effective settings for container, service or task resources with ARN new format is disabled. Notice this settings are obtained using the provided credentials with effective settings on for the API call. For more information, see \t<a href=\"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-account-settings.html#ecs-resource-ids\" target=\"_blank\"> \tAmazon Resource Names (ARNs) and IDs \t",
    "instant": 1731417439624,
    "executionDateTimeUtc": "2024-11-12T13:17:19.624",
    "headers":
    [
        "Region",
        "Enabled for services?",
        "Enabled for container instances?",
        "Enabled for tasks?"
    ],
….
  • changes : details of the changes that occurred in the execution of the rule
    • new : new items that are now being alerted
    • unchanged : items unchanged
    • removed : items removed by filter, manually or because the problem was actually resolved.
  • results : list of items that make up the results table, with the following fields:
    • provider : provider identifier (same id as the providers field detailed above)
    • results : results table, which contains the fields:
      • columns : result items (follow the order of the columns defined in headers)
      • kind : severity identifier of the provider line, with the worst result for it, which can be:
        • DANGER : critical
        • WARN : alert
        • INFO : suggestion
        • CREDENTIAL_ISSUE : Issues with provider credentials
      • identifier : Unique identifier of the result row within the rule in question. Note that this identifier is unique only per rule, and may collide in different rules.

Example :

"changes":
{
    "new": [
        {
            "provider": "212283722463",
            "results": [
                {
                    "columns": [
                        "ap-northeast-2",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "3ff034de2c21a29c45028ca174022320da3dc52806cbc30dbd61a5ed8e13ee8fd61c
611a453acd79da2c7baa9a4554cc7f4d4e59509d1ec3753007bba6dcbe3a"
                },
                {
                    "columns": [
                        "ap-northeast-1",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "2d2d410aec1e6687af5932ce60ddb431a982e69f27a4e5b97fa86bdc7d48694e96e32
8e0c1cae49e4761c12bc1ad4a5a28d1ebd5a991b9122cc13fefe77c963e"
                }
            ]
        }
    ],
    "unchanged": [
        {
            "provider": "445156452954",
            "results": [
                {
                    "columns": [
                        "us-east-1",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "0158bf11f1f79560ee367934350d5b33965ca8711e77352ae7a51c6469b7f7b33e386e627b
6ab300352b96d3f50815174f8150c89a8a7fc785c559037ae78b82"
                },
                {
                    "columns": [
                        "us-west-1",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "ed4025a67ea72b201eeec3d7f02d84603261f99e0d5df9778e309e59c75b7f6f05ed
76bfd98f84af2f3c9db341b084a3bced70e5687b8c70b2b23790301257a5"
                }
            ]
        }
    ],
    "removed": [
        {
            "provider": "212283722463",
            "results": [
                {
                    "columns": [
                        "us-west-2",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "2dca98b5b52ff9bf692822143ee6e26c7c0a347014e6ce5b86dee23c5db117e2c1e01
49eaf7c093cdb7c65e73e926fb3def592868cb8a56aef97365e0846cbc3"
                },
                {
                    "columns": [
                        "us-east-1",
                        "false",
                        "false",
                        "false"
                    ],
                    "kind": "DANGER",
                    "identifier": "a289365994a8004a7db465d383fdf4721c1befbed238c5a8c5657546c300d8b3e1
7adceba75c5b937af24e6550f887136ad34f8b33e00fa34e796647731948af"
                }
            ]
        }
    ]
},
"kind": "DANGER"

conditions #

List of filter settings in the rule, containing the following fields:

  • name : filter name
  • option : name of the field to filter the result
  • operation : operator that will be used when filtering the result
  • value : value to be filtered out of the result

Example :

"conditions": [ 
    {
        "name": "Filter 1",
        "option": "ContainerAccountSettings.region",
        "operation": "=",
        "value": "ap-northeast-1"
    }
],
…
  • kind : rule severity identifier, with the worst result for it, which can be:
    • DANGER : critical
    • WARN : alert
    • INFO : suggestion
    • CREDENTIAL_ISSUE : Issues with provider credentials

Name of the generated file #

The notification files will be generated in a bucket folder as previously standardized.

The generated files are generated according to the following standardization:

Notification by rule: #

[ID da regra]-[HH-mm-ss_SSS].json - horário (UTC);

Exemplo: ecs-container-account-settings-arn-format-disabled-17-36-27_702.json

Notification by rule group: #

[ID da regra]-grou-filter-[ID do group filter]-[HH-mm-ss_SSS].json - horário (UTC);

Exemplo: ecs-container-account-settings-arn-format-disabled-group-filter-1-17-36-27_702.json

Notification (global) by provider: #

[ID da regra]-provider-[ID do provider]-[HH-mm-ss_SSS].json - horário (UTC);

Exemplo: ecs-container-account-settings-arn-format-disabled-provider-123-17-36-27_702.json

NOTE : Each generated file is unique and is not overwritten.


You may want to check these Docs too: #

  • Best Practices: Microsoft Teams Support
  • Best Practices: Password and Credential Monitoring
  • AWS Bucket S3 Topic Notification
  • How to monitor memory and swap with SSM
  • How to integrate Slack into Best Practices
Amazon, AWS, Integration, notification, S3 Bucket
Did this Doc help you?

Share This Article:

  • Facebook
  • X
  • LinkedIn
  • Pinterest
Table of Contents
  • How to configure notifications via AWS S3 in custom rules
    • Configure new notification with S3
    • Configure S3 integration in custom rule notifications
    • Configuring Notification with S3 in Filter Group Notification Customizations
  • Global Notifications
    • Configuration for all providers
  • AWS S3 Notification – JSON Format File
    • File directory structure in AWS S3 bucket
    • File structure in JSON format
      • providers
      • reports
      • conditions
    • Name of the generated file
      • Notification by rule:
      • Notification by rule group:
      • Notification (global) by provider:
Cloud8 Logo
  • Terms of Use
  • About Us
  • FAQ / Support
  • Blog
  • Contact Us
  • Cookies (EU)
  • Terms of Use
  • About Us
  • FAQ / Support
  • Blog
  • Contact Us
  • Cookies (EU)
Globe-americas Facebook Twitter Linkedin Youtube

Disclaimer: AWS, images, and associated services are property of Amazon Web Services Inc. and its affiliates. Azure, images, and associated services are property of Microsoft Corporation. GCP, images, and associated services are property of Google Inc. Huawei, images, and associated services are property of Huawei Technologies Co Ltd. Oracle, images, and associated services are property of Oracle Corporation. Cloud8 Brasil em Português.

Manoel Netto Designer
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}