第 6 章 为 ROSA 集群配置共享 VPC
您可以在共享、集中管理的 AWS 虚拟私有云(VPC)中创建 Red Hat OpenShift Service on AWS (ROSA)集群。
重要
目前,只有使用 STS 进行身份验证的 ROSA Classic 集群才支持 在多个 AWS 帐户间共享 VPC。
注意
此过程需要 两个属于同一 AWS 机构的独立 AWS 帐户。一个帐户作为 VPC-owning AWS 帐户(VPC Owner),另一个帐户在集群创建 AWS 帐户(Cluster Creator)中创建集群。
VPC Owner的先决条件
- 您有一个具有适当权限的 AWS 帐户,以创建角色和共享资源。
- Cluster Creator 的 AWS 帐户与 VPC 所有者的 AWS 帐户分开。
- 两个 AWS 帐户都属于同一 AWS 机构。
- 您从机构的管理帐户启用了资源共享。
- 您可以访问 AWS 控制台。
集群创建器的先决条件
-
已安装 ROSA CLI (
rosa
) 1.2.26 或更高版本。 - 您创建了用于创建 集群所需的所有帐户范围的角色和策略。
- Cluster Creator 的 AWS 帐户与 VPC 所有者的 AWS 帐户分开。
- 两个 AWS 帐户都属于同一 AWS 机构。
注意
在共享 VPC 上安装集群只支持 OpenShift 4.12.34 及更新的版本、4.13.10 及更新的版本,以及将来的 4.y-streams。
6.1. 第 1 步 - VPC 所有者:配置 VPC 以在 AWS 机构中共享 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
如果该帐户位于当前 AWS 机构中,您可以将配置的 VPC 中的子网与另一个 AWS 用户帐户共享。
流程
- 在 AWS 控制台的 VPC 部分中,创建或修改 VPC 部分的 VPC。
创建一个自定义策略文件,以允许使用名称
SharedVPCPolicy
的必要共享 VPC 权限:cat <<EOF > /tmp/shared-vpc-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets", "route53:ChangeTagsForResource", "route53:GetAccountLimit", "route53:GetChange", "route53:GetHostedZone", "route53:ListTagsForResource", "route53:UpdateHostedZoneComment", "tag:GetResources", "tag:UntagResources" ], "Resource": "*" } ] } EOF
$ cat <<EOF > /tmp/shared-vpc-policy.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "route53:ChangeResourceRecordSets", "route53:ListHostedZones", "route53:ListHostedZonesByName", "route53:ListResourceRecordSets", "route53:ChangeTagsForResource", "route53:GetAccountLimit", "route53:GetChange", "route53:GetHostedZone", "route53:ListTagsForResource", "route53:UpdateHostedZoneComment", "tag:GetResources", "tag:UntagResources" ], "Resource": "*" } ] } EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 AWS 中创建策略:
aws iam create-policy \ --policy-name SharedVPCPolicy \ --policy-document file:///tmp/shared-vpc-policy.json
$ aws iam create-policy \ --policy-name SharedVPCPolicy \ --policy-document file:///tmp/shared-vpc-policy.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以将此策略附加到共享 VPC 权限所需的角色。
创建自定义信任策略文件,授予授予角色的权限:
cat <<EOF > /tmp/shared-vpc-role.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<Account-ID>:root" }, "Action": "sts:AssumeRole" } ] } EOF
$ cat <<EOF > /tmp/shared-vpc-role.json { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<Account-ID>:root"
1 }, "Action": "sts:AssumeRole" } ] } EOF
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 主体将在 Cluster Creator 创建必要的集群角色后被限定。在创建时,您必须使用 Cluster Creator 的 AWS 帐户 ID 作为
arn:aws:iam::{Account}:root
来创建 root 用户占位符。
创建 IAM 角色:
aws iam create-role --role-name <role_name> \ --assume-role-policy-document file:///tmp/shared-vpc-role.json
$ aws iam create-role --role-name <role_name> \
1 --assume-role-policy-document file:///tmp/shared-vpc-role.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 将 < role_name > 替换为您要创建的角色的名称。
附加自定义
SharedVPCPolicy
权限策略:aws iam attach-role-policy --role-name <role_name> --policy-arn \ arn:aws:iam::<AWS_account_ID>:policy/SharedVPCPolicy
$ aws iam attach-role-policy --role-name <role_name> --policy-arn \
1 arn:aws:iam::<AWS_account_ID>:policy/SharedVPCPolicy
2 Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
为 Cluster Creator 提供
SharedVPCRole
ARN 以继续配置。
其他资源
- 有关 共享 AWS 资源的信息,请参阅 AWS 文档。