Cloud Defense Logo

Products

Solutions

Company

Book A Live Demo

Rule: S3 Buckets Should Have Server-Side Encryption Enabled

This rule ensures that S3 buckets have server-side encryption enabled for enhanced security.

RuleS3 buckets should have server-side encryption enabled
FrameworkPCI v3.2.1
Severity
Medium

Rule Description

The rule requires that all S3 buckets should have server-side encryption enabled to comply with the Payment Card Industry Data Security Standard (PCI DSS) version 3.0. This policy helps protect sensitive data stored in S3 buckets by encrypting it at rest, ensuring confidentiality and compliance with industry security standards.

Troubleshooting Steps

If server-side encryption is not enabled for an S3 bucket, follow these troubleshooting steps:

  1. 1.

    Verify AWS Identity and Access Management (IAM) permissions: Ensure that you have the necessary IAM permissions to modify the S3 bucket encryption settings. You should have

    s3:PutEncryptionConfiguration
    permission for the bucket.

  2. 2.

    Check bucket encryption settings: In the AWS Management Console, navigate to the S3 service and select the bucket from the bucket list. Then, go to the "Properties" tab and look for the "Default encryption" section.

  3. 3.

    Verify if server-side encryption is enabled: Ensure that "Default encryption" is set to an encryption type such as SSE-S3 (using S3 managed keys), SSE-KMS (using AWS Key Management Service), or SSE-C (using customer-provided keys). If the "Default encryption" section is not visible or not properly configured, server-side encryption is not enabled.

  4. 4.

    Audit encryption configuration for individual objects: If the bucket has encryption set to "None," you may need to assess the objects within the bucket individually. Review the bucket contents to identify any objects without encryption enabled.

Necessary Code

There is no specific code required for this rule, as it involves enabling server-side encryption for S3 buckets directly through the AWS Management Console or AWS Command Line Interface (CLI).

Step-by-Step Guide for Remediation

To enable server-side encryption for an S3 bucket, follow these steps:

  1. 1.

    Open the AWS Management Console and navigate to the S3 service.

  2. 2.

    Select the desired bucket from the bucket list.

  3. 3.

    Click on the "Properties" tab.

  4. 4.

    Scroll down to the "Default encryption" section and click on the "Edit" button.

  5. 5.

    In the encryption configuration dialog, choose the desired encryption type:

  • SSE-S3: S3 managed keys for encryption.
  • SSE-KMS: AWS Key Management Service for encryption.
  • SSE-C: Customer-provided keys for encryption.
  1. 1.

    Select the appropriate encryption type and click on the "Save" button.

  2. 2.

    Wait for the encryption configuration to propagate, which may take some time depending on the size of the bucket and the number of objects.

  3. 3.

    After the encryption configuration is applied, verify that the "Default encryption" section displays the encryption type you selected.

  4. 4.

    Repeat these steps for other S3 buckets in your AWS account to ensure compliance with the PCI v3 standard.

Note: If you prefer to use the AWS CLI for enabling server-side encryption, you can use the

aws s3api put-bucket-encryption
command and provide the necessary parameters for the encryption type and bucket name.

Is your System Free of Underlying Vulnerabilities?
Find Out Now