0

使用 Airflow 2.0.2,我正在尝试使用气流 API 来触发 DAG 运行。当我运行一个简单的 GET 时

curl -X GET --user "fooUser:passw0rd" "${ENDPOINT_URL}/api/v1/pools"

我得到预期的结果:

{
  "pools": [
    {
      "name": "default_pool",
      "occupied_slots": 0,
      "open_slots": 128,
      "queued_slots": 0,
      "running_slots": 0,
      "slots": 128
    }
  ],
  "total_entries": 1

所以用户fooUser确实对 API 有一些基本的访问权限。但是,试图运行

curl -X POST -H "Content-Type: application/json" -d '{}' --user "fooUser:passw0rd" "${ENDPOINT_URL}/api/v1/dags/myDag/dagRuns"

我明白了

{
  "detail": null,
  "status": 403,
  "title": "Forbidden",
  "type": "https://airflow.apache.org/docs/2.0.2/stable-rest-api-ref.html#section/Errors/PermissionDenied"
}

如果我授予用户角色并使用相同的fooUser命令,我成功获得Admincurl

{
  "conf": {},
  "dag_id": "myDag",
  "dag_run_id": "manual__2021-12-13T21:37:42.959274+00:00",
  "end_date": null,
  "execution_date": "2021-12-13T21:37:42.959274+00:00",
  "external_trigger": true,
  "start_date": "2021-12-13T21:37:42.964609+00:00",
  "state": "running"
}

我不希望这个用户有Admin权限。我只想让他们使用 API 触发 DAG 运行。但是查看授予的权限列表,Admin我无法确定我fooUser需要哪些才能完成此操作。

用户需要哪些特定权限才能被允许使用 Airflow API 触发 DAG 运行?

4

0 回答 0