在华为云 Flexus 上部署 DeepSeek + Dify 的权限配置需通过 统一身份认证服务(IAM) 实现委托授权。以下是详细步骤:


一、核心权限配置流程

1. 创建委托(关键步骤)
  • 入口:IAM 控制台 → 委托创建委托
  • 参数配置
    • 委托名称DeepSeek-Dify-Agent
    • 委托类型:选择 云服务
    • 云服务:搜索并选择 Flexus容器引擎
    • 持续时间:按需选择(建议永久)
2. 授权策略绑定
  • 策略名称(根据需求选择):
    • 基础权限ECS CommonOperations(容器操作)
    • 存储权限OBS OperateAccess(模型文件读写)
    • 模型权限:自定义策略(示例):
      {
        "Version": "1.1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "modelarts:model:*",   // 模型管理
              "modelarts:infer:*"    // 模型推理
            ],
            "Resource": "*"
          }
        ]
      }
      

3. 将委托绑定到 Flexus 集群
  • 操作路径:Flexus 控制台 → 集群管理 → 目标集群 → 委托管理
  • 绑定委托:选择刚创建的 DeepSeek-Dify-Agent

二、DeepSeek 模型访问权限配置

1. 模型存储桶授权

若模型存储在 OBS:

# Python SDK 授权示例(需安装 obs-client)
from obs import ObsClient

client = ObsClient(
    access_key_id='AK', 
    secret_access_key='SK', 
    server='https://obs.cn-east-3.myhuaweicloud.com'
)

# 设置桶策略允许模型服务访问
policy = {
    "Statement": [{
        "Effect": "Allow",
        "Principal": {"Service": ["modelarts.xxx"]},
        "Action": ["obs:GetObject"],
        "Resource": ["bucket-name/model/*"]
    }]
}
client.setBucketPolicy('bucket-name', json.dumps(policy))

2. 模型引擎权限
  • ModelArts 控制台模型管理访问授权
    • 添加 DeepSeek-Dify-Agent 委托
    • 勾选 模型读取在线服务部署 权限

三、Dify 服务部署权限

1. 容器镜像权限

若使用 SWR 仓库:

# 在集群节点执行(需提前安装swr插件)
swr login -u domainname@xxx -p password
docker pull swr.cn-east-3.myhuaweicloud.com/dify/dify:latest

2. Flexus 工作负载配置

工作负载 YAML 中添加委托注解:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: dify-app
  annotations:
    iam.xxx.com/agency: DeepSeek-Dify-Agent  # 关键委托注解
spec:
  containers:
  - name: dify
    image: swr.xxx/dify:latest
    env:
    - name: DEEPSEEK_API_KEY
      valueFrom:
        secretKeyRef:
          name: deepseek-key
          key: api_key


四、权限验证

  1. 委托有效性检查
    kubectl exec -it <pod-name> -- env | grep IAM_AGENCY
    # 应输出:IAM_AGENCY=DeepSeek-Dify-Agent
    

  2. 模型访问测试
    # 在Dify容器内执行
    import requests
    resp = requests.get("https://modelarts.xxx/models/deepseek-v2", 
                       headers={"X-Auth-Token": os.getenv("IAM_TOKEN")})
    assert resp.status_code == 200
    

关键注意事项

  1. 遵循 最小权限原则,按需开放 OBS/ModelArts 细粒度权限
  2. 生产环境建议为 Dify 单独创建 服务角色(ServiceRole)
  3. 敏感信息(如 API Key)必须通过 密钥管理服务(KMS) 加密存储

通过以上配置,Flexus 集群中的 Dify 服务即可安全调用 DeepSeek 模型,实现完整的委托授权链。实际部署时请根据华为云最新文档调整细节。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