使用服务主体为持久卷预配静态 Azure 文件

问题描述

以前我使用标准的方式在静态azure文件上设置PV,即创建存储帐户和文件共享,使用存储帐户的帐户名和秘密创建秘密,然后创建PV如下:

apiVersion: v1
kind: PersistentVolume
Metadata:
  name: elastic-storage
  labels:
    usage: elastic-storage
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteMany
  mountOptions:
    - dir_mode=0777
    - file_mode=0777
    - uid=1000
    - gid=1000
    - mfsymlinks
    - nobrl
  persistentVolumeReclaimPolicy: Retain
  azureFile:
    secretName: azure-secret
    shareName: elasticsearchfile2
    readOnly: false

我现在想知道是否可以使用服务主体而不是使用存储帐户名称和密钥的 azure secret 来访问 azure 文件

解决方法

很容易理解。 Azure 支持 RBAC(基于角色的访问)功能。它可以在存储帐户中使用。就像两个不同的用户可以读取数据库中的相同数据一样,因为他们有足够的读取权限。所以如果服务主体对存储帐户有足够的权限,那么它也可以访问存储帐户。