CyberArk Conjur

将 CyberArk Conjur 连接到 Activepieces 以实现集中式密钥管理

CyberArk Conjur 是一个密钥管理解决方案,提供凭据的安全存储和访问。与 Activepieces 的集成使用 host/API key 身份验证:Activepieces 作为 Conjur 主机进行身份验证,接收短期有效的令牌,并使用它来检索该主机具有 readexecute 权限的密钥。

Conjur 策略在 .yml 文件中定义。有关推荐的结构和模式,请参阅 CyberArk Conjur 文档中的策略最佳实践。有关策略语法和运算符,请参阅策略语法参考。

前置条件

  • 一个 Conjur 服务器(Conjur Cloud、Conjur Enterprise 或 Conjur Open Source)
  • 一个定义了 Activepieces 主机并授予其访问所需变量权限的 Conjur 策略

Activepieces 的 Conjur 主机配置

要允许 Activepieces 读取密钥,请配置一个 Conjur 策略,声明一个组、变量、主机、层以及相应的权限。以下步骤描述了如何创建该策略文件。

示例策略(Activepieces)

以下策略定义了一个策略 activepieces,包含一个组、两个变量、一个主机、一个层以及授予主机读取变量权限的授权。

- !policy
  id: activepieces
  body:
    - !group activepieces-secrets
    - &variables
        - !variable
            id: key-1
            kind: password
        - !variable
            id: key-2
            kind: password
    - !permit
        role: !group /activepieces/activepieces-secrets
        privileges: [read, update, execute]
        resources: *variables

    - !host activepieces
    - !layer activepieces
    - !grant
        role: !layer activepieces
        members:
            - !host activepieces
    - !grant
        role: !group activepieces-secrets
        member: !layer activepieces

策略步骤(摘要)

  1. 声明一个组,放在策略的根级别(例如 activepieces-secrets)。该组将被允许读取(并可选择执行)这些变量。

  2. 声明变量,并授予该组对其的 readexecute 权限(以便主机可以获取密钥值):

    - &variables
      - !variable
          id: my-secret
          kind: password
    - !permit
        role: !group /your-policy/your-group
        privileges: [read, execute]
        resources: *variables
  3. 声明 Activepieces 将使用的主机(例如 activepieces)和一个(例如 activepieces),并将主机添加到该层:

    - !host activepieces
    - !layer activepieces
    - !grant
        role: !layer activepieces
        members:
            - !host activepieces
  4. 授予该层在具有变量访问权限的组中的成员资格

    - !grant
      role: !group activepieces-secrets
      member: !layer activepieces
  5. 将策略加载到 Conjur 中。Conjur 将创建主机并返回该主机的 API key。连接 Activepieces 时,你将使用此 API key 和主机标识。

加载策略后,Conjur 会返回类似以下内容:

{
  "created_roles": {
    "conjur:host:activepieces/activepieces": {
      "id": "conjur:host:activepieces/activepieces",
      "api_key": "<your-host-api-key>"
    }
  },
  "version": 1
}

请安全地存储 api_key;你将在 Activepieces 中将其作为 API Key 输入。

服务器 URL 和组织

  • Conjur Cloud:使用如下格式的 URL
    https://<subdomain>.secretsmgr.cyberark.cloud/api/
    并将 Organization account name 设置为 conjur,除非你的 Cloud 租户使用不同的账户。
  • 本地部署/企业版:使用你的 Conjur 服务器基础 URL(例如 https://conjur.example.com)和你的组织账户名称。

连接到 Activepieces

  1. 进入 Platform Admin → Security → Secret Managers
  2. 从提供商列表中选择 CyberArk Conjur
  3. 输入连接详情:
    • URL:Conjur 服务器 URL(例如 https://conjur.example.com 或上面的 Conjur Cloud URL)。末尾不要添加斜杠。
    • Organization account name:你的 Conjur 账户(例如 Conjur Cloud 的 conjur)。
    • Login ID:对于主机身份验证,这必须是带有 host/ 前缀的 Conjur 主机 ID,例如 host/activepieces/activepieces(策略 ID 和策略中的主机名称)。
    • API Key:主机创建时返回的主机 API key(参见上面的策略加载响应)。
  4. 点击 Connect 测试并保存连接。

在连接中使用 CyberArk Conjur 密钥

配置使用密钥的连接时:

  1. 点击凭据字段旁边的密钥图标(🔑)。
  2. 从列表中选择一个 CyberArk Conjur 连接。
  3. 输入 Secret key:格式为 policy_id/variable_id 的 Conjur 变量路径。
    对于上面的示例策略,使用:
    • activepieces/key-1
    • activepieces/key-2

Activepieces 将在工作流运行时以配置的主机身份进行身份验证并从 Conjur 检索密钥。

如果你更新了现有密钥但未看到更新生效,请参阅[缓存](/docs/activepieces/admin-guide/guides/secret-managers/overview#caching)。