3.5. 使用 HCP 工作流的 ROSA
用户创建所需的集群范围的角色。在创建角色期间,会创建信任策略(称为跨帐户信任策略),允许红帽拥有的角色假定角色。另外,还会为 EC2 服务创建信任策略,该服务允许 EC2 实例上的工作负载假定角色和获取凭证。AWS 为每个角色分配对应的权限策略。
创建集群范围的角色和策略后,用户可以创建集群。启动集群创建后,用户会创建 Operator 角色,以便集群 Operator 能够发出 AWS API 调用。然后,这些角色被分配给之前创建的相应权限策略,并使用 OIDC 供应商创建信任策略。Operator 角色与 中的集群范围的角色不同,它们最终代表需要访问 AWS 资源的 pod。因为用户无法将 IAM 角色附加到 pod,所以它们必须使用 OIDC 供应商创建信任策略,以便 Operator 可以访问其所需的角色。
用户将角色分配给对应的策略权限后,最后一步会创建 OIDC 供应商。
当需要新角色时,当前使用红帽角色的工作负载将假定 AWS 帐户中的角色,从 AWS STS 获取临时凭证,并开始使用假定的角色 AWS 帐户中的 API 调用来执行操作。凭证是临时的,最长持续时间为一小时。
Operator 使用以下流程来获取必要的凭证来执行其任务。每个 Operator 都会被分配一个 Operator 角色、权限策略和带有 OIDC 供应商的信任策略。Operator 将通过将包含角色和令牌文件(web_identity_token_file
)的 JSON Web 令牌传递给 OIDC 供应商来假设角色,然后使用公钥验证签名密钥。公钥在集群创建过程中创建,并存储在 S3 存储桶中。然后,Operator 会确认签名的令牌文件中的主题与角色信任策略中的角色匹配,以确保 OIDC 供应商只能获取允许的角色。然后,OIDC 供应商会将临时凭证返回到 Operator,以便 Operator 能够发出 AWS API 调用。有关视觉表示,请查看以下图: