第6章 ROSA クラスターの共有 VPC の設定
一元管理された共有 AWS Virtual Private Cloud (VPC) 内に Red Hat OpenShift Service on AWS (ROSA) クラスターを作成できます。
複数の AWS アカウント間での VPC の共有 は、現在、認証に STS を使用する ROSA Classic クラスターでのみサポートされています。
このプロセスには、同じ AWS 組織に属する 2 つの別々 の AWS アカウントが必要です。1 つのアカウントは VPC 所有の AWS アカウント (VPC Owner) として機能し、もう 1 つのアカウントはクラスターを作成する AWS アカウント (Cluster Creator) でクラスターを作成します。
VPC Owner の前提条件
- ロールを作成し、リソースを共有するための適切な権限を持つ AWS アカウントがある。
- Cluster Creator の AWS アカウントは、VPC Owner の AWS アカウントとは別である。
- どちらの AWS アカウントも、同じ AWS 組織に属している。
- 組織の管理アカウントからのリソース共有を有効にしている。
- AWS console にアクセスできる。
Cluster Creator の前提条件
-
ROSA CLI (
rosa
) 1.2.26 以降がインストールされている。 - クラスター作成に必要な ROSA アカウントロール をすべて作成している。
- Cluster Creator の AWS アカウントは、VPC Owner の AWS アカウントとは別である。
- どちらの AWS アカウントも、同じ AWS 組織に属している。
共有 VPC へのクラスターのインストールは、OpenShift 4.12.34 以降、4.13.10 以降、および今後の全 4.y ストリームでのみサポートされます。
6.1. ステップ 1: VPC Owner: AWS 組織内で共有するための VPC の設定
アカウントが現在の AWS 組織内にある場合、設定済みの VPC 内のサブネットを別の AWS ユーザーアカウントで共有できます。
手順
- AWS コンソールの 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
AWS でポリシーを作成します。
$ aws iam create-policy \ --policy-name SharedVPCPolicy \ --policy-document file:///tmp/shared-vpc-policy.json
このポリシーを、共有 VPC 権限に必要なロールに割り当てます。
ロールを引き受けるパーミッションを付与するカスタム信頼ポリシーファイルを作成します。
$ 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
- 1
- Cluster Creator が必要なクラスターロールを作成した後、プリンシパルのスコープを減らして設定されます。作成時に、クラスター作成者 の AWS アカウント ID を
arn:aws:iam::{Account}:root
として使用して、root ユーザープレースホルダーを作成する必要があります。
IAM ロールを作成します。
$ aws iam create-role --role-name <role_name> \ 1 --assume-role-policy-document file:///tmp/shared-vpc-role.json
- 1
- <role_name> は、作成するロールの名前に置き換えます。
カスタムの
SharedVPCPolicy
パーミッションポリシーを割り当てます。$ aws iam attach-role-policy --role-name <role_name> --policy-arn \ 1 arn:aws:iam::<AWS_account_ID>:policy/SharedVPCPolicy 2
-
SharedVPCRole
ARN を Cluster Creator に指定して、設定を続行します。
関連情報
- AWS リソースの共有 については、AWS のドキュメントを参照してください。