使用 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
命令,我成功获得Admin
curl
{
"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 运行?