6.3. Red Hat OpenShift Service on AWS クラスターの追加プリンシパル
クラスターのプライベート API サーバーエンドポイントに接続するための追加プリンシパルとして、AWS Identity and Access Management (IAM) ロールを許可できます。
Red Hat OpenShift Service on AWS クラスターの API サーバーエンドポイントには、パブリックインターネットまたは VPC プライベートサブネット内に作成されたインターフェイスエンドポイントからアクセスできます。デフォルトでは、-kube-system-kube-controller-manager Operator ロールを使用して、Red Hat OpenShift Service on AWS API サーバーにプライベートにアクセスできます。クラスターがインストールされているプライマリーアカウントを使用せずに、別のアカウントから Red Hat OpenShift Service on AWS API サーバーに直接アクセスできるようにするには、クロスアカウント IAM ロールを追加のプリンシパルとして含める必要があります。この機能を使用すると、ピアリングを回避したり、クロスアカウント VPC をクラスターの VPC にアタッチしたりして、ネットワークアーキテクチャーを簡素化し、データ転送コストを削減できます。
この図では、クラスターを作成するクラスターが Account A として指定されています。このアカウントは、別のアカウントである Account B に API サーバーへのアクセス権が必要であることを指定します。
追加で許可するプリンシパルを設定したら、クロスアカウントの Red Hat OpenShift Service on AWS API サーバーへのアクセス元となる VPC 内に、インターフェイス VPC エンドポイントを作成する必要があります。その後、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を使用して、特定のロールを承認できます。