将凭据传递给Dataflow作业的正确方法是什么?
我的一些Dataflow作业需要凭据才能进行REST调用并获取/发布已处理的数据。
我目前正在使用环境变量将凭据传递给JVM,将它们读入Serializable对象并将它们传递给DoFn实现的构造函数。我不确定这是正确的方法,因为任何Serializable类都不应包含敏感信息。
我想到的另一种方法是将凭证存储在GCS中并使用服务帐户密钥文件检索它们,但我想知道为什么我的工作应该执行从GCS读取凭据的任务。
答案 0 :(得分:4)
Google Cloud Dataflow没有传递或存储安全机密的本机支持。但是,您可以使用Cloud KMS和/或GCS,因为您建议使用Dataflow服务帐户凭据在运行时读取密码。
如果您在运行时从DoFn
读取凭据,则可以使用DoFn.Setup
生命周期API读取一次值,并在DoFn
的生命周期内将其缓存。
您可以在此处了解Google Cloud中秘密管理的各种选项:Secret management with Cloud KMS。