第 5 章 关于使用 STS 的 ROSA 集群的 IAM 资源

要部署使用 AWS 安全令牌服务(STS) 的 Red Hat OpenShift Service on AWS (ROSA) 集群,您必须创建以下 AWS Identity Access Management (IAM)资源:

  • 特定的帐户范围的 IAM 角色和策略,它们提供 ROSA 支持、安装、control plane 和计算功能所需的 STS 权限。这包括集群范围的 Operator 策略。
  • 特定于集群的 Operator IAM 角色,允许 ROSA 集群 Operator 执行核心 OpenShift 功能。
  • 集群 Operator 用于进行身份验证的 OpenID Connect (OIDC)供应商。
  • 如果使用 OpenShift Cluster Manager 部署 ROSA,必须创建额外的资源:

    • 一个 OpenShift Cluster Manager IAM 角色来在集群中完成安装。
    • 没有任何权限来验证 AWS 帐户身份的用户角色。

本文档提供有关您在创建使用 STS 的 ROSA 集群时必须要部署的 IAM 资源的引用信息。它还包含在 rosa create 命令中使用 手动模式时生成的 aws CLI 命令。

其他资源

5.1. OpenShift Cluster Manager 角色和权限

如果使用 OpenShift Cluster Manager 创建 ROSA 集群,则必须具有链接到 AWS 帐户的以下 AWS IAM 角色来创建和管理集群。有关将 IAM 角色链接到 AWS 帐户的更多信息,请参阅关联您的 AWS 帐户

提示

如果您只使用 ROSA CLI (rosa),则不需要创建这些 IAM 角色。

这些 AWS IAM 角色如下:

  • ROSA 用户角色是由红帽用来验证客户的 AWS 身份的 AWS 角色。此角色没有额外的权限,该角色与 Red Hat 安装程序帐户有信任关系。
  • ocm-role 资源授予在 OpenShift Cluster Manager 中安装 ROSA 集群所需的权限。您可以将基本或管理权限应用到 ocm-role 资源。如果创建一个管理 ocm-role 资源,OpenShift Cluster Manager 可以创 建所需的 AWS Operator 角色和 OpenID Connect (OIDC)供应商。此 IAM 角色还与 Red Hat 安装程序帐户建立信任关系。

    注意

    ocm-role IAM 资源引用 IAM 角色以及创建必要策略的组合。

如果要在 OpenShift Cluster Manager 中使用自动模式,创建此用户角色以及管理 ocm-role 资源,以创建 Operator 角色策略和 OIDC 供应商。

5.1.1. 了解 OpenShift Cluster Manager 角色

OpenShift Cluster Manager 中创建 ROSA 集群需要 ocm-role IAM 角色。通过基本的 ocm-role IAM 角色权限,您可以在 OpenShift Cluster Manager 中执行集群维护。要自动创建 operator 角色和 OpenID Connect (OIDC) 供应商,您必须在 rosa create 命令中添加 --admin 选项。此命令使用管理任务所需的额外权限创建 ocm-role 资源。

注意

此提升的 IAM 角色允许 OpenShift Cluster Manager 在集群创建过程中自动创建特定于集群的 Operator 角色和 OIDC 供应商。有关此自动角色和策略创建的更多信息,请参阅附加资源中的"客户范围内的角色创建"链接。

5.1.1.1. 了解用户角色

除了 ocm-role IAM 角色外,还需要创建一个用户角色,以便 Red Hat OpenShift Service on AWS 可以验证 AWS 身份。此角色没有权限,它仅用于在安装程序帐户和 ocm-role 资源之间建立信任关系。

下表显示了 ocm-role 资源的相关基本和管理权限。

表 5.1. 基本 ocm-role 资源的相关权限

资源描述

iam:GetOpenIDConnectProvider

此权限允许基本角色检索有关指定 OpenID Connect (OIDC) 供应商的信息。

iam:GetRole

此权限允许基本角色检索指定角色的任何信息。返回的一些数据包括角色的路径、GUID、ARN 以及授予角色权限的信任策略。

iam:ListRoles

此权限允许基本角色列出路径前缀中的角色。

iam:ListRoleTags

此权限允许基本角色列出指定角色上的标签。

