IBM Cloud Docs
配置项目范围的设置

配置项目范围的设置

通过使用控制台中的“项目设置”页面,您可以查看和配置适用于特定项目的设置。 了解如何使用项目范围的集成。

什么是项目范围的集成,为什么使用这些集成?

如果要以项目的所有用户都可以执行特定操作的方式配置项目范围的设置,请使用控制台中的“集成”页面。 在具有足够许可权的情况下,您可以从单个页面配置服务绑定操作或配置对 IBM Cloud Container Registry 中的映像的访问权。 如果您没有足够的许可权来执行这些操作,那么可以使用这些页面来帮助您了解所需的许可权。

使用“集成”页面设置项目范围的设置时,Code Engine 会自动设置必要的凭证,以便 Code Engine 可以执行服务绑定操作或为您访问 Container Registry,而不是使用个人用户标识。 您可以在配置服务绑定操作或配置对 Container Registry的访问权时查看有关 Code Engine 为您执行的操作的详细信息。 这些详细信息包括有关服务标识及其访问策略,API 密钥和私钥的信息。

配置项目范围内的服务绑定操作

使用控制台中的“集成”页面来配置服务绑定操作的设置,以便特定项目的所有用户都可以创建和删除绑定,而不必将所有必需的特权分配给其个人用户标识。

在 Code Engine中,不使用已登录用户的身份执行服务绑定操作 (包括创建和删除服务绑定)。 相反,Code Engine 会自动创建专门用于服务绑定操作的服务标识。 通过足够的许可权,您可以配置服务绑定操作,以便从“集成”页面为服务绑定操作自动设置此服务标识。 或者,您可以选择使用自己为服务绑定操作管理的定制服务标识。

配置服务绑定操作需要哪些访问许可权?

此“集成”页面的用户必须具有以下 Cloud Identity and Access Management (IAM) 访问策略,这些策略已分配给您的用户帐户以成功配置服务绑定操作。 如果您没有足够的许可权来执行这些操作,那么可以使用此页面来帮助您了解必需的许可权。

  • 服务所有启用身份和访问功能的服务
    • 资源: 从资源组、区域或访问管理标签中选择。
    • 资源组访问权限: Viewer
    • 角色和操作: Administrator 平台访问权 (不需要服务访问权)
  • 服务: Code Engine
    • 资源: 此 Code Engine 项目的资源组
    • 资源组访问权限: Viewer
    • 角色和操作: Writer 服务访问权和 Operator 平台访问权

对于 Code Engine 自动生成服务绑定操作的服务标识,Code Engine 将检查并自动设置具有 Operator 平台访问权和 Manager 服务访问权的服务标识,以用于 Code Engine 项目的资源组中的所有服务。Code Engine 使用此服务标识通过服务绑定访问 IBM Cloud 服务。

如果您使用自己的定制服务标识,那么该定制服务标识必须为要绑定到 Code Engine 应用程序或作业的任何 IBM Cloud 服务或服务实例提供 Operator 平台访问权和 Manager 服务访问权。

如果此服务标识不存在,那么每当创建服务绑定时,Code Engine 都会尝试自动创建此服务标识。 为服务绑定操作成功创建此服务标识取决于登录到 Code Engine 的用户是否具有足够的许可权。 如果未成功创建操作程序私钥,那么创建服务绑定的任何尝试都将失败。 有关服务绑定操作的 Code Engine 访问需求的更多信息,请参阅 配置服务绑定的访问权

服务标识与操作员私钥之间有什么关系?

配置服务绑定操作时,可以查看有关 Code Engine 为您执行的操作的详细信息,包括有关服务标识,API 密钥和私钥的信息。

在 Code Engine中,服务绑定 是应用程序或作业与另一个 IBM Cloud 服务之间的关系。

Code Engine 使用 服务标识 来代表用户执行绑定操作,而不是使用登录用户的身份。 服务标识为特定 IBM Cloud 服务实例创建凭证。 这些服务凭证由绑定的 Code Engine 应用程序和作业用于与服务实例进行交互。 服务标识的 API 密钥 存储在操作程序私钥中。 访问策略是授予服务标识的许可权。

