创建和管理服务帐户


Red Hat Hybrid Cloud Console 1-latest

创建和管理服务帐户

Red Hat Customer Content Services

摘要

本指南介绍了如何创建和管理用于访问资源的服务帐户。

前言

服务帐户授予系统服务对特定资源的访问权限。虽然用户可以创建服务帐户,但只有机构管理员或具有 User Access Admin 角色的用户才能将服务帐户分配给用户组。服务帐户将具有授予用户组的权限。

使开源包含更多

红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息

第 1 章 服务帐户

帐户可以是用户帐户或服务帐户。用户帐户在您的机构中验证人类用户。服务帐户可以在无需人为干预的情况下验证应用或服务。出于以下原因,您可以在 Red Hat Hybrid Cloud Console 上创建服务帐户:

  • 应用程序或服务需要访问特定资源。
  • 应用程序或服务需要访问资源,而无需人为干预。
  • 应用程序或服务需要从多个位置访问资源。

您必须使用服务帐户连接到 Red Hat Hybrid Cloud Console 上的云服务 API。红帽对基本身份验证的支持于 2024 年 12 月 31 日结束,并在该日期后只允许基于令牌的身份验证。服务帐户支持基于令牌的身份验证。

有关服务帐户实现的更多信息,请参阅通过 服务帐户将 Red Hat Hybrid Cloud Console API 从基本身份验证转换到基于令牌的身份验证

注意

API 需要来自 Red Hat Single Sign-On 的访问令牌。令牌在 15 分钟后过期(900 秒)。重复每 10 分钟获取访问令牌的过程(600 秒),以便在过期前轮转令牌。RFC 6749,第 4.1.4 节

第 2 章 创建和管理服务帐户

使用服务帐户安全并自动连接和验证服务或应用程序,而无需最终用户的凭证或直接交互。

创建红帽服务帐户时,您将生成 客户端 ID机密。服务帐户使用 ID 和 secret 访问 Red Hat Hybrid Cloud Console 上的服务。

  • 客户端 ID 客户端 ID 为资源标识服务帐户,与用户名标识用户一样。
  • Secret secret 提供与密码类似的功能。创建服务帐户时,secret 会出现一次。复制并保存 secret,并对其进行保护。

创建服务帐户后,您可以将其添加到适用的 User Access 组中。(用户访问权限是红帽对基于角色的访问控制实施。)分配给 User Access 组的角色决定了服务帐户的访问级别,需要 Red Hat Hybrid Cloud Console 上的应用程序和服务。您还可以为您的服务帐户创建组。

以下任务演示了如何创建和管理服务帐户和组:

在为服务帐户生成客户端 ID 和 secret 后,您可以执行以下任务:

只有服务账户的所有者才能重置或删除服务帐户。机构管理员可以重置或删除任何服务帐户。

2.1. 创建一个服务帐户

您可以创建一个服务帐户,并生成客户 ID 和 secret,以用于该帐户。

先决条件

流程

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts
  2. Create service account 设置帐户。
  3. 输入 Service account name 和 Short 描述,然后单击 Create
  4. 将生成的 Client IDClient secret 值保持到一个安全的位置。在配置与服务的连接时,您将使用这些凭证。

    重要

    Client secret 仅显示一次,因此请确保您成功并安全地保存复制的凭证,然后再关闭凭证窗口。

  5. 将客户端 ID 和 secret 保存到安全位置后,在 credentials 窗口中选择确认复选框并关闭窗口。Client secret 不会再次显示。
  6. 服务帐户及其客户端 ID 会出现在 Service Accounts 页面中。

2.2. 在 User Access 组中添加服务帐户

机构管理员将服务帐户添加到 User Access 组,该组具有允许服务帐户访问 Red Hat Hybrid Cloud Console 上的服务和应用程序的权限。任何用户都可以创建服务帐户,但只有机构管理员或 User Access 管理员可以将服务帐户添加到组中。

先决条件

流程

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access
  2. 要将服务帐户添加到预先存在的组中,点 Groups 选项卡,然后点您要将服务帐户添加到的组的名称。
  3. 当显示组名称窗口时,点 Service accounts 选项卡。
  4. 单击 Add service account。此时会出现与您的红帽机构帐户关联的所有服务帐户的列表。
  5. 单击您要添加到 User Access 组的服务帐户,然后单击 Add to group
  6. 服务帐户会出现在 服务帐户标签页中

2.3. 为服务帐户创建用户访问权限组

机构管理员可以创建具有特定于服务帐户的角色或权限的新用户访问权限组。这个组具有允许服务帐户访问 Red Hat Hybrid Cloud Console 上的服务和应用程序的权限。任何用户都可以创建服务帐户,但只有机构管理员或 User Access 管理员可以为服务帐户添加新组。

先决条件

  • 以机构管理员或具有 User Access 管理员权限的用户身份登录到 Red Hat Hybrid Cloud Console
  • 一个或多个服务帐户与您的红帽机构帐户相关联。第 2.1 节 “创建一个服务帐户”
  • 您可以访问添加到 User Access 组的服务帐户的 Client Secret 信息。

    注意

    创建新服务帐户时,Client Secret 信息会被显示一次。您必须复制并保存该信息。它不会被再次显示。

