凭据存储
数据收集器管道阶段与外部系统通信以读取和写入数据。其中许多外部系统需要凭据(用户名或密码)才能访问数据。为这些外部系统配置管道阶段时,可以定义该阶段用于连接到系统的凭据。
如果直接在阶段属性中输入凭据值,则会向有权访问管道的任何用户公开凭据。若要在不公开凭据的情况下访问外部系统,请在凭据存储中定义凭据,然后使用阶段属性中的数据收集器凭据函数来检索这些值。
- AWS 密钥管理器 - 将凭证安全地存储在 AWS 密钥管理器中。
- 网络方舟 - 安全地将凭据存储在赛博方舟中。
- 哈希科普保管库 - 将凭据安全地存储在哈希科普保管库中。
- Java 密钥库 - 将凭证安全地存储在 Java 密钥库文件中。
- Microsoft Azure Key Vault - 安全地将凭据存储在 Microsoft Azure Key Vault 中。
可以将数据收集器配置为同时使用多个凭据存储。每个凭据存储都由唯一 ID 标识。
对凭据的组访问
在管道中使用凭据函数时,可以通过仅允许特定组验证、预览或运行管道来进一步保护凭据值。
凭据函数包括一个组参数,该参数定义可以访问凭据的组。只有对管道具有执行权限且属于此组的用户才能验证、预览或运行检索凭据值的管道。
仅使用数据收集器时,只需指定组名称,例如“devOps”。使用控制中心时,请使用所需的命名约定指定组:<组 ID>@<组织 ID>。例如,“devops@MyCompany”。
如果不想限制对凭据的访问,请在仅使用数据收集器时指定默认的“全部”组,或在使用 Control Hub 时指定默认的“all@<组织 ID>”组。
AWS 密钥管理器
要使用 AWS 密钥管理器凭证存储系统,请安装 AWS 密钥管理器凭证存储阶段库,并定义用于连接到密钥管理器的配置属性。然后,使用管道阶段属性中的凭据函数来检索凭据值。
在机密管理器中,必须配置具有正确权限的访问密钥和机密密钥对才能读取密钥。若要遵循最佳做法,请将机密设置为只读并限制访问。请参阅有关身份和访问管理 (IAM) 策略的机密管理器文档。
步骤 1.安装凭据存储阶段库
默认情况下,完整的数据收集器安装包括 AWS 密钥管理器凭证存储阶段库。核心安装不包括库。
要验证数据收集器是否安装了 AWS Secrets Manager 凭证存储阶段库,请单击程序包管理器图标 () 以显示已安装阶段库的列表。如果未安装库,请在配置机密管理器凭据存储之前安装库。
步骤2.配置凭据存储属性
要使数据收集器能够连接到 AWS 密钥管理器凭证存储,请在 $SDC_CONF/凭证存储.properties 文件中配置机密管理器属性。
<span style="color:#333333"><span style="background-color:#eeeeee"><code>credentialStores=aws</code></span></span>
- 取消注释文件中的凭据存储属性。
如果仅启用机密管理器凭据存储,请将属性设置为 。如果启用多个凭据存储,请将属性设置为每个凭据存储类型。例如,要同时使用 Java 密钥库和机密管理器凭证存储,请将值设置为 。awsjks,aws
- 在文件的 AWS 密钥管理器凭证存储部分中配置以下属性。
重要:无需在配置文件中输入敏感数据(如明文形式的密码),而是可以通过将数据存储在外部位置,然后使用函数检索 数据来保护敏感数据。
AWS 凭证存储定义、区域、访问密钥和私有密钥是必需的属性。根据需要取消注释并配置其他属性。
该文件包括以下属性:
机密管理器属性 描述: __________ CredentialStore.aws.def 必填。定义 AWS 密钥管理器凭证存储的实现。 不要更改默认值。
CredentialStore.aws.config.nameKey.separator 自选。用于凭据函数使用的凭据名称参数中的名称和键值的分隔符。对名称参数使用以下格式: <name><separator><key>
例如,如果保留默认的 & 符号 (),则 name 参数的格式为:
&
<name>&<key>
注意:在机密管理器中,名称可以包含字母数字和以下特殊字符:。因此,请避免使用这些字符作为分隔符。/ _ + = . @ -
CredentialStore.aws.config.region 必填。托管机密管理器的 AWS 区域。有关可用区域的列表,请参阅 AWS 区域表。 credentialStore.aws.config.access.key 必填。AWS 访问密钥。 credentialStore.aws.config.secret.key 必填。AWS 密钥。 credentialStore.aws.config.cache.max.size 自选。数据收集器可以在本地缓存的最大机密数。默认值为 1024。 credentialStore.aws.config.cache.ttl.millis 自选。数据收集器在要求刷新之前认为缓存的机密有效的毫秒数。默认值为 1 小时。 - 重新启动数据收集器以启用更改。
第3步.从管道调用凭据
使用管道阶段属性中的 或 函数从 AWS 密钥管理器检索凭证值。credential:get()
credential:getWithOptions()
在任何显示其旁边的密钥图标的 stage 属性中使用凭据函数。例如:
- 存储 Id - 要使用的凭据存储的唯一 ID。输入以访问 AWS 密钥管理器凭证存储。aws
- 用户组 - 用户必须属于才能访问凭据的组。只有对管道具有执行权限且属于此组的用户才能验证、预览或运行检索凭据值的管道。
如果使用控制中心,请使用所需的命名约定指定组:<组 ID>@<组织 ID>。要向所有用户授予访问权限,请在仅使用数据收集器时指定默认的“所有”组,或在使用 Control Hub 时指定默认的“all@<组织 ID>”组。
- name - 要从机密管理器检索的凭据值或机密。使用以下格式:,其中:
"<name><separator><key>"
<name>
是机密管理器中要读取的机密的名称。<separator>
是在 $SDC_CONF/凭据存储.properties 文件或函数调用中定义的分隔符。<key>
是要返回的值的键。
- 存储选项 - 仅由函数使用。用于与凭据存储进行通信的其他选项。对于机密管理器,可以使用以下选项:
credential:getWithOptions()
separator
- 指定凭据函数中名称和键值的分隔符,并覆盖属性。credentialStore.aws.config.nameKey.separator
alwaysRefresh
- 设置为 true 时,强制键在数据收集器检索该值之前刷新其缓存值,并覆盖该属性。credentialStore.aws.config.cache.ttl.millis
使用以下格式指定选项:<span style="color:#333333"><span style="background-color:#eeeeee"><code>"<option1>=<value>,<option2>=<value>"</code></span></span>
例如,要使用管道符号 (|) 作为分隔符,请在 options 参数中输入以下内容:<span style="color:#333333"><span style="background-color:#eeeeee"><code>"separator=|"</code></span></span>
<span style="color:#333333"><span style="background-color:#eeeeee"><code>${credential:get("aws", "devops"