本文档介绍了如何将 Secret Manager 用作 Dataproc Serverless 的凭据存储库,以安全地存储和访问无服务器工作负载处理的敏感数据。
概览
Secret Manager 可保护您的敏感数据,例如 API 密钥、密码和证书。您可以使用它来管理、访问和审核 Google Cloud 中的 Secret。
运行 Dataproc Serverless 批处理工作负载时,您可以使用 Dataproc Secret Manager 凭据提供程序将其配置为使用 Secret Manager 密钥。
可用性
此功能适用于 Dataproc Serverless for Spark 运行时版本 1.2.29 及更高版本、2.2.29 及更高版本或更高的主要运行时版本。
术语
下表介绍了本文档中使用的术语。
术语 | 说明 |
---|---|
Secret |
Secret Manager 密文是包含一系列元数据和密文版本的全球项目对象。您可以将 Secret 作为二进制 blob 或文本字符串进行存储、管理和访问。 |
Credential |
在 Hadoop 和其他 Dataproc 工作负载中,凭据由凭据名称 (ID) 和凭据值(密码)组成。凭据 ID 和值会映射到 Secret Manager 密文 ID 和密文值(密文版本)。 |
用法
您可以在提交 Dataproc Serverless 工作负载时设置以下属性,以便配置受支持的 Hadoop 和其他 OSS 组件与 Secret Manager 搭配使用:
提供程序路径(必需):提供程序路径属性
hadoop.security.credential.provider.path
是用于遍历以解析凭据的一个或多个凭据提供程序 URI 的逗号分隔列表。--properties=hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID
- 提供程序路径中的
scheme
表示凭据提供程序类型。Hadoop 架构包括jceks://
、user://
、localjceks://
。使用gsm://
架构可在 Secret Manager 中搜索凭据。
- 提供程序路径中的
替换点运算符(可选):Secret Manager 不支持 Secret 名称中的点 (
.
) 运算符,但 OSS 组件凭据密钥可以包含此运算符。当此属性设置为true
时。您可以在凭据名称中将英文句点(.
) 替换为连字符(-
)。例如,当此属性设置为true
时,您可以在将凭据名称a.b.c
传递给 Secret Manager 时将其指定为a-b-c
。--properties=hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true
Secret 版本(可选):Secret Manager 中的 Secret 可以有多个版本(值)。使用此属性可访问密文版本。默认情况下,Secret Manager 会访问
LATEST
版本,该版本会在运行时解析为 Secret 的最新值。最佳实践是在生产环境中定义此属性,以实现稳定的访问。如需了解如何创建 Secret,请参阅使用 Secret Manager 创建和访问 Secret。--properties=hadoop.security.credstore.google-secret-manager.secret-version=1
使用 Secret Manager 凭据提供程序运行批量工作负载
如需提交使用 Secret Manager 凭据提供程序的批处理工作负载,请在本地或 Cloud Shell 中运行以下命令。
gcloud dataproc batches submit spark \ --region=REGION \ --jars=JARS \ --class=MAIN_CLASS \ --properties="spark.hive.hadoop.security.credential.provider.path=gsm://projects/PROJECT_ID,spark.hive.hadoop.security.credstore.google-secret-manager.secret-id.substitute-dot-operator=true" \ ...other flags as needed...
替换以下内容:
- REGION:工作负载运行的 Compute Engine 区域
- JARS:工作负载 jar 路径
- MAIN_CLASS:Jar 主类
- PROJECT_ID:您的项目 ID,列在 Google Cloud 控制台信息中心的项目信息部分