Profile Applicability:

  • Level 1

Description:

Amazon Redshift is a fully managed data warehouse service that helps users run complex queries on large datasets. Automatic Version Upgrade is a feature in Amazon Redshift that automatically applies updates to your cluster's version when new versions of the Redshift engine are available.

By enabling Automatic Version Upgrade, you ensure that your cluster is always running the latest, most secure, and feature-rich version of Amazon Redshift without the need for manual intervention. This reduces the risk of running outdated software with known vulnerabilities and ensures your cluster benefits from improvements in performance, scalability, and security.

Rationale:

  • Security: Automatic version upgrades ensure that the latest security patches and updates are applied to your Redshift cluster without manual intervention.

  • Improved Performance: New versions often come with performance optimizations, bug fixes, and new features. Automatic upgrades allow your cluster to benefit from these improvements.

  • Compliance: Running the latest version of Redshift ensures compliance with best practices and industry regulations by maintaining up-to-date software.

  • Operational Efficiency: Automating the upgrade process reduces administrative overhead, freeing up time for other critical tasks.

Impact:

Pros:

  • Reduced Risk: Automatically applying the latest updates ensures that your Redshift cluster is protected from known vulnerabilities.

  • Improved Features and Performance: New versions may bring enhanced performance and new features that improve the efficiency of your Redshift workloads.

  • Lower Administrative Overhead: Automatic upgrades reduce the manual effort involved in keeping Redshift up to date.

  • Better Compliance: Ensures that your cluster complies with security and performance best practices.

Cons:

  • Downtime: Automatic upgrades may require brief periods of downtime while the cluster is being upgraded, which could impact the availability of services.

  • Compatibility: New versions may introduce changes that could affect the compatibility of your existing workloads or applications.

  • Testing Requirements: It’s recommended to test major version upgrades in a non-production environment before applying them to production.

Default Value:

By default, Amazon Redshift does not enable automatic version upgrades. You must manually enable this feature when setting up the cluster or modify the cluster’s settings to enable automatic upgrades.

Pre-requisite:

  • AWS IAM Permissions:

    • redshift:DescribeClusters

    • redshift:ModifyCluster

    • redshift:CreateCluster

  • AWS CLI installed and configured.

  • An active Redshift cluster that can be modified.

  • A configured maintenance window for the cluster to apply updates without disrupting services.

Remediation

Test Plan:

Using AWS Console:

  1. Sign in to the AWS Management Console.

  2. Navigate to Amazon Redshift under Services.

  3. In the Redshift Dashboard, select the cluster you want to check.

  4. Under the Cluster Properties, find the Cluster Maintenance section and look for the Auto Version Upgrade setting:

    • If Automatic Version Upgrade is enabled, it will show as Enabled.

    • If Automatic Version Upgrade is disabled, you will need to enable it manually.

  5. To enable Automatic Version Upgrade, click Modify Cluster and ensure the Auto Version Upgrade setting is turned on.

  6. Save the changes to apply the new setting.

Using AWS CLI:

To check if Automatic Version Upgrade is enabled for a Redshift cluster, run:

aws redshift describe-clusters --query 'Clusters[*].{ClusterId:ClusterIdentifier,AutoVersionUpgrade:AutoVersionUpgrade}'

If the AutoVersionUpgrade is false, enable automatic version upgrade by running:

aws redshift modify-cluster --cluster-identifier <cluster-id> --auto-version-upgrade

To confirm the change, run:

aws redshift describe-clusters --cluster-identifier <cluster-id> --query 'Clusters[*].{ClusterId:ClusterIdentifier,AutoVersionUpgrade:AutoVersionUpgrade}'

Implementation Steps:

Using AWS Console:

  1. Log in to the AWS Management Console and navigate to Amazon Redshift.

  2. In the Redshift Dashboard, select the Redshift Cluster you want to modify.

  3. Under Cluster Properties, check the Auto Version Upgrade setting.

  4. If Automatic Version Upgrade is disabled, click Modify.

  5. Enable Auto Version Upgrade and save the changes. The cluster will automatically apply version updates during the next maintenance window.

  6. Verify that the change has been applied and that automatic version upgrades are now enabled.

Using AWS CLI:

To enable Automatic Version Upgrade, run the following command:

aws redshift modify-cluster --cluster-identifier <cluster-id> --auto-version-upgrade

To confirm that Automatic Version Upgrade has been enabled, run:

aws redshift describe-clusters --cluster-identifier <cluster-id> --query 'Clusters[*].{ClusterId:ClusterIdentifier,AutoVersionUpgrade:AutoVersionUpgrade}'

Backout Plan:

Console Process

  1. Go to the Amazon Redshift Console:

    • Open the Amazon Redshift console.

    • Select your cluster from the list.

  2. Check Version Upgrade Setting:

    • In the cluster details, look for the Allow Version Upgrade setting under Cluster Properties.

    • If it’s enabled, automatic upgrades are allowed.

CLI Process

Describe the Cluster:

aws redshift describe-clusters --cluster-identifier <cluster-name>

  1. Check the Output:

    • Look for the AllowVersionUpgrade field in the output.

    • If it says true, automatic version upgrades are enabled.

Note :

  • Testing Upgrades: It is advisable to test major version upgrades in a staging environment before enabling them on production clusters to avoid disruptions.

  • Scheduled Maintenance: The upgrade may occur during the cluster’s maintenance window, so it is important to set a maintenance window that does not disrupt critical operations.

References:

CIS Controls Mapping:

Version

Control ID

Control Description

IG1

IG2

IG3

v8

3.4

Encrypt Data on End-User Devices – Ensure data encryption during file system access.

v8

6.7

Implement Application Layer Filtering and Content Control – Ensure appropriate content filtering is applied to sensitive files.

v8

6.8

Define and Maintain Role-Based Access Control – Implement and manage role-based access for file systems.

v8

14.6

Protect Information Through Access Control Lists – Apply strict access control to file systems.