操作程序私钥ibmcloud-operator-secret 是 Code Engine 生成的受管私钥,其中包含服务标识及其自动生成的 API 密钥。 此私钥与服务绑定操作配合使用,并且不充当当前用户的帐户。 如果运算符私钥不存在,那么将在下列任何一个场景为 true 时自动创建该私钥。

  • 为项目创建下一个服务绑定时 (从控制台或 CLI)。
  • 从“集成”页面配置服务绑定操作时。
  • 运行 project update 命令时。

配置服务绑定操作时,服务标识操作程序私钥 将应用于特定项目。

您可以配置服务绑定操作,并让 Code Engine 自动生成服务标识,也可以 使用您自己的定制服务标识配置服务绑定

使用 Code Engine 自动生成的服务标识配置服务绑定操作

您可以配置服务绑定操作,以便项目中的所有用户可以从 Code Engine 控制台创建和管理与所选资源组中的 IBM Cloud 服务的服务绑定。

  1. 转到集成页面。
    1. Code Engine 控制台中的 "项目" 页面中选择项目。
    2. 单击 项目设置 > 集成
  2. 单击 服务绑定 磁贴中的 配置 以配置此项目的所有用户的服务绑定操作。
  3. 从“配置服务绑定操作”页面,指定要用于服务绑定操作的资源组。 您可以选择包含 "Code Engine项目的 "IBM Cloud®资源组,让 "Code Engine创建必要的凭证。 或者,您也可以选择使用 自定义服务 ID,该 ID 使用您的服务 ID 凭据。
  4. (可选) 展开 Code Engine 为您执行的操作 部分,以查看有关配置服务绑定操作时 Code Engine 自动为您创建的内容的信息。 查看有关分配给此服务标识的服务标识和访问策略的信息,Code Engine 为服务标识自动生成的 API 密钥以及用于服务绑定的操作程序私钥。
  5. 单击配置
  6. (可选) 单击 查看详细信息 以查看服务绑定操作配置的详细信息。 在此页面中,您可以查看有关用于服务绑定操作的服务标识,API 密钥和操作程序私钥的信息。

现在,您为指定的资源组配置了服务绑定操作,具有对此 Code Engine 项目的写程序或管理者访问权的每个用户都可以创建和删除服务绑定。 请参阅 使用服务绑定以将 IBM Cloud 服务与 Code Engine 集成。

使用 Code Engine 自动生成 (和受管) 服务标识配置服务绑定操作时,请勿手动更新或除去在服务绑定操作配置过程中创建的服务标识或 API 密钥。 此外,请勿尝试轮换与服务标识关联的 API 密钥。 而是转至控制台中的“项目设置 > 集成”页面,除去项目的服务绑定操作配置,然后再次配置服务绑定操作。 此操作将删除旧的服务标识和 API 密钥,并为服务绑定操作创建新的服务标识和 API 密钥。

使用定制服务标识配置服务绑定操作

您可以配置服务绑定操作,以便项目中的所有用户可以使用定制服务标识从 Code Engine 控制台创建和管理到 IBM Cloud 服务的服务绑定。

当您使用定制服务标识时,为该服务标识分配的 IAM 策略将确定资源组。

  1. 转到集成页面。
    1. Code Engine 控制台中的 "项目" 页面中选择项目。
    2. 单击 项目设置 > 集成
  2. 单击 服务绑定 磁贴中的 配置,以使用您的定制服务标识为该项目的所有用户配置服务绑定操作。
  3. 在“配置服务绑定操作”页面,选择“使用自定义服务 ID”。
  4. 选择要使用的定制服务标识。
  5. (可选) 展开 Code Engine 为您执行的操作 部分,以查看有关配置服务绑定操作时 Code Engine 自动为您创建的内容的信息。 查看有关 Code Engine 自动为服务标识和用于服务绑定操作的操作程序私钥生成的 API 密钥的信息。
  6. 单击配置。 配置服务绑定操作后,将显示服务绑定操作的定制服务标识。
  7. (可选) 单击 查看详细信息 以查看服务绑定操作配置的详细信息。 在此页面中,您可以查看有关用于服务绑定操作的服务标识,API 密钥和操作程序私钥的信息。

