我正在GCC中创建一个Airflow DAG,该DAG需要读取Secret,并且除了该特定DAG之外,该实例中的任何其他DAG都不应该访问它。
这可能吗?我只看到我们可以为GCC SA授予权限,在这种情况下,GCC实例中的每个DAG都可以读取机密。
有没有其他选择可以在这种限制下阅读秘密?我对情况的理解正确吗?
要将气流服务器(GCC或其他服务(连接到Google Secret Manager,您有多种选择:
- 使用Google Secret Manager作为气流的秘密后端:在这种情况下,每个
Variable.get
或<some hook>.get_connection
都将检查变量或连接是否存在于Google Secret Manager中,而不管调用这些方法的DAG是谁 - 使用SecretsManagerHook:你需要创建一个气流连接来存储服务帐户凭据,然后你可以在任何你想使用的地方使用钩子,这样你就可以决定在哪里使用秘密管理器,在哪里不想使用它,并读取秘密,你可以使用方法
get_secret