IBM Cloud Docs
AWS EBS

AWS EBS

Set up Amazon Elastic Block Storage (EBS) for IBM Cloud Satellite® clusters by creating a storage configuration in your location. When you assign a storage configuration to your clusters, the storage drivers of the selected storage provider are installed in your cluster.

When you create your AWS EBS storage configuration, you provide your AWS credentials which are stored as a Kubernetes secret in the clusters that you assign your configuration to. The secret is mounted inside the CSI controller pod so that when you create a PVC by using one of the IBM-provided storage classes, your AWS credentials are used to dynamically provision an EBS instance.

To use AWS EBS storage for your apps, the Satellite hosts that you use for your cluster's worker nodes must reside in AWS.

Before you can deploy storage templates to clusters in your location, make sure you set up Satellite Config by selecting the Enable cluster admin access for Satellite Config option in the console or including the --enable-config-admin option when you create your cluster.

You cannot customize your storage classes because Satellite Config overwrites your changes.

You cannot scope Satellite storage service to resource groups. However, if you are scoping other resources such as location and cluster to resource groups, you need to add Satellite reader and link administrator role for all resources in the account.

Prerequisites for using AWS EBS

To use the AWS EBS storage template, complete the following tasks:

  1. Create a Satellite location.

  2. Create a Satellite cluster that runs on compute hosts in Amazon Web Services (AWS). Make sure that you select the Enable cluster admin access for Satellite Config option when you create the cluster. If you don't enable Administrator (admin) access for Satellite Config when creating your cluster, you must re-create your cluster and enable admin access before you can deploy storage. For more information about how to add hosts from AWS to your Satellite location so that you can assign them to a cluster, see Adding AWS hosts to Satellite.

  3. Create an AWS access key ID and secret access key for your AWS login credentials. These credentials are needed to provision AWS EBS storage in your account. When you assign the storage configuration to your cluster, your AWS access key ID and secret access key are stored in a Kubernetes secret in your cluster.

  4. Review the AWS EBS storage configuration parameters.

  5. Review the AWS EBS storage classes. The AWS EBS storage template does not support custom storage classes.

Creating and assigning a configuration in the console

  1. Review the parameter reference.

  2. From the Locations console, select the location where you want to create a storage configuration.

  3. Select Storage > Create storage configuration

  4. Enter a name for your configuration.

  5. Select the Storage type.

  6. Select the Version and click Next

  7. If the Storage type that you selected accepts custom parameters, enter them on the Parameters tab.

  8. If the Storage type that you selected requires secrets, enter them on the Secrets tab.

  9. On the Storage classes tab, review the storage classes that are deployed by the configuration or create a custom storage class.

  10. On the Assign to service tab, select the service that you want to assign your configuration to.

  11. Click Complete to assign your storage configuration.

Creating a configuration in the CLI

  1. Review the parameter reference for the template version that you want to use.

  2. Log in to the IBM Cloud CLI.

    ibmcloud login
    
  3. List your Satellite locations and note the Managed from column.

    ibmcloud sat location ls
    
  4. Target the Managed from region of your Satellite location. For example, for wdc target us-east. For more information, see Satellite regions.

    ibmcloud target -r us-east
    
  5. If you use a resource group other than default, target it.

    ibmcloud target -g <resource-group>
    
  6. Copy one of the following example command for the template version that you want to use. For more information about the command, see ibmcloud sat storage config create in the command reference.

    Example command to create a version 1.1.0 configuration.

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name aws-ebs-csi-driver --template-version 1.1.0 --param "aws-access-key=AWS-ACCESS-KEY"  --param "aws-secret-access-key=AWS-SECRET-ACCESS-KEY" 
    

    Example command to create a version 1.5.1 configuration.

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name aws-ebs-csi-driver --template-version 1.5.1 --param "aws-access-key=AWS-ACCESS-KEY"  --param "aws-secret-access-key=AWS-SECRET-ACCESS-KEY" 
    

    Example command to create a version 1.12.0 configuration.

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name aws-ebs-csi-driver --template-version 1.12.0 --param "aws-access-key=AWS-ACCESS-KEY"  --param "aws-secret-access-key=AWS-SECRET-ACCESS-KEY" 
    

    Example command to create a version 1.31.0 configuration.

    ibmcloud sat storage config create --location LOCATION --name NAME --template-name aws-ebs-csi-driver --template-version 1.31.0 --param "aws-access-key=AWS-ACCESS-KEY"  --param "aws-secret-access-key=AWS-SECRET-ACCESS-KEY" 
    
  7. Customize the command based on the settings that you want to use.

  8. Run the command to create a configuration.

  9. Verify your configuration was created.

    ibmcloud sat storage config get --config CONFIG
    

