Skip to content

Commit

Permalink
Change default auth for experimental backend to deny_all (#9611)
Browse files Browse the repository at this point in the history
In a move that should surprise no one, a number of users do not read,
and leave the API wide open by default. Safe is better than powned

(cherry picked from commit 9e305d6)
  • Loading branch information
ashb authored and kaxil committed Jul 2, 2020
1 parent bdca88c commit 180bca4
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 4 deletions.
16 changes: 16 additions & 0 deletions UPDATING.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,22 @@ Before 1.10.11 it was possible to edit DagRun State in the `/admin/dagrun/` page

In Airflow 1.10.11+, the user can only choose the states from the list.

### Experimental API will deny all request by default.

The previous default setting was to allow all API requests without authentication, but this poses security
risks to users who miss this fact. This changes the default for new installs to deny all requests by default.

**Note**: This will not change the behavior for existing installs, please update check your airflow.cfg

If you wish to have the experimental API work, and aware of the risks of enabling this without authentication
(or if you have your own authentication layer in front of Airflow) you can get
the previous behaviour on a new install by setting this in your airflow.cfg:

```
[api]
auth_backend = airflow.api.auth.backend.default
```

## Airflow 1.10.10

### Setting Empty string to a Airflow Variable will return an empty string
Expand Down
6 changes: 4 additions & 2 deletions airflow/config_templates/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -524,11 +524,13 @@
options:
- name: auth_backend
description: |
How to authenticate users of the API
How to authenticate users of the API. See
https://airflow.apache.org/docs/stable/security.html for possible values.
("airflow.api.auth.backend.default" allows all requests for historic reasons)
version_added: ~
type: string
example: ~
default: "airflow.api.auth.backend.default"
default: "airflow.api.auth.backend.deny_all"
- name: lineage
description: ~
options:
Expand Down
6 changes: 4 additions & 2 deletions airflow/config_templates/default_airflow.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -274,8 +274,10 @@ endpoint_url = http://localhost:8080
fail_fast = False

[api]
# How to authenticate users of the API
auth_backend = airflow.api.auth.backend.default
# How to authenticate users of the API. See
# https://airflow.apache.org/docs/stable/security.html for possible values.
# ("airflow.api.auth.backend.default" allows all requests for historic reasons)
auth_backend = airflow.api.auth.backend.deny_all

[lineage]
# what lineage backend to use
Expand Down

0 comments on commit 180bca4

Please sign in to comment.