ec2:DescribeRegions

此权限允许基本角色返回有关您帐户上所有启用区域的信息。

ec2:DescribeRouteTables

此权限允许基本角色返回有关所有路由表的信息。

ec2:DescribeSubnets

此权限允许基本角色返回有关所有子网的信息。

ec2:DescribeVpcs

此权限允许基本角色返回有关所有虚拟私有云 (VPC) 的信息。

sts:AssumeRole

此权限允许基本角色检索临时安全凭证来访问超出一般权限的 AWS 资源。

sts:AssumeRoleWithWebIdentity

此权限允许基本角色通过 Web 身份提供程序检索对其帐户进行身份验证的临时安全凭据。

表 5.2. admin ocm-role 资源的额外权限

资源描述

iam:AttachRolePolicy

此权限允许 admin 角色将指定的策略附加到所需的 IAM 角色。

iam:CreateOpenIDConnectProvider

此权限会创建一个描述身份提供程序的资源,它支持 OpenID Connect (OIDC)。当您创建具有此权限的 OIDC 供应商时,此供应商在供应商和 AWS 之间建立信任关系。

iam:CreateRole

此权限允许 admin 角色为您的 AWS 帐户创建角色。

iam:ListPolicies

此权限允许 admin 角色列出与 AWS 帐户关联的任何策略。

iam:ListPolicyTags

此权限允许 admin 角色列出指定策略上的任何标签。

iam:PutRolePermissionsBoundary

此权限允许 admin 角色根据指定的策略更改用户的权限边界。

iam:TagRole

此权限允许 admin 角色向 IAM 角色添加标签。

创建 ocm-role IAM 角色

您可以使用命令行界面(CLI)创建 ocm-role IAM 角色。

前提条件

  • 您有一个 AWS 帐户。
  • 在 OpenShift Cluster Manager 组织中具有红帽机构管理员权限。
  • 您有安装 AWS 范围的角色所需的权限。
  • 您已在安装主机上安装并配置了最新的 Red Hat OpenShift Service on AWS (ROSA) CLI rosa

流程

  • 要使用基本权限创建 ocm-role IAM 角色,请运行以下命令:

    $ rosa create ocm-role
  • 要使用 admin 权限创建 ocm-role IAM 角色,请运行以下命令:

    $ rosa create ocm-role --admin

    此命令允许您通过指定特定属性来创建角色。以下示例输出显示选择了"自动模式",它允许 ROSA CLI (rosa)创建 Operator 角色和策略。如需更多信息,请参阅附加资源中的"集群范围的角色创建"。

输出示例

I: Creating ocm role
? Role prefix: ManagedOpenShift 1
? Enable admin capabilities for the OCM role (optional): No 2
? Permissions boundary ARN (optional): 3
? Role Path (optional): 4
? Role creation mode: auto 5
I: Creating role using 'arn:aws:iam::<ARN>:user/<UserName>'
? Create the 'ManagedOpenShift-OCM-Role-182' role? Yes 6
I: Created role 'ManagedOpenShift-OCM-Role-182' with ARN  'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182'
I: Linking OCM role
? OCM Role ARN: arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182 7
? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' role with organization '<AWS ARN>'? Yes 8
I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' with organization account '<AWS ARN>'

1
所有创建的 AWS 资源的前缀值。在本例中,ManagedOpenShift 会预先填充所有 AWS 资源。
2
如果您希望此角色具有额外的 admin 权限,请选择。
注意

如果使用 --admin 选项,则不会显示此提示。

3
用于设置权限边界的策略的 Amazon 资源名称 (ARN)。
4
指定用户名的 IAM 路径。
5
选择创建 AWS 角色的方法。使用 auto 时,ROSA CLI 生成并链接角色和策略。在 auto 模式中,您收到一些不同的提示来创建 AWS 角色。
6
auto 方法询问您是否要使用您的前缀创建特定的 ocm-role
7
确认您要将 IAM 角色与 OpenShift Cluster Manager 关联。
8
将创建的角色与 AWS 组织相关联。

AWS IAM 角色链接到 AWS 帐户,以创建和管理集群。有关将 IAM 角色链接到 AWS 帐户的更多信息,请参阅关联您的 AWS 帐户