4.2. 使用 HCP 集群的 ROSA 上的其他主体
您可以允许 AWS Identity and Access Management (IAM)角色作为额外的主体来连接到集群的私有 API 服务器端点。
您可以从公共互联网或 VPC 专用子网中创建的接口端点访问带有 HCP 集群的 API 服务器端点的 ROSA。默认情况下,您可以使用 -kube-system-kube-controller-manager
Operator 角色私有访问带有 HCP API 服务器的 ROSA。为了能够直接从另一个帐户访问带有 HCP API 服务器的 ROSA,而无需使用安装集群的主帐户,您必须将跨帐户 IAM 角色作为额外主体包含。此功能允许您简化网络架构,并通过避免将跨帐户 VPC 附加到集群的 VPC 来降低数据传输成本。
在这个示意图中,集群创建帐户指定为 Account A。此帐户指定另一个帐户(Account B)应有权访问 API 服务器。
配置额外的允许主体后,您必须在 VPC 中创建接口 VPC 端点,其中您要使用 HCP API 服务器访问跨帐户 ROSA。然后,在 Route53 中创建一个私有托管区,以路由对使用 HCP API 服务器的跨帐户 ROSA 进行的调用,以传递创建的 VPC 端点。
4.2.1. 在创建使用 HCP 集群的 ROSA 时添加额外的主体
使用 --additional-allowed-principals
参数允许通过其他角色访问。
流程
在
rosa create cluster
命令中添加--additional-allowed-principals
参数,如下所示:$ rosa create cluster [...] --additional-allowed-principals <arn_string>
您可以使用
arn:aws:iam::account_id:role/role_name
批准特定角色。当集群创建命令运行时,您会收到指定了
--additional-allowed-principals
的集群摘要:输出示例
Name: mycluster Domain Prefix: mycluster Display Name: mycluster ID: <cluster-id> External ID: <cluster-id> Control Plane: ROSA Service Hosted OpenShift Version: 4.15.17 Channel Group: stable DNS: Not ready AWS Account: <aws_id> AWS Billing Account: <aws_id> API URL: Console URL: Region: us-east-2 Availability: - Control Plane: MultiAZ - Data Plane: SingleAZ Nodes: - Compute (desired): 2 - Compute (current): 0 Network: - Type: OVNKubernetes - Service CIDR: 172.30.0.0/16 - Machine CIDR: 10.0.0.0/16 - Pod CIDR: 10.128.0.0/14 - Host Prefix: /23 - Subnets: subnet-453e99d40, subnet-666847ce827 EC2 Metadata Http Tokens: optional Role (STS) ARN: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Installer-Role Support Role ARN: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Support-Role Instance IAM Roles: - Worker: arn:aws:iam::<aws_id>:role/mycluster-HCP-ROSA-Worker-Role Operator IAM Roles: - arn:aws:iam::<aws_id>:role/mycluster-kube-system-control-plane-operator - arn:aws:iam::<aws_id>:role/mycluster-openshift-cloud-network-config-controller-cloud-creden - arn:aws:iam::<aws_id>:role/mycluster-openshift-image-registry-installer-cloud-credentials - arn:aws:iam::<aws_id>:role/mycluster-openshift-ingress-operator-cloud-credentials - arn:aws:iam::<aws_id>:role/mycluster-openshift-cluster-csi-drivers-ebs-cloud-credentials - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kms-provider - arn:aws:iam::<aws_id>:role/mycluster-kube-system-kube-controller-manager - arn:aws:iam::<aws_id>:role/mycluster-kube-system-capa-controller-manager Managed Policies: Yes State: waiting (Waiting for user action) Private: No Delete Protection: Disabled Created: Jun 25 2024 13:36:37 UTC User Workload Monitoring: Enabled Details Page: https://console.redhat.com/openshift/details/s/Bvbok4O79q1Vg8 OIDC Endpoint URL: https://oidc.op1.openshiftapps.com/vhufi5lap6vbl3jlq20e (Managed) Audit Log Forwarding: Disabled External Authentication: Disabled Additional Principals: arn:aws:iam::<aws_id>:role/additional-user-role
4.2.2. 在带有 HCP 集群的现有 ROSA 中添加额外的主体
您可以使用命令行界面(CLI)在集群中添加额外的主体。
流程
运行以下命令来编辑集群,并添加可以访问此集群端点的额外主体:
$ rosa edit cluster -c <cluster_name> --additional-allowed-principals <arn_string>
您可以使用
arn:aws:iam::account_id:role/role_name
批准特定角色。