You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于Prefect Cloud角色创建与分配的非UI方式咨询

Prefect Cloud角色创建与分配的非UI实现方式

Terraform 方式

Prefect官方提供了Terraform Provider,可用于批量、自动化管理Prefect Cloud的角色定义与权限分配。

  • 示例配置:
    # 配置Prefect Provider
    terraform {
      required_providers {
        prefect = {
          source  = "PrefectHQ/prefect"
          version = "~> 0.2"
        }
      }
    }
    
    provider "prefect" {
      api_key = var.prefect_api_key
    }
    
    # 创建自定义角色
    resource "prefect_custom_role" "developer" {
      name        = "Developer"
      description = "具备流程查看、运行创建权限的开发角色"
      permissions = [
        "flow:read",
        "flow-run:read",
        "flow-run:create",
      ]
    }
    
    # 将角色分配给指定用户(关联到工作区)
    resource "prefect_role_assignment" "dev_user" {
      role_id      = prefect_custom_role.developer.id
      user_id      = "usr_abc123"
      workspace_id = "ws_def456"
    }
    
  • 前置要求:需设置PREFECT_API_KEY环境变量或在Provider中配置API密钥,确保Terraform能访问Prefect Cloud。

API 方式

Prefect Cloud提供完整的REST API接口,支持直接创建角色并分配权限:

  • 核心接口:
    • 创建自定义角色:POST /accounts/{account_id}/custom_roles
    • 分配角色给用户:POST /accounts/{account_id}/role_assignments
  • 示例curl请求:
    # 创建自定义角色
    curl -X POST "https://api.prefect.cloud/api/accounts/acc_xyz789/custom_roles" \
      -H "Authorization: Bearer your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "QA Engineer",
        "description": "仅具备流程查看、运行取消权限的QA角色",
        "permissions": ["flow:read", "flow-run:read", "flow-run:cancel"]
      }'
    
    # 分配角色到用户
    curl -X POST "https://api.prefect.cloud/api/accounts/acc_xyz789/role_assignments" \
      -H "Authorization: Bearer your_api_key_here" \
      -H "Content-Type: application/json" \
      -d '{
        "role_id": "cr_123abc",
        "user_id": "usr_456def",
        "workspace_id": "ws_789xyz"
      }'
    
  • 注意:需替换请求中的账号ID、API密钥、角色ID、用户ID、工作区ID为实际值。

Prefect CLI 辅助方式

虽然CLI没有直接创建自定义角色的专属命令,但可以通过prefect api命令直接调用API接口,利用CLI已有的认证信息简化操作:

# 创建自定义角色
prefect api post /accounts/acc_xyz789/custom_roles -b '{
  "name": "Ops Specialist",
  "description": "运维专用角色",
  "permissions": ["flow:read", "workspace:read", "flow-run:cancel"]
}'

内容的提问来源于stack exchange,提问作者larsje99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:00:23