Skip to content

require_gcm_256 seems to be mandatory for storage accounts where AES-256-GCM is the only enabled encryption channel despite enable_gcm_256 being enabled #2833

@tspearconquest

Description

@tspearconquest

What happened:
We have an Azure Storage account where the only enabled encryption channel is AES-256-GCM, which we attempted to mount on an AKS node running Ubuntu 24.04. According to the Azure docs, AKS with Ubuntu 22.04 (currently GA, while 24.04 is in preview), supports AES-256-GCM, however it seems that in order to take advantage of AES-256-GCM, the cifs module parameter require_gcm_256 must be set to 1 just after running modprobe, and the underlying node's /etc/modprobe.d/cifs.conf must be updated with options cifs require_gcm_256=1 before Azure Files CSI driver is able to make use of AES-256-GCM. Without doing the above, we found that we would get a mount permission denied with error 13 unless we allowed AES-128-GCM on the storage account itself.

This occurs despite the fact that the CIFS module parameter enable_gcm_256 is set to Y, which in theory should allow the CIFS client to negotiate AES-256-GCM without outright requiring it.

What you expected to happen:
The CIFS client should at least attempt AES-256-GCM and fall back to AES-128-GCM, without requiring the AKS nodes to enforce AES-256-GCM usage by the CIFS client. Perhaps this may be due to an upstream issue, and should instead be reported to the CIFS client developers, however I think that Azure Files CSI driver can still help in the mean time by 1) confirming if that's the case, and 2) providing documentation that makes it clear this is a requirement to connect with a storage account that has only AES-256-GCM enabled.

How to reproduce it:

  1. Configure storage account channel encryption to only AES-256-GCM and configure an Azure Files share
  2. Install azure files CSI driver on an AKS cluster
  3. Attempt to mount the Azure Files share in a pod without enforcing AES-256-GCM on the underlying AKS node nor on the pod level
  4. Observe failure to mount with error code 13
  5. Either reconfigure the storage account channel encryption to allow AES-128-GCM, or reconfigure the AKS node to require AES-256-GCM as described above
  6. Attempt to mount the Azure Files share in a pod again
  7. Observe a successful mount

Anything else we need to know?:

Environment:

  • CSI Driver version: 1.33.5
  • Kubernetes version (use kubectl version): 1.33.3
  • OS (e.g. from /etc/os-release): Ubuntu 24.04
  • Kernel (e.g. uname -a): 6.8.0-1034-azure
  • Install tools:
  • Others:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions