mysql owner user_airflow中的那些“用户”,user,owner 与run_as_user

airflow的那些“用户”airflow中有三个与用户相关的概念。user,owner和run_as_user。下文将详细介绍三个概念、参数设置等,以及它们可以解决的需求。

user, 是指访问airflow web界面的用户,用户需要账户和密码才能登陆进web界面,可以提高web安全。user有两种,超级用户和普通用户。权限区别可以从web界面直接看出,superuser可以配置数据库连接connection、查看Xcom任务间传递的信息、执行任务的实例pool、创建删除superuser和普通用户等。

设置airflow.cfg中的参数;

vim airflow.cfg

[api]

# How to authenticate users of the API

auth_backend = airflow.contrib.auth.backends.password_auth

[webserver]

# Set to true to turn on authentication:

# https://airflow.apache.org/security.html#web-authentication

authenticate =True

auth_backend = airflow.contrib.auth.backends.password_auth

创建用户,命令行创建,或者写python脚本创建用户(1.9以下版本)。

#airflow 1.9。0以上

airflow create_user [-h][-r ROLE][-u USERNAME][-e EMAIL][-f FIRSTNAME][-l LASTNAME][-p PASSWORD][--use_random_password]

#airflow 1.9以下

import airflow

from airflow import models, settings

from airflow.contrib.auth.backends.password_auth import PasswordUser

user = PasswordUser(models.User())

user.username = 'username'

user.email = 'username@example.com'

user.password = 'password'

session = settings.Session()

session.add(user)

session.commit()

session.close()

7815f24754b2efbf078757661922b407.png

owner,在创建dag文件时指定的dag所有者。在创建了用户和访问验证后,如果希望每个用户只能看到自己的dag列表,可以再设置一个参数filter_by_owner=True。当user和owner同名,并且该用户为普通用户时,只能看到自己创建的daglist。如果是superuser,依然可以看到所有dag。

#编写dag时指定

args = {

'owner': 'test', #此外还需创建test用户

'start_date': days_ago(2),

}

# vim airflow.cfg

[webserver]

filter_by_owner = True

run_as_user,airflow运行任务使用的unix用户,在dag文件中指定。此外,为了防止run_as_user没有指定导致某些任务运行时用sudo权限,可以在airflow.cfg 设置参数,指定默认的unix用户为一个普通的用户。default_impersonation = ordinalxxx

args = {

'owner': 'test',

'start_date': days_ago(2),

'run_as_user':'root'

}

总结:

需求1 :限制用户访问,提高web安全。

实现: 创建user是方法之一。

需求2 :限制用户可查看操作的dag列表,用户只能查看操作自己创建的dag。

实现:创建普通用户,用户与dag owner同名。

需求3 :限制airflow运行某些任务时的权限,类unix用户的权限。

实现:dag指定run_as_user

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值