Creating a configuration in the API

  1. Generate an API key, then request a refresh token. For more information, see Generating an IBM Cloud IAM token by using an API key.

  2. Review the parameter reference for the template version that you want to use.

  3. Copy one of the following example requests and replace the variables that you want to use.

    Example request to create a version 1.1.0 configuration.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"aws-ebs-csi-driver\", \"storage-template-version\": \"1.1.0\", \"update-assignments\": true, \"user-config-parameters\":\"user-secret-parameters\": { \"entry.name\": \"AWS-ACCESS-KEY\",{ \"entry.name\": \"AWS-SECRET-ACCESS-KEY\",}
    

    Example request to create a version 1.5.1 configuration.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"aws-ebs-csi-driver\", \"storage-template-version\": \"1.5.1\", \"update-assignments\": true, \"user-config-parameters\":\"user-secret-parameters\": { \"entry.name\": \"AWS-ACCESS-KEY\",{ \"entry.name\": \"AWS-SECRET-ACCESS-KEY\",}
    

    Example request to create a version 1.12.0 configuration.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"aws-ebs-csi-driver\", \"storage-template-version\": \"1.12.0\", \"update-assignments\": true, \"user-config-parameters\":\"user-secret-parameters\": { \"entry.name\": \"AWS-ACCESS-KEY\",{ \"entry.name\": \"AWS-SECRET-ACCESS-KEY\",}
    

    Example request to create a version 1.31.0 configuration.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createStorageConfigurationByController" -H "accept: application/json" -H "Authorization: TOKEN" -H "Content-Type: application/json" -d "{ \"config-name\": \"string\", \"controller\": \"string\", \"storage-class-parameters\": [ { \"additionalProp1\": \"string\", \"additionalProp2\": \"string\", \"additionalProp3\": \"string\" } ], \"storage-template-name\": \"aws-ebs-csi-driver\", \"storage-template-version\": \"1.31.0\", \"update-assignments\": true, \"user-config-parameters\":\"user-secret-parameters\": { \"entry.name\": \"AWS-ACCESS-KEY\",{ \"entry.name\": \"AWS-SECRET-ACCESS-KEY\",}
    

Creating an assignment in the CLI

  1. List your storage configurations and make a note of the storage configuration that you want to assign to your clusters.

    ibmcloud sat storage config ls
    
  2. Get the ID of the cluster, cluster group, or service that you want to assign storage to.

    To make sure that your cluster is registered with Satellite Config or to create groups, see Setting up clusters to use with Satellite Config.

    Example command to list cluster groups.

    ibmcloud sat group ls
    

    Example command to list clusters.

    ibmcloud oc cluster ls --provider satellite
    

    Example command to list Satellite services.

    ibmcloud sat service ls --location <location>
    
  3. Assign your storage configuration to the cluster, group, or service that you retrieved earlier. For more information, see the ibmcloud sat storage assignment create command.

    Example command to assign a configuration to a cluster group.

    ibmcloud sat storage assignment create --group GROUP --config CONFIG --name NAME
    

    Example command to assign a configuration to a cluster.

    ibmcloud sat storage assignment create --cluster CLUSTER --config CONFIG --name NAME
    

    Example command to assign a configuration to a service cluster.

    ibmcloud sat storage assignment create --service-cluster-id CLUSTER --config CONFIG --name NAME
    
  4. Verify that your assignment is created.

    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    

Creating a storage assignment in the API

  1. Copy one of the following example requests.

    Example request to assign a configuration to a cluster.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignmentByCluster" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"CLUSTER-ID\", \"controller\": \"LOCATION-ID\", \"name\": \"ASSIGNMENT-NAME\"}"
    

    Example request to assign configuration to a cluster group.

    curl -X POST "https://containers.cloud.ibm.com/global/v2/storage/satellite/createAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"channelName\": \"CONFIGURATION-NAME\", \"cluster\": \"string\", \"groups\": [ \"CLUSTER-GROUP\" ], \"name\": \"ASSIGNMENT-NAME\"}"
    
  2. Replace the variables with your details and run the request.

  3. Verify the assignment was created by listing your assignments.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignments" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Updating storage assignments in the console

You can use the Satellite console to apply the latest patch updates to your assignments.

  1. From the Locations page in the Satellite console, select your location.

  2. Click the Storage tab to view your configurations.

  3. Click the configuration you want to update.

  4. Click information Information (i) icon to apply the latest revision or patch.

  5. Optional: Enable automatic patch updates for your storage assignment. Enabling automatic patch updates ensures that your assignment always has the latest security fixes.

If you enable automatic patch updates, you must still apply major updates manually.

Manually upgrading assignments in the CLI

Upgrade an assignment to use the latest storage template revision.

  1. List your Satellite storage assignments, make a note of the Satellite assignment you want to upgrade.

    ibmcloud sat storage assignment ls
    
  2. List the Satellite storage templates to see the latest available versions.

    ibmcloud sat storage template ls
    
  3. Upgrade the Satellite assignment.

    Example command to upgrade an assignment.

    ibmcloud sat storage assignment upgrade --assignment ASSIGNMENT
    

Enabling automatic patch updates for configurations and assignments in the CLI

You can use the sat storage assignment autopatch enable CLI to enable automatic patch updates for your assignments. Enabling automatic patch updates applies the latest storage template revisions (patches) automatically. You must still apply major updates manually.

  1. List your Satellite storage configurations. Make a note of the configuration ID.

    ibmcloud sat storage assignment ls
    
  2. Run one of the following example commands to enable automatic patch updates for your configuration and its associated assignments. Enter the configuration ID that you retrieved in the previous step.

    Example command to enable automatic patch updates for an assignment.

    ibmcloud sat storage assignment autopatch enable --config CONFIG  (--all | --assignment ASSIGNMENT-ID [--assignment ASSIGNMENT-ID])
    

    Example command to enable automatic patch updates for all storage assignments under a given configuration.

    ibmcloud sat storage assignment autopatch enable --config CONFIG --all
    

    Example command to disable automatic patch updates for all assignments under a specific configuration.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --all
    

    Example command to disable automatic patch updates for an single assignment and a specific configuration.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID
    

    Example command to disable automatic patch updates for an multiple assignment and a specific configuration.

    ibmcloud sat storage assignment autopatch disable --config CONFIG --assignment ASSIGNMENT-ID --assignment ASSIGNMENT-ID
    

Manually upgrading configurations in the CLI

You can upgrade your Satellite storage configurations to get the latest storage template revision within the same major version.

  1. List your Satellite storage configurations, make a note of the Satellite configuration you want to upgrade.

    ibmcloud sat storage config ls
    
  2. Upgrade the Satellite configuration. Note, only the configuration is updated. If you want to upgrade the assignments that use this configuration, you can specify the --include-assignments option or you can manually update each assignment using the assignment update command.

    Example command to upgrade a configuration to the latest revision.

    ibmcloud sat storage config upgrade --config CONFIG [--include-assignments]
    

    Example command to upgrade a configuration and it's associated assignments to the latest revision.

    ibmcloud sat storage config upgrade --config CONFIG --include-assignments
    

Upgrading a configuration and assignments in the API

You can use the /v2/storage/satellite/updateAssignment API to update your assignments with new clusters or cluster groups. Set updateConfigVersion to true to apply the revision update.

  1. Copy the following example request and replace the variables for the cluster groups and assignments that you want to update.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/updateAssignment" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d "{ \"groups\": [ \"CLUSTER-GROUPS\" ], \"name\": \"ASSIGNMENT-NAME\", \"updateConfigVersion\": true, \"uuid\": \"ASSIGNMENT-ID\"}"
    
  2. Run the request.

  3. Get the details of you assignment to verify the update.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Enabling automatic patch updates for assignments in the API

You can use the /v2/storage/satellite/setAssignmentAutoupgrade API to enable automatic patch updates for your assignments. Enabling automatic patch updates applies the latest storage template revisions (patches) automatically. You must still apply major updates manually.

  1. Copy the following example request and replace the variables for the cluster groups and assignments that you want to update.

    curl -X PATCH "https://containers.cloud.ibm.com/global/v2/storage/satellite/setAssignmentAutoupgrade" -H "accept: application/json" -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json" -d { "config": "string", "controller": "string", "autopatch": boolean,"assignment" : { "all": boolean, "uuid": ["string", "string", ...], } }
    
  2. Run the request.

  3. Get the details of you assignment to verify the upgrade.

    curl -X GET "https://containers.cloud.ibm.com/global/v2/storage/satellite/getAssignment?uuid=ASSIGNMENT-ID" -H "accept: application/json" -H "Authorization: Bearer TOKEN"
    

Deploying an app that uses AWS EBS storage

You can use the ebs-csi-driver to dynamically provision AWS EBS storage for the apps in your clusters.

  1. List available storage classes and choose the storage class that you want to use.

    oc get sc | grep ebs
    

    To see details for a storage class, use the oc describe sc <sc-name> command or review the storage class reference.

  2. Create a PVC that provisions an AWS EBS storage instance with the characteristics that are described in the storage class that you selected. The following example uses the sat-aws-block-bronze storage class to create an st1 HDD AWS EBS storage instance with a size of 125 GB. For more information about this volume type, see Hard disk drives (HDD).

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: sat-aws-block-bronze
    spec:
      accessModes:
      - ReadWriteOnce
      storageClassName: sat-aws-block-bronze
      resources:
        requests:
          storage: 125Gi
    
  3. Create the PVC in your cluster.

    oc apply -f pvc.yaml
    
  4. Verify that your PVC is created. Because all IBM-provided storage classes are configured as WaitForFirstConsumer, the status of your PVC remains Pending until you provision an app that mounts your PVC.

    oc get pvc
    

    Example output

    NAME                   STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    sat-aws-block-bronze   Pending                                      sat-aws-block-bronze   17s
    
  5. Create a pod that mounts the PVC that you created. When you create this pod, the AWS EBS driver starts to fulfill your storage request by dynamically creating an AWS EBS instance in your AWS account. The following example creates an nginx pod that writes the current date and time to a test.txt file on your AWS EBS volume mount path.

    apiVersion: v1
    kind: Pod
    metadata:
      name: app
    spec:
      containers:
      - name: app
        image: nginx
        command: ["/bin/sh"]
        args: ["-c", "while true; do echo $(date -u) >> /test/test.txt; sleep 5; done"]
        volumeMounts:
          - name: persistent-storage
            mountPath: /test
      volumes:
      - name: persistent-storage
        persistentVolumeClaim:
            claimName: sat-aws-block-bronze
    
  6. Create the pod in your cluster.

    oc apply -f pod.yaml
    
  7. Verify that the pod is deployed. Note that it might take a few minutes for the storage request to be fulfilled and for your app to get into a Running state.

    oc get pods
    

    Example output

    NAME                                READY   STATUS    RESTARTS   AGE
    app                                 1/1     Running   0          2m58s
    
  8. Verify that your PVC status changed to Bound.

    oc get pvc
    

    Example output

    NAME                 STATUS  VOLUME                                   CAPACITY   ACCESS MODES   STORAGECLASS           AGE
    sat-aws-block-bronze Bound   pvc-86d2f9f4-78d4-4bb2-ab73-39726d144981 125Gi      RWO            sat-aws-block-bronze   33m
    

    If your PVC remains in a Pending status, get the details for your PVC by running the oc describe pvc <pvc_name> command to see the error that occurred during the provisioning of your AWS EBS storage instance.

  9. Verify that the app can write to your AWS EBS instance.

    1. Log in to your pod.
      oc exec <app_pod_name> -it bash
      
    2. Display the contents of the test.txt file to confirm that your app can write data to your persistent storage.
      cat /test/test.txt
      
      Example output
      Tue Mar 2 20:09:19 UTC 2021
      Tue Mar 2 20:09:25 UTC 2021
      Tue Mar 2 20:09:31 UTC 2021
      Tue Mar 2 20:09:36 UTC 2021
      Tue Mar 2 20:09:42 UTC 2021
      Tue Mar 2 20:09:47 UTC 2021
      
    3. Exit the pod.
      exit
      
  10. Verify that your storage instance is created in AWS.

    1. List the PV that was created for your PVC.
      oc get pv
      
    2. Get the details of your PV and note the ID of your AWS EBS instance that was created in the source.volumeHandle field.
      oc describe pv <pv_name>
      
    3. From the AWS EC2 dashboard, select Elastic Block Store > Volumes.
    4. Find your AWS EBS volume by using the ID that you retrieved earlier.

Removing AWS EBS storage from your apps

If you no longer need your AWS EBS instance, you can remove your PVC, PV, and the AWS EBS instance in your AWS account.

Removing your AWS EBS instance permanently removes all the data that is stored on this instance. This action cannot be undone. Make sure that you back up your data before you delete the AWS EBS instance.

  1. List your PVCs and note the name of the PVC that you want to remove.
    oc get pvc
    
  2. Remove any pods that mount the PVC.
    1. List all the pods that currently mount the PVC that you want to delete. If no pods are returned, you do not have any pods that currently use your PVC.
      oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
      
      Example output
      app    sat-aws-block-bronze
      
    2. Remove the pod that uses the PVC. If the pod is part of a deployment, remove the deployment.
      oc delete pod <pod_name>
      
      oc delete deployment <deployment_name>
      
    3. Verify that the pod or the deployment is removed.
      oc get pods
      
      oc get deployments
      
  3. Delete the PVC. Because all IBM-provided AWS EBS storage classes are specified with a Delete reclaim policy, the PV and the AWS EBS instance in your AWS account are automatically deleted when you delete the PVC.
    oc delete pvc <pvc_name>
    
  4. Verify that your storage is removed.
    1. Verify that your PV is automatically removed.
      oc get pv
      
    2. From the AWS EC2 dashboard, select Elastic Block Store > Volumes and verify that your AWS EBS instance is removed.

Removing the AWS EBS storage configuration from your cluster

If you no longer plan on using AWS EBS storage in your cluster, you can unassign your cluster from the storage configuration.

Note that you must delete your storage assignments before you can successfully delete your storage configuration.

Note that if you remove the storage configuration, the driver is then uninstalled from all assigned clusters. Your PVCs, PVs, and data are not removed. However, you might not be able to access your data until you reinstall the driver in your cluster again.

Removing a storage configuration from the console

  1. From the Satellite storage dashboard, select the storage configuration you want to delete.
  2. Select Actions > Delete.
  3. Enter the name of your storage configuration.
  4. Select Delete.

Removing the AWS EBS storage configuration from the CLI

Use the CLI to remove the AWS EBS storage configuration.

Note that you must delete your storage assignments before you can successfully delete your storage configuration.

  1. List your storage assignments and find the one that you used for your cluster.
    ibmcloud sat storage assignment ls (--cluster CLUSTER | --config CONFIG | --location LOCATION | --service-cluster-id CLUSTER)
    
  2. Remove the assignment. After the assignment is removed, the AWS EBS driver pods and storage classes are removed from all clusters that were part of the storage assignment.
    ibmcloud sat storage assignment rm --assignment <assignment_ID>
    
  3. Verify that the AWS EBS driver is removed from your cluster.
    1. List of the storage classes in your cluster and verify that the AWS EBS storage classes are removed.
      oc get sc
      
    2. List the pods in the kube-system namespace and verify that the AWS EBS storage driver pods are removed.
      oc get pods -n kube-system | grep ebs
      
    3. List the secrets in the kube-system namespace and verify that the AWS secret that stored your AWS credentials is removed.
      oc get secrets -n kube-system | grep aws
      
  4. Optional: Remove the storage configuration.
    1. List the storage configurations.
      ibmcloud sat storage config ls
      
    2. Remove the storage configuration.
      ibmcloud sat storage config rm --config <config_name>
      

Parameter reference

1.1.0 parameter reference

1.1.0 parameter reference
Display name CLI option Type Description Required? Default value
AWS Access Key ID aws-access-key Secret AWS Access Key ID. true N/A
AWS Secret Access Key aws-secret-access-key Secret AWS Secret Access key. true N/A

1.5.1 parameter reference

1.5.1 parameter reference
Display name CLI option Type Description Required? Default value
AWS Access Key ID aws-access-key Secret AWS Access Key ID. true N/A
AWS Secret Access Key aws-secret-access-key Secret AWS Secret Access key. true N/A

1.12.0 parameter reference

1.12.0 parameter reference
Display name CLI option Type Description Required? Default value
AWS Access Key ID aws-access-key Secret AWS Access Key ID. true N/A
AWS Secret Access Key aws-secret-access-key Secret AWS Secret Access key. true N/A

1.31.0 parameter reference

1.31.0 parameter reference
Display name CLI option Type Description Required? Default value
AWS Access Key ID aws-access-key Secret AWS Access Key ID. true N/A
AWS Secret Access Key aws-secret-access-key Secret AWS Secret Access key. true N/A

Storage class reference for AWS EBS

Review the Satellite storage classes for AWS EBS. You can describe storage classes in the command line with the oc describe sc <storage-class-name> command. Note that data volumes are automatically encrypted by an AWS managed default key. For more information, see Default KMS key for EBS encryption. For more information on AWS EBS encryption, see How AWS EBS encryption works.

AWS EBS storage class reference.
Storage class name EBS volume type File system type Provisioner Default IOPS per GB Size range Hard disk Encrypted? Volume binding mode Reclaim policy More info
sat-aws-block-gold Default io2 ext4 ebs.csi.aws.com 10 10 GiB - 6.25 TiB SSD True WaitforFirstConsumer Delete Link
sat-aws-block-silver gp3 ext4 ebs.csi.aws.com N/A 1 GiB - 16 TiB SSD True WaitforFirstConsumer Delete Link
sat-aws-block-bronze st1 ext4 ebs.csi.aws.com N/A 125 GiB - 16 TiB HDD True WaitforFirstConsumer Delete Link
sat-aws-block-bronze-metro st1 ext4 ebs.csi.aws.com N/A 125 GiB - 16 TiB HDD True WaitforFirstConsumer Delete Link
sat-aws-block-silver-metro gp3 ext4 ebs.csi.aws.com 1 GiB - 16 TiB SSD True WaitforFirstConsumer Delete Link
sat-aws-block-gold-metro io2 ext4 ebs.csi.aws.com 10 10 GiB - 6.25 TiB SSD True WaitforFirstConsumer Delete Link

Getting help and support for AWS EBS

When you use AWS EBS Storage, try the following resources before you open a support case.

  1. Review the FAQs in the AWS Knowledge Center.
  2. Review the troubleshooting documentation to troubleshoot and resolve common issues.
  3. Check the status of the IBM Cloud platform and resources by going to the Status page.
  4. Review Stack Overflow to see whether other users experienced the same problem. Tag any questions with ibm-cloud and AWS-EBS.
  5. The AWS Support Center is another resource available to AWS customers looking for more in-depth support options.