关于KEDA是否支持Azure服务主体(客户端ID和密钥)的认证问询
KEDA对Azure服务主体认证的支持情况
KEDA**完全支持使用Azure服务主体(客户端ID+密钥)**进行认证,并非仅用于Key Vault的密钥读取场景。
核心说明
- 服务主体可直接用于KEDA的Azure类触发器(如Service Bus、Blob Storage、Event Hubs等)的身份验证,让KEDA有权访问Azure资源的指标数据以实现自动扩缩容。
- 官方文档中侧重Key Vault示例,是因为推荐将敏感信息(如客户端密钥)存储在Key Vault中以提升安全性,但直接配置服务主体的客户端ID和密钥也是合法且受支持的方式。
配置示例
- 首先创建存储服务主体信息的Kubernetes Secret:
kubectl create secret generic azure-sp-secret \ --from-literal=clientid=<你的客户端ID> \ --from-literal=clientsecret=<你的客户端密钥> \ --from-literal=tenantid=<你的租户ID>
- 定义
TriggerAuthentication资源关联该Secret:
apiVersion: keda.sh/v1alpha1 kind: TriggerAuthentication metadata: name: azure-sp-auth spec: secretTargetRef: - parameter: clientId name: azure-sp-secret key: clientid - parameter: clientSecret name: azure-sp-secret key: clientsecret - parameter: tenantId name: azure-sp-secret key: tenantid
- 在
ScaledObject中引用该认证用于触发器:
apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: servicebus-scaler spec: scaleTargetRef: name: my-app-deployment triggers: - type: azure-servicebus metadata: queueName: order-queue namespace: order-servicebus messageCount: "10" authenticationRef: name: azure-sp-auth
权限要求
需为该服务主体分配对应Azure资源的权限,例如:
- 对于Service Bus触发器:分配Azure Service Bus Data Receiver角色
- 对于Blob Storage触发器:分配Storage Blob Data Contributor角色
内容的提问来源于stack exchange,提问作者Sandy
相关产品推荐
相关产品推荐