现在,您已使用具有必需 IAM 许可权的定制服务标识配置服务绑定操作,对此 Code Engine 项目具有写程序或管理者访问权的每个用户都可以创建和删除服务绑定。 请参阅 使用服务绑定以将 IBM Cloud 服务与 Code Engine 集成。

删除已配置的服务绑定操作

如果配置了服务绑定操作,那么还可以使用“集成”页面来除去项目的所有用户创建或删除服务绑定的能力。 此操作将除去服务绑定操作的操作程序私钥。

  1. 转到集成页面。
    1. Code Engine 控制台中的 "项目" 页面中选择项目。
    2. 单击 项目设置 > 集成
  2. 如果服务绑定操作的状态为 已配置,请单击 除去配置 以除去操作程序私钥。 系统会要求您确认是否要删除操作员密文。

接收到服务绑定操作已除去的消息时,服务绑定操作的状态为 未配置

如果从“集成”页面中除去已配置的服务绑定操作,那么将保留任何现有服务绑定。 这意味着对于现有服务绑定,当您运行应用程序,运行新的应用程序修订版或运行作业时,绑定的应用程序或作业将使用现有服务绑定及其凭证。 但是,如果没有足够的许可权,那么无法创建新的服务绑定,并且无法删除现有绑定。

如果运算符私钥不存在,那么将在下列任何一个场景为 true 时自动创建该私钥。

  • 为项目创建下一个服务绑定时 (从控制台或 CLI)。
  • 从“集成”页面配置服务绑定操作时。
  • 运行 project update 命令时。

配置对 Container Registry 的项目范围访问权

使用控制台中的“集成”页面来配置设置,以设置和管理对 IBM Cloud Container Registry 中映像的注册表访问权,以便特定 Code Engine 项目的所有用户都可以在 Container Registry 中存储和访问映像,而不必手动创建注册表私钥。

使用项目集成来控制 Code Engine 对 Container Registry的受管访问权时,Code Engine 不会使用已登录用户的身份。 相反,Code Engine 会自动创建专门用于访问 IBM Cloud Container Registry中的映像的注册表访问权。 通过足够的许可权,您可以根据每个位置 (区域) 来配置此缺省注册表访问权。 有关 Container Registry 区域的更多信息,请参阅 IBM Cloud Container Registry 区域

Code Engine 对 IBM Cloud Container Registry的受管访问权需要哪些访问许可权?

此“集成”页面的用户必须具有分配给您的用户帐户的以下 IBM Cloud® Identity and Access Management (IAM) 访问策略,才能为项目的所有用户成功配置注册表访问权。 如果您没有足够的许可权来执行这些操作,那么可以使用此页面来帮助您了解可以执行的必需许可权和操作。

  • 服务: Container Registry
    • 资源: 从资源组、区域或访问管理标签中选择。
    • 资源组访问权限: Viewer
    • 角色和操作: Administrator 平台访问权以及 ReaderWriterManager 服务访问权
  • 服务: Code Engine
    • 资源: 此 Code Engine 项目的资源组
    • 资源组访问权限: Viewer
    • 角色和操作: Operator 平台访问权和 Writer 服务访问权

为使 Code Engine 自动生成服务标识,以用于访问特定位置的 Container Registry 中的映像,Code Engine 将使用作用域限定为此服务标识的 IAM 身份服务的 Administrator 角色来设置此服务标识。 此外,Code Engine 授予作用域限定为指定位置 (区域) 的 IBM Cloud Container Registry 服务的 Manager 角色。 需要这些角色和许可权,以便 Code Engine 可以使用此服务标识代表相应 Code Engine 项目的用户访问 Container Registry。

