创建和管理服务帐户
前言 复制链接链接已复制到粘贴板!
服务帐户授予系统服务对特定资源的访问权限。虽然用户可以创建服务帐户,但只有机构管理员或具有 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,以用于该帐户。
先决条件
- 您已登录到 Red Hat Hybrid Cloud Console。
流程
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts。
- 点 Create service account 设置帐户。
- 输入 Service account name 和 Short 描述,然后单击 Create。
将生成的 Client ID 和 Client secret 值保持到一个安全的位置。在配置与服务的连接时,您将使用这些凭证。
重要Client secret 仅显示一次,因此请确保您成功并安全地保存复制的凭证,然后再关闭凭证窗口。
- 将客户端 ID 和 secret 保存到安全位置后,在 credentials 窗口中选择确认复选框并关闭窗口。Client secret 不会再次显示。
- 服务帐户及其客户端 ID 会出现在 Service Accounts 页面中。
2.2. 在 User Access 组中添加服务帐户 复制链接链接已复制到粘贴板!
机构管理员将服务帐户添加到 User Access 组,该组具有允许服务帐户访问 Red Hat Hybrid Cloud Console 上的服务和应用程序的权限。任何用户都可以创建服务帐户,但只有机构管理员或 User Access 管理员可以将服务帐户添加到组中。
先决条件
- 以机构管理员或具有 User Access 管理员权限的用户身份登录到 Red Hat Hybrid Cloud Console。
-
一个或多个服务帐户与您的红帽机构帐户相关联。
第 2.1 节 “创建一个服务帐户” -
用户访问权限组已存在,您可将服务帐户添加到其中。
第 2.3 节 “为服务帐户创建用户访问权限组”
流程
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access。
- 要将服务帐户添加到预先存在的组中,点 Groups 选项卡,然后点您要将服务帐户添加到的组的名称。
- 当显示组名称窗口时,点 Service accounts 选项卡。
- 单击 Add service account。此时会出现与您的红帽机构帐户关联的所有服务帐户的列表。
- 单击您要添加到 User Access 组的服务帐户,然后单击 Add to group。
- 服务帐户会出现在 服务帐户标签页中。
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 上查看自动化分析。
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access。
- 单击 组选项卡,再单击创建组。
- 添加 组名称 和组 描述。描述是可选的。
- 点 Next 将角色添加到组中。在本例中,找到 Automation Analytics viewer,点角色名称旁边的复选框。
- 单击 Next 以显示 Add members。由于您要添加服务帐户而不是成员,请单击 Next。
- 此时会出现 添加服务帐户。选择您要添加的服务帐户,然后点名称旁边的复选框。
- 点 Next 并查看详情。如果不需要更改,请单击 Submit。创建新组,其中包含服务帐户和 Automation Analytics viewer 角色和权限。
2.4. 从 User Access 组中删除服务帐户 复制链接链接已复制到粘贴板!
机构管理员可以从 Red Hat Hybrid Cloud Console 上的 User Access 组中删除服务帐户。任何用户都可以创建服务帐户,但只有机构管理员或 User Access 管理员可以从组中删除服务帐户。
先决条件
- 以机构管理员或具有 User Access 管理员权限的用户身份登录到 Red Hat Hybrid Cloud Console。
- 一个或多个服务帐户与您的红帽机构帐户相关联。第 2.1 节 “创建一个服务帐户”
流程
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 User Access。
- 要从组中删除服务帐户,请点 Groups 选项卡,然后点包含服务帐户的组的名称。
- 当显示组名称窗口时,点 Service accounts 选项卡。该组中的所有服务帐户都会出现。
删除单个服务帐户。
- 点 Name 行中的 options 图标(swig),然后点 Remove。
- 确认 Remove service account? 消息,再单击 Remove service account。
删除多个服务帐户。
- 单击要删除的每个帐户旁边的复选框。
- 点所选服务帐户的任何 Name 行中的选项图标(swig),然后点 Remove。
- 确认 Remove service account? 消息,再单击 Remove service account。
- 验证所选服务帐户没有出现在 Service accounts 选项卡中。
2.5. 重置服务帐户 secret 复制链接链接已复制到粘贴板!
您可以为服务帐户重置 secret。当这样做时,客户 ID 不会改变。只有服务账户的所有者才能重置或删除服务帐户。Organization Administrator 用户可以重置或删除任何服务帐户。
先决条件
- 您已登录到 Red Hat Hybrid Cloud Console。
流程
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts。
- 在现有服务帐户列表中,选择您要重置的服务帐户,然后点击选项图标(WWN)。
- 验证您要重置此帐户,然后单击 重置凭据。
将更新的 Client secret 值复制到一个安全的位置。在配置与服务的连接时,您将使用这些凭证。
重要生成的凭证仅显示一次,因此在关闭凭证窗口前请确定已成功并安全地保存了凭证。
- 将生成的凭证保存到安全位置后,在凭证窗口中选择确认复选框并关闭该窗口。
2.6. 删除一个服务帐户 复制链接链接已复制到粘贴板!
您可以删除一个服务帐户。只有服务账户的所有者才能重置或删除服务帐户。Organization Administrator 用户可以重置或删除任何服务帐户。
先决条件
- 您已登录到 Red Hat Hybrid Cloud Console。
流程
- 在 Red Hat Hybrid Cloud Console 中,单击设置图标(HEKETI),再单击 Service Accounts。
- 找到您要删除的服务帐户,然后点选项图标 (⋮)。
- 验证您要删除此帐户,然后单击 Delete service account。
第 3 章 将服务帐户与服务搭配使用 复制链接链接已复制到粘贴板!
以下信息演示了如何将服务帐户与服务和 CLIENT_ID 和 CLIENT_SECRET 变量一起使用。它仅作为参考指南提供。
- 创建新服务帐户: Red Hat Hybrid Cloud Console Service account
粘贴终端中的以下信息,替换 CLIENT_ID 和 CLIENT_SECRET 变量:
export HOST='https://sso.redhat.com' CLIENT_ID='<client_id>' CLIENT_SECRET='<client_secret>' SCOPES='openid api.iam.service_accounts'
export HOST='https://sso.redhat.com' CLIENT_ID='<client_id>' CLIENT_SECRET='<client_secret>' SCOPES='openid api.iam.service_accounts'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令获取服务帐户的令牌
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}"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 Copied! Toggle word wrap Toggle overflow 如果您安装了 jq (命令行 JSON 处理器),您可以将令牌保存到 env var :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 向支持服务帐户的应用程序发送请求:
curl --header "Authorization:Bearer ${ACCESS_TOKEN}" --location "https://console.redhat.com/api/rbac/v1/access/?application=inventory"curl --header "Authorization:Bearer ${ACCESS_TOKEN}" --location "https://console.redhat.com/api/rbac/v1/access/?application=inventory"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 根据应用程序,响应应该为空,或没有特权。尝试将服务帐户添加到 RBAC 组,并将角色添加到该组。用户访问组
- 将角色添加到服务帐户组后,重复步骤 3 以获取新令牌并再次尝试请求。现在,您应该具有更多特权,并从应用程序获得正确的响应。