如何在谷歌云编辑器中确保sendGrid API密钥的安全



一旦Google Cloud Composer气流DAG完成,我需要发送通知电子邮件。我已经找到了一个解决方案,并使用了谷歌文档中建议的sendGrid。

但问题是API键是可见的,谁有权访问云编辑器,因为它被分配给环境变量。当我在本地系统python程序中使用相同的密钥时,它正在发送邮件,这就是我不理解这个概念的地方。因为如果有人拥有这个API密钥,或者有人共享了这个密钥,这不是特定于项目的,任何人都可以使用这个密钥发送邮件。

有人能帮助我,如何保护sendGrid API密钥。

分析和收集相关Stack线程1和线程2中社区贡献者的证据我建议您重新考虑通用方法,并通过在相应的Airflow连接中指定Keyfile Path来使用JSON文件来存储凭据或其他敏感的系统身份验证数据。

  • 将API密钥保存在JSON文件中,并将其存储在Airflow环境的Cloud中存储桶(即/home/airflow/gcs/data/keyfile.json(
  • 根据限制通过云存储ACL访问JSON文件您的安全考虑
  • 在Airflow中创建一个新连接,并在Conn Type字段中,选择谷歌云平台选项,然后在密钥文件路径中,输入JSON密钥文件位置的本地文件路径

由于气流连接已经创建,您可以通过特定DAG代码中预定义的extra__google_cloud_platform__key_path查询参数引用GoogleCloudBaseHook运算符中的加密API密钥:

from airflow.contrib.hooks.gcp_api_base_hook import GoogleCloudBaseHook
gcp_hook = GoogleCloudBaseHook(gcp_conn_id="<your-conn-id>")
key_path = gcp_hook._get_field("extra__google_cloud_platform__key_path")

最新更新