Access Logging Guardrails
Overview
Access logging guardrails allow administrators to enable and store access logging information for cloud resources. Access logs are great to help understand the nature of requests to a particular resource, though it must be noted that they are often not guaranteed delivery. From a best practices security standpoint, it is almost always recommended to have access logging configured if there is an option to do so.
Turbot Access Logging policies can be found directly under the service in the hierarchy:
{Provider} > {service} > {resource} > Access Logging
AWS > S3 > Bucket > Access Logging
AWS > EC2 > Application Load Balancer > Access Logging
AWS > EC2 > Classic Load Balancer > Access Logging
AWS > EC2 > Network Load Balancer > Access Logging
Below is the list of allowed values for a generic Access Logging policy. This is not comprehensive as different resource types might have slightly different verbage:
Skip
Check: Disabled
Check: Enabled
Check: Enabled to Access Logging > Bucket
Enforce: Disabled
Enforce: Enabled to Access Logging > Bucket
The Access Logging guardrail has a number of policy sub-settings to determine what Turbot is checking for. The format of these policy types is {Provider} > {service} > {resource} > Access Logging > {Items}
. For example:
{Provider} > {service} > {resource} > Access Logging > Bucket
{Provider} > {service} > {resource} > Access Logging > Key Prefix
Policy Types Description
Policy | Description |
---|---|
{Provider} > {service} > {resource} > Audit Logging |
Allows you to check or enforce access logging requirement for the resource. |
{Provider} > {service} > {resource} > Audit Logging > Bucket |
The name of a S3 bucket to which the resource access logs is stored. |
{Provider} > {service} > {resource} > Audit Logging > Key Prefix |
Define a folder (optional) inside S3 bucket to which the resource access logs is stored. |
Notes:
- The
AWS > S3 > Bucket > Access Logging
control will skip any buckets that are created as part of theAWS > Turbot > Logging > Bucket
stack. - For S3 access logs, the target bucket must be in the same region as the source bucket.
- Server access logs are delivered to the target bucket by a delivery account called the Log Delivery group. The S3 log delivery group must have access to
write objects
andread bucket ACL
. - Similarly for EC2 load balancers, the bucket must have proper access granted. AWS provides documentation for Application Load Balancers (ALB), Network Load Balancers (NLB), and Classic Load Balancers for prerequisite steps prior to enabling Access Logging.
- For more details refer Enabling Amazon S3 server access logging
- Access log requests are delivered on a best-effort basis. AWS recommends that you use access logs to understand the nature of the requests, not as a complete accounting of all requests. It is good to keep this in mind when dealing with access logging in other cloud providers, too.
Access Logging for Turbot Managed Buckets
Turbot provides policies to allow the automatic creation of logging buckets for use in services that require them. Turbot logging bucket creation is managed by a stack, AWS > Turbot > Logging > Bucket
, and is targeted at AWS regions. For more information, refer Stacks and Configured guardrail.
The Turbot Access Logging guardrail has a number of policy sub-settings to determine the attributes of the access logging check. The format of these policy types is {Provider} > Turbot > Logging > Bucket > Access Logging > {Items}
:
{Provider} > Turbot > Logging > Bucket > Access Logging
{Provider} > Turbot > Logging > Bucket > Access Logging > Bucket
{Provider} > Turbot > Logging > Bucket > Access Logging > Key Prefix
Example family of policies:
AWS > Turbot > Logging > Bucket > Access Logging
AWS > Turbot > Logging > Bucket > Access Logging > Bucket
AWS > Turbot > Logging > Bucket > Access Logging > Key Prefix
Example policy values:
# AWS > Turbot > Logging > Bucket > Access Logging - Disabled - Enabled
Policy | Description |
---|---|
{Provider} > Turbot > Logging > Bucket > Access Logging |
Allows you to enable or disable access logging requirement for the services. |
{Provider} > Turbot > Logging > Bucket > Access Logging > Bucket |
The name of a S3 bucket to which the services access logs is stored. |
{Provider} > Turbot > Logging > Bucket > Access Logging > Key Prefix |
Define a folder(Optional) inside S3 bucket to which the services access logs is stored. |
Note:
- Server access logs are delivered to the target bucket by a delivery account called the Log Delivery group. The S3 log delivery group must have access to
write objects
andread bucket ACL
.