×

解决ocm-roles和user-role IAM资源问题

尝试使用Red Hat OpenShift Service on AWS (ROSA) CLI (rosa)创建集群时,您可能会收到错误。

示例输出
E: Failed to create cluster: The sts_user_role is not linked to account '1oNl'. Please create a user role and link it to the account.

此错误意味着user-role IAM角色未链接到您的AWS账户。此错误最可能的原因是您的Red Hat组织中的其他用户创建了ocm-role IAM角色。您需要创建user-role IAM角色。

任何用户设置与Red Hat账户链接的ocm-role IAM资源后,随后希望在该Red Hat组织中创建集群的任何用户都必须拥有user-role IAM角色才能配置集群。

步骤
  • 使用以下命令评估ocm-roleuser-role IAM角色的状态

    $ rosa list ocm-role
    示例输出
    I: Fetching ocm roles
    ROLE NAME                           ROLE ARN                                          LINKED  ADMIN
    ManagedOpenShift-OCM-Role-1158  arn:aws:iam::2066:role/ManagedOpenShift-OCM-Role-1158   No      No
    $ rosa list user-role
    示例输出
    I: Fetching user roles
    ROLE NAME                                   ROLE ARN                                        LINKED
    ManagedOpenShift-User.osdocs-Role  arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role  Yes

根据这些命令的结果,您可以创建和链接缺少的IAM资源。

创建ocm-role IAM角色

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

先决条件
  • 您拥有一个AWS账户。

  • 您在OpenShift集群管理器组织中拥有Red Hat组织管理员权限。

  • 您拥有安装AWS账户范围角色所需的权限。

  • 您已在安装主机上安装并配置了最新的Red Hat OpenShift Service on AWS (ROSA) CLI (rosa)。

步骤
  • 要创建具有基本权限的ocm-role IAM角色,请运行以下命令

    $ rosa create ocm-role
  • 要创建具有管理员权限的ocm-role IAM角色,请运行以下命令

    $ rosa create ocm-role --admin

    此命令允许您通过指定特定属性来创建角色。以下示例输出显示了选择的“自动模式”,该模式允许ROSA CLI (rosa)创建您的操作员角色和策略。有关更多信息,请参阅“附加资源”中的“账户范围角色创建方法”。

示例输出
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选项,则不会看到此提示。

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

创建user-role IAM角色

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

先决条件
  • 您拥有一个AWS账户。

  • 您已在安装主机上安装并配置了最新的Red Hat OpenShift Service on AWS (ROSA) CLI (rosa)。

步骤
  • 要创建具有基本权限的user-role IAM角色,请运行以下命令

    $ rosa create user-role

    此命令允许您通过指定特定属性来创建角色。以下示例输出显示了选择的“自动模式”,该模式允许ROSA CLI (rosa)创建您的操作员角色和策略。有关更多信息,请参阅“附加资源”中的“了解自动和手动部署模式”。

示例输出
I: Creating User role
? Role prefix: ManagedOpenShift (1)
? Permissions boundary ARN (optional): (2)
? Role Path (optional): (3)
? Role creation mode: auto (4)
I: Creating ocm user role using 'arn:aws:iam::2066:user'
? Create the 'ManagedOpenShift-User.osdocs-Role' role? Yes (5)
I: Created role 'ManagedOpenShift-User.osdocs-Role' with ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role'
I: Linking User role
? User Role ARN: arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role
? Link the 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' role with account '1AGE'? Yes (6)
I: Successfully linked role ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' with account '1AGE'
1 所有已创建AWS资源的前缀值。在此示例中,ManagedOpenShift作为所有AWS资源的前缀。
2 用于设置权限边界的策略的Amazon资源名称(ARN)。
3 为用户名指定IAM路径。
4 选择创建AWS角色的方法。使用auto,ROSA CLI会生成并链接角色和策略。在auto模式下,您会收到一些不同的提示来创建AWS角色。
5 auto方法会询问您是否要使用您的前缀创建特定的user-role
6 将创建的角色与您的AWS组织链接。

链接您的AWS账户

您可以使用Red Hat OpenShift Service on AWS (ROSA) CLI (rosa)将您的AWS账户链接到现有的IAM角色。

先决条件
  • 您拥有一个AWS账户。

  • 您正在使用OpenShift集群管理器创建集群。

  • 您拥有安装AWS账户范围角色所需的权限。有关更多信息,请参阅本节的“附加资源”。

  • 您已在安装主机上安装并配置了最新的AWS (aws)和ROSA (rosa) CLI。

  • 您已创建ocm-roleuser-role IAM角色,但尚未将它们链接到您的AWS账户。您可以通过运行以下命令来检查您的IAM角色是否已链接

    $ rosa list ocm-role
    $ rosa list user-role

    如果两个角色的Linked列中都显示Yes,则表示您已将角色链接到AWS账户。

步骤
  1. 从CLI中,使用您的Amazon资源名称(ARN)将您的ocm-role资源链接到您的Red Hat组织

    您必须拥有Red Hat组织管理员权限才能运行rosa link命令。将ocm-role资源与您的AWS账户链接后,组织中的所有用户都可以看到它。

    $ rosa link ocm-role --role-arn <arn>
    示例输出
    I: Linking OCM role
    ? Link the '<AWS ACCOUNT ID>` role with organization '<ORG ID>'? Yes
    I: Successfully linked role-arn '<AWS ACCOUNT ID>' with organization account '<ORG ID>'
  2. 从CLI中,使用您的Amazon资源名称(ARN)将您的user-role资源链接到您的Red Hat用户账户

    $ rosa link user-role --role-arn <arn>
    示例输出
    I: Linking User role
    ? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' role with organization '<AWS ID>'? Yes
    I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-User-Role-125' with organization account '<AWS ID>'

将多个AWS账户关联到您的Red Hat组织

您可以将多个AWS账户关联到您的Red Hat组织。关联多个账户可以让您从Red Hat组织在任何关联的AWS账户上创建Red Hat OpenShift Service on AWS (ROSA)集群。

使用此功能,您可以通过使用多个AWS配置文件作为区域绑定环境在不同的AWS区域创建集群。

先决条件
  • 您拥有一个AWS账户。

  • 您正在使用OpenShift集群管理器创建集群。

  • 您拥有安装AWS账户范围角色所需的权限。

  • 您已在安装主机上安装并配置了最新的AWS (aws)和ROSA (rosa) CLI。

  • 您已创建ocm-roleuser-role IAM角色。

步骤

要关联其他AWS账户,首先在本地AWS配置中创建一个配置文件。然后,通过在其他AWS账户中创建ocm-role、用户和账户角色,将该账户与您的Red Hat组织关联。

要在其他区域创建角色,请在运行rosa create命令时指定--profile <aws-profile>参数,并将<aws_profile>替换为其他账户配置文件名称。

  • 在创建OpenShift集群管理器角色时指定AWS账户配置文件

    $ rosa create --profile <aws_profile> ocm-role
  • 在创建用户角色时指定AWS账户配置文件

    $ rosa create --profile <aws_profile> user-role
  • 在创建账户角色时指定AWS账户配置文件

    $ rosa create --profile <aws_profile> account-roles

如果您没有指定配置文件,则使用默认的AWS配置文件。