流程

在本例中,您可以创建一个组,它允许服务帐户在 Red Hat Ansible Automation Platform 上查看自动化分析。

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access
  2. 单击 组选项卡再单击创建组
  3. 添加 组名称 和组 描述。描述是可选的。
  4. Next 将角色添加到组中。在本例中,找到 Automation Analytics viewer,点角色名称旁边的复选框。
  5. 单击 Next 以显示 Add members。由于您要添加服务帐户而不是成员,请单击 Next
  6. 此时会出现 添加服务帐户。选择您要添加的服务帐户,然后点名称旁边的复选框。
  7. Next 并查看详情。如果不需要更改,请单击 Submit。创建新组,其中包含服务帐户和 Automation Analytics viewer 角色和权限。

2.4. 从 User Access 组中删除服务帐户

机构管理员可以从 Red Hat Hybrid Cloud Console 上的 User Access 组中删除服务帐户。任何用户都可以创建服务帐户,但只有机构管理员或 User Access 管理员可以从组中删除服务帐户。

先决条件

流程

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access
  2. 要从组中删除服务帐户,请点 Groups 选项卡,然后点包含服务帐户的组的名称。
  3. 当显示组名称窗口时,点 Service accounts 选项卡。该组中的所有服务帐户都会出现。
  4. 删除单个服务帐户。

    1. 点 Name 行中的 options 图标(swig),然后点 Remove
    2. 确认 Remove service account? 消息,再单击 Remove service account
  5. 删除多个服务帐户。

    1. 单击要删除的每个帐户旁边的复选框。
    2. 点所选服务帐户的任何 Name 行中的选项图标(swig),然后点 Remove
    3. 确认 Remove service account? 消息,再单击 Remove service account
  6. 验证所选服务帐户没有出现在 Service accounts 选项卡中。

2.5. 重置服务帐户 secret

您可以为服务帐户重置 secret。当这样做时,客户 ID 不会改变。只有服务账户的所有者才能重置或删除服务帐户。Organization Administrator 用户可以重置或删除任何服务帐户。

先决条件

流程

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts
  2. 在现有服务帐户列表中,选择您要重置的服务帐户,然后点击选项图标(WWN)。
  3. 验证您要重置此帐户,然后单击 重置凭据
  4. 将更新的 Client secret 值复制到一个安全的位置。在配置与服务的连接时,您将使用这些凭证。

    重要

    生成的凭证仅显示一次,因此在关闭凭证窗口前请确定已成功并安全地保存了凭证。

  5. 将生成的凭证保存到安全位置后,在凭证窗口中选择确认复选框并关闭该窗口。

2.6. 删除一个服务帐户

您可以删除一个服务帐户。只有服务账户的所有者才能重置或删除服务帐户。Organization Administrator 用户可以重置或删除任何服务帐户。

先决条件

流程

  1. Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts
  2. 找到您要删除的服务帐户,然后点选项图标 (⋮)。
  3. 验证您要删除此帐户,然后单击 Delete service account

第 3 章 将服务帐户与服务搭配使用

以下信息演示了如何将服务帐户与服务和 CLIENT_ID 和 CLIENT_SECRET 变量一起使用。它仅作为参考指南提供。

  1. 创建新服务帐户: Red Hat Hybrid Cloud Console Service account
  2. 粘贴终端中的以下信息,替换 CLIENT_ID 和 CLIENT_SECRET 变量:

    export HOST='https://sso.redhat.com' CLIENT_ID='<client_id>' CLIENT_SECRET='<client_secret>' SCOPES='openid api.iam.service_accounts'
    Copy to Clipboard Toggle word wrap
  3. 使用以下命令获取服务帐户的令牌

    curl "${HOST}/auth/realms/redhat-external/protocol/openid-connect/token" \
            --data-urlencode "grant_type=client_credentials" \
            --data-urlencode "client_id=${CLIENT_ID}" \
            --data-urlencode "client_secret=${CLIENT_SECRET}" \
            --data-urlencode "scope=${SCOPES}"
    Copy to Clipboard Toggle word wrap

    如果您安装了 jq (命令行 JSON 处理器),您可以将令牌保存到 env var :

    export ACCESS_TOKEN=$( \
        curl "${HOST}/auth/realms/redhat-external/protocol/openid-connect/token" \
            --data-urlencode "grant_type=client_credentials" \
            --data-urlencode "client_id=${CLIENT_ID}" \
            --data-urlencode "client_secret=${CLIENT_SECRET}" \
            --data-urlencode "scope=${SCOPES}" \
        | jq -r '.access_token')
    Copy to Clipboard Toggle word wrap
  4. 向支持服务帐户的应用程序发送请求:

    curl --header "Authorization:Bearer ${ACCESS_TOKEN}" --location "https://console.redhat.com/api/rbac/v1/access/?application=inventory"
    Copy to Clipboard Toggle word wrap
  5. 根据应用程序,响应应该为空,或没有特权。尝试将服务帐户添加到 RBAC 组,并将角色添加到该组。用户访问组
  6. 将角色添加到服务帐户组后,重复步骤 3 以获取新令牌并再次尝试请求。现在,您应该具有更多特权,并从应用程序获得正确的响应。

法律通告

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat