Uploaded image for project: 'OpenShift Bugs'
  1. OpenShift Bugs
  2. OCPBUGS-66212

VMSS permissions can be removed from disk CSI credentialsrequest

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • 4.21.0
    • 4.20
    • Storage
    • None
    • None
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Description of problem:

      Upstream azure disk CSI lists VMSS (virtual machine scale set) permissions required for the driver:
      
      https://github.com/kubernetes-sigs/azuredisk-csi-driver/blob/master/docs/driver-parameters.md?plain=1#L15-L17
      
      The permissions are as follows:
      
      Microsoft.Compute/virtualMachineScaleSets/virtualMachines/write
      Microsoft.Compute/virtualMachineScaleSets/virtualMachines/read
      Microsoft.Compute/virtualMachineScaleSets/read
      
      Those permissions also exist in our OCP credentialsrequest for the disk CSI: https://github.com/openshift/cluster-storage-operator/blob/main/manifests/03_credentials_request_azure.yaml#L28-L30
      
      In the upstream driver, it makes sense that they would be required as other k8s distributions such as AKS utilize VMSS. But in OCP, standard/standalone VMs are hardcoded in the cloud provider config (https://github.com/openshift/installer/blob/main/pkg/asset/manifests/azure/cloudproviderconfig.go#L52) and as a result VMSS-level permissions will never be used in OpenShift.
      
      Since ARO's built-in RBAC roles track credentialsrequests 1:1, it's important that we adhere to principle of least privilege in the credentialsrequest and ensure that only permissions required are asked for as to avoid granting an overly permissive role assignment.
      
      If there is a very near term plan to add VMSS support in OCP, we should keep the permissions in there, but otherwise if my assessment is correct, they should be removed. 
      
      Link to doc with specific code examples, if needed: https://docs.google.com/document/d/1vpVNyvJxd6YGl9f0PQzIJsLZqvXv6Zrdnsx-BdY8Pek/edit?tab=t.0 

      Version-Release number of selected component (if applicable):

          4.20

      How reproducible:

          Reproducible 

      Steps to Reproduce:

          1. Observe the credentialsrequest at https://github.com/openshift/cluster-storage-operator/blob/main/manifests/03_credentials_request_azure.yaml#L28-L30

      Actual results:

         The credentialsrequest for disk CSI contains what appears to be unused permissions

      Expected results:

          The permissions present in the credentialsrequest should only contain permissions explicitly used by the OpenShift platform

      Additional info:

          

              hekumar@redhat.com Hemant Kumar
              rhn-support-cmarches Caden Marchese
              None
              None
              Wei Duan Wei Duan
              None
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated: