library
turbot/aws_thrifty

Correct S3 buckets without lifecycle policy

Overview

S3 Buckets without a lifecycle policy will not move objects between storage layers or expire objects, causing them to remain in their initial tier perpetually, this is inefficient and can be costly.

This pipeline allows you to specify a collection of S3 buckets without lifecycle policies and then either send notifications or attempt to perform a predefined corrective action upon the collection.

Whilst it is possible to utilise this pipeline standalone (see below), it is usually called from either:

Run the pipeline

To run this pipeline from your terminal:

flowpipe pipeline run aws_thrifty.pipeline.correct_s3_buckets_without_lifecycle_policy \
--arg 'items=<list({
cred = string
name = string
region = string
title = string
})>'

Use this pipeline

To call this pipeline from your pipeline, use a step:

step "pipeline" "step_name" {
pipeline = aws_thrifty.pipeline.correct_s3_buckets_without_lifecycle_policy
args = {
items = <list({
cred = string
name = string
region = string
title = string
})>
}
}

Params

NameTypeRequiredDescriptionDefault
itemslist({ cred = string name = string region = string title = string })Yes-
policystringYesLifecycle policy to apply to the S3 bucket, if 'apply' is the chosen response.{ "Rules": [ { "ID": "Transition to STANDARD_IA after 90 days", "Status": "Enabled", "Filter": {}, "Transitions": [ { "Days": 90, "StorageClass": "STANDARD_IA" } ] }, { "ID": "Transition to GLACIER after 180 days", "Status": "Enabled", "Filter": {}, "Transitions": [ { "Days": 180, "StorageClass": "GLACIER" } ] }, { "ID": "Transition to DEEP_ARCHIVE after 365 days", "Status": "Enabled", "Filter": {}, "Transitions": [ { "Days": 365, "StorageClass": "DEEP_ARCHIVE" } ] } ] }
notifierstringYesThe name of the notifier to use for sending notification messages.default
notification_levelstringYesThe verbosity level of notification messages to send. Valid options are 'verbose', 'info', 'error'.info
approverslist(string)YesList of notifiers to be used for obtaining action/approval decisions.
[
"default"
]
default_actionstringYesThe default action to use for the detected item, used if no input is provided.notify
enabled_actionslist(string)YesThe list of enabled actions to provide to approvers for selection.
[
"skip",
"apply_policy"
]

Outputs

This pipeline has no outputs.

Tags

category = Cost
class = managed
plugin = aws
service = AWS/S3