Dify Enterprise Edition 部署指南(AWS)
为确保顺利部署 Dify 企业版,请按照以下基础设施与配置说明进行操作。一、基础设施要求
需要权限的 AWS 服务:
- S3
- ECR
支持的认证方式:
Dify 支持以下两种方式访问 AWS 服务:- Access Key 模式(AK/SK):通过环境变量提供凭证
- IRSA 模式:IAM Roles for Service Accounts,实现更安全、精细的权限控制
二、Access Key 模式配置
步骤 1:准备凭证
创建一个只具备 S3 和 ECR 权限的 IAM 用户,获取其 Access Key 和 Secret Key。步骤 2:创建 Kubernetes Secret
步骤 3:修改 values.yaml
步骤 4:配置 dify_plugin_daemon 数据库
步骤 5:升级 Helm Release
三、IRSA 模式配置
由于企业环境对 Access Key 管控严格,我们推荐使用 AWS Pod Identity (IRSA) 方式来访问资源。✅ 优势
- 遵循 AWS 最佳安全实践
- 可对插件执行环境进行精细化权限管理
🪄 快速配置(推荐)
步骤 1:创建 IAM Role 和 Service Account
-
前置条件
- 可用的 AWS 区域以及 EKS 集群
- 已存在的 S3 Bucket 用于 Dify 文件存储
- 本地已安装并配置好 kubectl,可访问目标 EKS 集群
- 本地已安装 AWS CLI 并配置好凭证
🚀 方案 A:运行一键脚本
‼️ 一键脚本仅用于演示和测试,请根据自己的安全要求编写生产脚本。可向 Dify FDE 团队获取此演示脚本。🔨 方案 B:手动配置
- 为 EKS 集群启用 IAM OIDC Provider 请参考 AWS 官方文档,将 EKS 集群与 OIDC 身份提供者关联。此步骤是使用 IRSA 的前提。
-
创建 IAM Policy
项目 示例命名 描述 S3 Policy 名称 dify-ee-irsa-<cluster_name>-s3-policy对指定 S3 Bucket 具有完全访问权限 ECR Policy 名称 dify-ee-irsa-<cluster_name>-ecr-policy对 ECR 完全访问权限及对 CloudTrail 只读权限 ECR Policy 名称 dify-ee-irsa-<cluster_name>-ecr-pull-only-policy仅允许从 ECR 拉取镜像 -
创建关联 Policy 的 IAM Role
项目 示例命名 policy IAM Role - S3 DifyEE-Role-<cluster_name>-s3dify-ee-irsa-<cluster_name>-s3-policyIAM Role - S3 + ECR DifyEE-Role-<cluster_name>-s3-ecrdify-ee-irsa-<cluster_name>-s3-policy和dify-ee-irsa-<cluster_name>-ecr-policyIAM Role - ECR Pull-only DifyEE-Role-<cluster_name>-ecr-image-pulldify-ee-irsa-<cluster_name>-ecr-pull-only-policy -
为 IAM Role 创建 ServiceAccount
用途 默认名称 绑定 IAM Role 描述 dify-api、dify-worker 使用 dify-api-sa DifyEE-Role-<cluster_name>-s3后端服务访问 S3,例如文件上传等 dify-plugin-crd 镜像构建使用 dify-plugin-crd-sa DifyEE-Role-<cluster_name>-s3-ecr访问 S3 并操作插件镜像仓库 dify-plugin 运行时使用 dify-plugin-runner-sa DifyEE-Role-<cluster_name>-ecr-image-pull用于拉取插件运行所需镜像
步骤 2:设置环境变量
根据版本发布说明配置所需变量(如S3_REGION、S3_BUCKET_NAME 等)。
步骤 3:修改 values.yaml
步骤 4:添加插件数据库配置
步骤 5:根据发布日志升级(安装)
https://langgenius.github.io/dify-helm/#/pages/3_0_0步骤 6:给应用自建的 ServiceAccount 增加 S3 权限
ServiceAccount 名称:dify-plugin-connector-sa
./irsa_one_click.sh 创建了 s3 读写的角色 ,这个 arn 会出现在脚本执行的末尾。
步骤7:重启 Dify Deamon Pod
注意事项
- ❌ 不支持 Redis Cluster 模式
- 🌐 EKS 节点需能访问互联网或配置 NAT Gateway