Pipeline: 3.6 Ensure rotation for customer-created symmetric CMKs is enabled
Description
AWS Key Management Service (KMS) allows customers to rotate the backing key which is key material stored within the KMS which is tied to the key ID of the customercreated customer master key (CMK). It is the backing key that is used to perform cryptographic operations such as encryption and decryption. Automated key rotation currently retains all prior backing keys so that decryption of encrypted data can take place transparently. It is recommended that CMK key rotation be enabled for symmetric keys. Key rotation can not be enabled for any asymmetric CMK.
Rotating encryption keys helps reduce the potential impact of a compromised key as data encrypted with a new key cannot be accessed with a previous key that may have been exposed. Keys should be rotated every year, or upon event that would result in the compromise of that key.
Remediation
From Console:
- Sign in to the AWS Management Console and open the S3 console at https://console.aws.amazon.com/s3.
- In the left navigation pane, click
Customer-managed keys
. - Select a key where
Key spec = SYMMETRIC_DEFAULT
that does not have automatic rotation enabled. - Select the
Key rotation
tab. - Check the
Automatically rotate this KMS key every year
checkbox. - Click
Save
. - Repeat steps 3–6 for all customer-managed CMKs that do not have automatic rotation enabled.
From Command Line:
- Run the following command to enable key rotation:
aws kms enable-key-rotation --key-id <kms_key_id>
Run the pipeline
To run this pipeline from your terminal:
flowpipe pipeline run aws_cis.pipeline.cis_v400_3_6
Use this pipeline
To call this pipeline from your pipeline, use a step:
step "pipeline" "step_name" { pipeline = aws_cis.pipeline.cis_v400_3_6 }
Params
Name | Type | Required | Description | Default |
---|---|---|---|---|
database | connection.steampipe | Yes | Database connection string. | connection.steampipe.default |
notifier | notifier | Yes | The name of the notifier to use for sending notification messages. | notifier.default |
notification_level | string | Yes | The verbosity level of notification messages to send. Valid options are 'verbose', 'info', 'error'. | info |
approvers | list(notifier) | Yes | List of notifiers to be used for obtaining action/approval decisions. | notifier.default |
Outputs
This pipeline has no outputs.