8.10. IAM 角色故障排除
8.10.1. 解决 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 帐户。此错误的最常见原因是红帽机构中的其他用户创建了 ocm-role
IAM 角色。需要创建您的 user-role
IAM 角色。
在任何用户设置链接到红帽帐户的 ocm-role
IAM 资源后,任何希望在该红帽机构中创建集群的后续用户都必须具有 user-role
IAM 角色才能置备集群。
流程
使用以下命令评估
ocm-role
和user-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 资源。
8.10.1.1. 创建 ocm-role IAM 角色
您可以使用命令行界面(CLI)创建 ocm-role
IAM 角色。
前提条件
- 您有一个 AWS 帐户。
- 在 OpenShift Cluster Manager 机构中具有 Red Hat Organization Administrator 权限。
- 您有安装 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 组织相关联。
8.10.1.2. 创建 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
)创建 Operator 角色和策略。如需更多信息,请参阅附加资源中的"了解自动和手动部署模式"。
输出示例
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'
8.10.1.3. 链接 AWS 帐户
您可以使用 Red Hat OpenShift Service on AWS (ROSA) CLI 将 AWS 帐户链接到现有的 IAM 角色,rosa
。
前提条件
- 您有一个 AWS 帐户。
- 您可以使用 OpenShift Cluster Manager 创建集群。
- 您有安装 AWS 范围的角色所需的权限。如需更多信息,请参阅本节的"附加资源"。
-
您已在安装主机上安装和配置了最新的 AWS (
aws
) 和 ROSA (rosa
) CLI。 您已创建了
ocm-role
和user-role
IAM 角色,但还没有将它们链接到 AWS 帐户。您可以运行以下命令来检查您的 IAM 角色是否已链接:$ rosa list ocm-role
$ rosa list user-role
如果这两个角色的
Linked
列中显示了Yes
,您已将角色链接到 AWS 帐户。
流程
在 CLI 中,使用 Amazon 资源名称(ARN)将
ocm-role
资源链接到您的红帽机构:注意您必须具有红帽机构管理员权限才能运行
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>'
在 CLI 中,使用 Amazon 资源名称(ARN)将您的
user-role
资源链接到您的红帽用户帐户:$ 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>'
8.10.1.4. 将多个 AWS 帐户与红帽机构相关联
您可以将多个 AWS 帐户与红帽机构相关联。通过关联多个帐户,您可以从红帽机构在任何关联的 AWS 帐户上创建 Red Hat OpenShift Service on AWS (ROSA)集群。
使用此功能,您可以使用多个 AWS 配置集作为区域密集型环境在不同的 AWS 区域中创建集群。
前提条件
- 您有一个 AWS 帐户。
- 您可以使用 OpenShift Cluster Manager 创建集群。
- 您有安装 AWS 范围的角色所需的权限。
-
您已在安装主机上安装和配置了最新的 AWS (
aws
) 和 ROSA (rosa
) CLI。 -
您已创建了
ocm-role
和user-role
IAM 角色。
流程
要关联一个额外的 AWS 帐户,首先在本地 AWS 配置中创建配置集。然后,通过在其他 AWS 帐户中创建 ocm-role
、用户帐户角色,将帐户与您的红帽机构相关联。
要在附加区域中创建角色,在运行 rosa create
命令时指定 --profile <aws-profile>
参数,将 <aws_profile>
替换为附加帐户配置集名称:
在创建 OpenShift Cluster Manager 角色时指定 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 配置集。