1.11.4. マネージドクラスターで AWS 認証情報から IAM ロールに切り替える


Cluster API を使用してマネージドクラスターをデプロイするときに、Identity and Access Management (IAM) ロールの使用に切り替えることができます。Amazon Web Services (AWS) 認証情報を使用してマネージドクラスターを作成した場合は、AWS 認証情報から IAM ロールに切り替えて、マネージドクラスターに AWS 認証情報を保存せずに、cluster-api-provider-aws を使用して Red Hat OpenShift Service on AWS with Hosted Control Plane クラスターを作成できます。

必要なアクセス権: クラスター管理者

前提条件

  • AWS 認証情報を使用して作成した Red Hat OpenShift Container Platform または Red Hat OpenShift Service on AWS with Hosted Control Plane ブートストラップクラスターが必要である。一時的な認証情報を使用できます。詳細は、AWS ドキュメントの Request temporary security credentials を参照してください。
  • ブートストラップクラスターに Red Hat Advanced Cluster Management for Kubernetes がインストールされている必要がある。
  • Cluster API と Cluster API Provider AWS を有効にする前に、HyperShift コンポーネントを無効にする必要がある。

手順

以下の手順を実行して、AWS 認証情報から IAM ロールに切り替えます。

  1. MultiClusterEngine リソースを編集します。以下のコマンドを実行します。

    oc edit multiclusterengine engine
  2. hypershift および hypershift-local-hosting コンポーネントを無効にし、cluster-api および cluster-api-provider-aws コンポーネントを有効にします。以下の例を参照してください。

    - configOverrides: {}
      enabled: false
      name: hypershift
    - configOverrides: {}
      enabled: false
      name: hypershift-local-hosting
    - configOverrides: {}
      enabled: true
      name: cluster-api
    - configOverrides: {}
      enabled: true
      name: cluster-api-provider-aws
  3. Cluster API と Cluster API Provider AWS デプロイメントが実行されていることを確認します。以下のコマンドを実行します。

    oc get deploy -n multicluster-engine

    出力は次の例のような内容になります。

    NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    capa-controller-manager               1/1     1            1           12d
    capi-controller-manager               1/1     1            1           12d
  4. Cluster API Provider AWS コントローラーのサービスアカウントを更新できるように、MultiClusterEngine カスタムリソースを一時停止します。以下のコマンドを実行します。

    oc annotate mce multiclusterengine installer.multicluster.openshift.io/pause=true
  5. OpenID Connect (OIDC) プロバイダーの詳細を取得します。以下のコマンドを実行します。

    export OIDC_PROVIDER=$(oc get authentication.config.openshift.io cluster -ojson | jq -r .spec.serviceAccountIssuer | sed 's/https:\/\///')
  6. AWS アカウント ID を設定します。以下のコマンドを実行します。アカウント ID の値を変更します。

    export AWS_ACCOUNT_ID={YOUR_AWS_ACCOUNT_ID}
  7. capa-controller-manager IAM ロールの信頼ポリシーファイルを作成します。以下のコマンドを実行します。

    cat ./trust.json
  8. 以下の内容をファイルに追加することで、関連付けられた IAM ロールを引き受けることができるユーザーを定義します。

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::${AWS_ACCOUNT_ID}:oidc-provider/${OIDC_PROVIDER}"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "${OIDC_PROVIDER}:sub": "system:serviceaccount:multicluster-engine:capa-controller-manager"
            }
          }
        }
      ]
    }
  9. IAM ロールを作成し、必要な AWS ポリシーをアタッチします。以下のコマンドを実行します。

    aws iam create-role --role-name "capa-manager-role" --assume-role-policy-document file://trust.json --description "IAM role for CAPA to assume"
    
    aws iam attach-role-policy --role-name capa-manager-role --policy-arn arn:aws:iam::aws:policy/AWSCloudFormationFullAccess
    
    aws iam attach-role-policy --role-name capa-manager-role --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess
  10. IAM ロールの Amazon Resource Name (ARN) を取得します。以下のコマンドを実行します。

    export APP_IAM_ROLE_ARN=$(aws iam get-role --role-name=capa-manager-role --query Role.Arn --output text)
    
    export IRSA_ROLE_ARN=eks.amazonaws.com/role-arn=$APP_IAM_ROLE_ARN
  11. サービスアカウントに IAM ロールの ARN をアノテーションとして付与します。以下のコマンドを実行します。

    oc annotate serviceaccount -n multicluster-engine capa-controller-manager $IRSA_ROLE_ARN
  12. Cluster API Provider AWS デプロイメントを再起動します。以下のコマンドを実行します。

    oc rollout restart deployment capa-controller-manager -n multicluster-engine
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る