当 Code Engine 使用对 IBM Cloud Container Registry的 Administrator 平台访问权和 Manager 服务访问权配置此服务标识时,访问权的作用域仅限于此服务标识。

有关用于访问容器注册表中的映像的 Code Engine 需求的更多信息,请参阅 访问容器注册表

服务标识与注册表私钥之间有什么关系?

为特定位置配置缺省注册表访问权时,可以查看有关 Code Engine 为您执行的操作的详细信息,包括有关服务标识及其访问策略,API 密钥和注册表私钥的信息。

Code Engine 使用 服务标识 来代表用户 (而不是使用登录用户的身份) 启用对 Container Registry的注册表访问。

注册表私钥 是 Code Engine 生成的受管注册表私钥,其中包含自动生成的 API 密钥。 此私钥用于访问 Container Registry中的映像。

为位置 (区域) 配置缺省注册表访问权时,服务标识注册表私钥 将应用于特定项目。

配置 Container Registry 访问权

您可以配置注册表访问权,以便项目中的所有用户都可以从 Code Engine 控制台访问和使用 IBM Cloud Container Registry 中的映像。

  1. 转到集成页面。
    1. Code Engine 控制台中的 "项目" 页面中选择项目。
    2. 单击 项目设置 > 集成
  2. Container Registry 磁贴中,单击要配置注册表访问权的位置所在的行。
  3. 在“配置默认注册表访问权限”页面中,可以选择展开“Code Engine为您做什么”部分,查看有关Code Engine在您将默认注册表访问权限配置到特定位置时自动为您创建的内容的信息。 查看有关服务 ID 和分配给此服务 ID 的访问策略的信息、Code Engine为服务 ID 自动生成的 API 密钥,以及用于此注册表访问的注册表密钥。
  4. 单击 配置 以配置特定位置的缺省注册表访问权。
  5. 从该表中,可以按位置和自动生成的注册表私钥查看配置状态。
  6. (可选) 有关更多详细信息,请单击 操作 图标 操作 > 查看详细信息。 您可以查看有关分配给此服务标识的服务标识和访问策略的信息,Code Engine 为服务标识自动生成的 API 密钥以及为访问 Container Registry而配置的注册表密钥。

现在,您为特定位置配置了对 Container Registry的缺省注册表访问权,具有对此 Code Engine 项目的写程序或管理员访问权的每个用户都可以将此注册表私钥与其应用程序,作业和构建配合使用,以访问 Container Registry中的映像。

从“集成”页面配置项目范围的 Container Registry 访问权时,Code Engine 会自动生成 服务标识 以启用对 Container Registry的注册表访问权。

使用 Code Engine 自动生成 (和受管) 注册表密钥时,请勿手动删除注册表密钥。 此外,请勿手动除去已配置的 Container Registry 区域的服务标识或其关联 API 密钥。 请勿尝试轮换与此服务标识关联的 API 密钥。 而是转至控制台中的“项目设置 > 集成”页面,除去项目所需的 Container Registry 访问权的配置,然后再次配置注册表访问权。 此操作将删除旧的服务标识和 API 密钥,并创建新的服务标识和 API 密钥以用于在所需区域中对项目进行注册表访问。

正在除去 Code Engine 对 Container Registry 的受管访问权

除去特定区域的 Code Engine 受管注册表私钥时,将删除此项目范围的注册表访问权。 将删除关联的服务标识,API 密钥和注册表密钥。 您可以继续使用手动创建的注册表访问私钥,也可以再次配置项目范围的 Container Registry 访问权。

  1. 转到集成页面。
    1. Code Engine 控制台中的 "项目" 页面中选择项目。
    2. 单击 项目设置 > 集成
  2. 从要除去注册表访问权的位置 (区域) 的行中,单击 操作 图标 操作 > 除去配置。 系统会要求你确认是否要删除注册表访问权限。

接收到移除注册表访问权的消息时,特定 Container Registry 位置的注册表访问状态为 未配置