6.3. Red Hat OpenShift Service on AWS 集群上的额外主体
您可以允许 AWS Identity and Access Management (IAM)角色作为额外的主体来连接到集群的私有 API 服务器端点。
您可以从公共互联网或 VPC 专用子网中创建的接口端点访问 Red Hat OpenShift Service on AWS 集群的 API 服务器端点。默认情况下,您可以使用 -kube-system-kube-controller-manager Operator 角色私有访问 AWS API 服务器上的 Red Hat OpenShift Service。为了能够直接从另一个帐户访问 Red Hat OpenShift Service on AWS API 服务器,而无需使用安装集群的主帐户,您必须将跨帐户 IAM 角色作为额外主体包含。此功能允许您简化网络架构,并通过避免将跨帐户 VPC 附加到集群的 VPC 来降低数据传输成本。
在这个示意图中,集群创建帐户指定为 Account A。此帐户指定另一个帐户(Account B)应有权访问 API 服务器。
配置额外的允许主体后,您必须在 VPC 中创建接口 VPC 端点,其中您要访问跨帐户 Red Hat OpenShift Service on AWS API 服务器。然后,在 Route53 中创建私有托管区,以路由对跨帐户 Red Hat OpenShift Service on AWS API 服务器的调用,以便通过创建的 VPC 端点。
6.3.1. 在创建 Red Hat OpenShift Service on AWS 集群时添加额外的主体 复制链接链接已复制到粘贴板!
使用 --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
6.3.2. 在现有 Red Hat OpenShift Service on AWS 集群中添加额外的主体 复制链接链接已复制到粘贴板!
您可以使用命令行界面(CLI)在集群中添加额外的主体。
流程
运行以下命令来编辑集群,并添加可以访问此集群端点的额外主体:
$ rosa edit cluster -c <cluster_name> --additional-allowed-principals <arn_string>您可以使用
arn:aws:iam::account_id:role/role_name批准特定角色。