Skip to content

Default the EBS CSI driver well-known policy to AmazonEBSCSIDriverPolicyV2 #8902

Open

Description

@mdzraf

Description

Both eksctl paths that grant EBS CSI driver permissions attach the broad AWS managed policy AmazonEBSCSIDriverPolicy:

AmazonEBSCSIDriverPolicy allows actions on any EBS volume or snapshot in the account, including ones the driver didn't create. AWS released a scoped-down replacement, AmazonEBSCSIDriverPolicyV2. It limits the driver to resources tagged ebs.csi.aws.com/cluster: true, which the driver already applies to every volume and snapshot it provisions dynamically. It also allows volumes migrated from the in-tree plugin, via kubernetes.io/created-for/pvc/name.

The EKS Best Practices guide recommends attaching the most restrictive managed policy that fits the workload.

Proposed change:

  • Point both paths at arn:${AWS::Partition}:iam::aws:policy/AmazonEBSCSIDriverPolicyV2. Unlike the old policy, V2 has no service-role/ path.

Compatibility:

This is a breaking change for statically provisioned or imported volumes and snapshots that don't carry ebs.csi.aws.com/cluster: true. They get UnauthorizedOperation until they're tagged. Dynamically provisioned resources need no changes.

Questions for maintainers before we open a PR:

  1. Are you open to defaulting to AmazonEBSCSIDriverPolicyV2?
  2. Since this breaks statically provisioned workloads until their resources are tagged, how would you prefer to roll it out (e.g. major version, opt-out flag, deprecation period, release note)?
  3. We maintain the EBS CSI driver and are happy to contribute the PR once we agree on the approach.

References:

Activity

  1. github-actions commented on Oct 12, 2026

    @github-actions
    Contributor

    Hello mdzraf 👋 Thank you for opening an issue in eksctl project. The team will review the issue and aim to respond within 1-5 business days. Meanwhile, please read about the Contribution and Code of Conduct guidelines here. You can find out more information about eksctl on our website

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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