8.12. IAM 角色故障排除
8.12.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-roleIAM 角色的状态:$ 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.12.1.1. 创建 ocm-role IAM 角色 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa)创建 ocm-role IAM 角色。
前提条件
- 您有一个 AWS 帐户。
- 在 OpenShift Cluster Manager 组织中具有红帽机构管理员权限。
- 您有安装 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 ? Enable admin capabilities for the OCM role (optional): No ? Permissions boundary ARN (optional): ? Role Path (optional): ? Role creation mode: auto I: Creating role using 'arn:aws:iam::<ARN>:user/<UserName>' ? Create the 'ManagedOpenShift-OCM-Role-182' role? Yes 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 ? Link the 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' role with organization '<AWS ARN>'? Yes I: Successfully linked role-arn 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' with organization account '<AWS ARN>'其中:
角色前缀-
所有创建的 AWS 资源的前缀值。在本例中,
ManagedOpenShift会预先填充所有 AWS 资源。 为 OCM 角色启用管理功能(可选)如果您希望此角色具有额外的 admin 权限,请选择。
注意如果使用
--admin选项,则不会显示此提示。权限边界 ARN (可选)- 用于设置权限边界的策略的 Amazon 资源名称 (ARN)。
角色路径(可选)- 指定用户名的 IAM 路径。
角色创建模式-
选择创建 AWS 角色的方法。使用
auto时,ROSA CLI 生成并链接角色和策略。在auto模式中,您收到一些不同的提示来创建 AWS 角色。 创建 'ManagedOpenShift-OCM-Role-182' 角色?-
auto方法询问您是否要使用您的前缀创建特定的ocm-role。 OCM 角色 ARN- 确认您要将 IAM 角色与 OpenShift Cluster Manager 关联。
使用机构 '<AWS ARN>' 链接 'arn:aws:iam::<ARN>:role/ManagedOpenShift-OCM-Role-182' 角色?- 将创建的角色与 AWS 组织相关联。
8.12.1.2. 创建 user-role IAM 角色 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa)创建用户角色 IAM 角色。
前提条件
- 您有一个 AWS 帐户。
-
您已在安装主机上安装和配置了最新的 ROSA CLI
rosa。
流程
要使用基本权限创建
user-roleIAM 角色,请运行以下命令:$ rosa create user-role此命令允许您通过指定特定属性来创建角色。以下示例输出显示选择了"自动模式",它允许 ROSA CLI (
rosa)创建 Operator 角色和策略。如需更多信息,请参阅"了解自动和手动部署模式"。以下示例显示了您的创建流程可能是什么样子。I: Creating User role ? Role prefix: ManagedOpenShift ? Permissions boundary ARN (optional): ? Role Path (optional): ? Role creation mode: auto I: Creating ocm user role using 'arn:aws:iam::2066:user' ? Create the 'ManagedOpenShift-User.osdocs-Role' role? Yes 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 I: Successfully linked role ARN 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' with account '1AGE'其中:
角色前缀-
所有创建的 AWS 资源的前缀值。在本例中,
ManagedOpenShift会预先填充所有 AWS 资源。 权限边界 ARN (可选)- 用于设置权限边界的策略的 Amazon 资源名称 (ARN)。
角色路径(可选)- 指定用户名的 IAM 路径。
角色创建模式-
选择创建 AWS 角色的方法。使用
auto时,ROSA CLI 生成并链接角色和策略。在auto模式中,您收到一些不同的提示来创建 AWS 角色。 创建 'ManagedOpenShift-User.osdocs-Role' 角色?-
auto方法询问您是否要使用您的前缀创建特定的user-role。 使用帐户 '1AGE' 链接 'arn:aws:iam::2066:role/ManagedOpenShift-User.osdocs-Role' 角色?- 将创建的角色与 AWS 组织相关联。
重要如果在删除集群前取消链接或删除
user-roleIAM 角色,则会阻止删除集群。您必须创建或重新链接此角色,才能继续删除过程。
8.12.1.3. 将您的 AWS 帐户与 IAM 角色关联 复制链接链接已复制到粘贴板!
您可以使用 ROSA 命令行界面(CLI) (rosa)将 AWS 帐户与现有 IAM 角色关联或连接。
前提条件
- 您有一个 AWS 帐户。
- 您有安装 AWS 范围的角色所需的权限。如需更多信息,请参阅本节的"附加资源"。
-
您已在安装主机上安装和配置了最新的 AWS CLI (
aws)和 ROSA CLI。 您已创建了
ocm-role和user-roleIAM 角色,但还没有将它们链接到 AWS 帐户。您可以运行以下命令来检查您的 IAM 角色是否已链接:$ rosa list ocm-role$ rosa list user-role如果这两个角色的
Linked列中显示了Yes,您已将角色链接到 AWS 帐户。
流程
在 ROSA 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>'在 ROSA 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.12.1.4. 将多个 AWS 帐户与红帽机构相关联 复制链接链接已复制到粘贴板!
您可以将多个 AWS 帐户与红帽机构相关联。通过关联多个帐户,您可以从红帽机构在任何关联的 AWS 帐户上创建 Red Hat OpenShift Service on AWS 集群。
使用此功能,您可以根据对业务有意义的特征在不同的 AWS 配置集上创建集群,例如,为每个区域使用一个 AWS 配置集来创建区域密集型环境。
前提条件
- 您有一个 AWS 帐户。
- 您可以使用 OpenShift Cluster Manager 创建集群。
- 您有安装 AWS 范围的角色所需的权限。
-
您已在安装主机上安装和配置了最新的 AWS CLI (
aws)和 ROSA 命令行界面(CLI) (rosa)。 -
您已为 Red Hat OpenShift Service on AWS 创建了
ocm-role和user-roleIAM 角色。
流程
在创建 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 配置集及其关联的 AWS 区域。