5.3. Red Hat 版 Karpenter 用の AWS IAM ロールを準備する


Red Hat 版 Karpenter が Amazon Elastic コンピュート Cloud (Amazon EC2) インスタンスをプロビジョニングするために必要な IAM ポリシーとロールを作成します。

このポリシーは、Red Hat ビルドの Karpenter に以下の権限を付与します。

  • EC2 インスタンスとフリートの作成および終了
  • 起動テンプレートの作成と管理
  • リソースに Karpenter 固有のタグを付ける
  • インスタンス、インスタンスタイプ、サブネットなどの EC2 リソースについて説明します。
  • Amazon Machine Image (AMI) 情報へのアクセスシステムマネージャー (SSM) パラメーター
  • EC2 の料金情報を照会する
  • スポットインスタンス処理のための Simple Queue Service (SQS) 割り込みキューを管理する
  • IAM インスタンスプロファイルの作成と管理

    注記

    すべての権限は、Karpenter 固有のタグが付けられたリソースに制限されており、Red Hat 版 Karpenter がプロビジョニングしたノードのみを管理するようにしています。

手順

  1. 最新の Red Hat 版 Karpenter IAM ポリシーをダウンロードしてください。

    $ curl -o autonode-policy.json https://raw.githubusercontent.com/openshift/managed-cluster-config/refs/heads/master/resources/sts/hypershift/openshift_hcp_karpenter_controller_credentials_policy.json
  2. クラスター名と ID を環境変数にエクスポートします。

    $ export CLUSTER_NAME=<cluster_name>
    $ export CLUSTER_ID=$(rosa describe cluster -c "$CLUSTER_NAME" -o json | jq -r '.id')
    $ echo $CLUSTER_NAME $CLUSTER_ID
  3. IAM ポリシーを作成します。

    $ POLICY_ARN=$(aws iam create-policy \
      --policy-name rosa-karpenter-controller-role-${CLUSTER_NAME} \
      --policy-document file://autonode-policy.json \
      --query 'Policy.Arn' \
      --output text)
  4. Karpenter サービスアカウントの信頼ポリシーを作成します。

    $ cat > trust-policy.json <<EOF
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):oidc-provider/$(rosa describe cluster -c $CLUSTER_NAME -o json | jq -r .aws.sts.oidc_endpoint_url | sed 's|https://||')"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "$(rosa describe cluster -c $CLUSTER_NAME -o json | jq -r .aws.sts.oidc_endpoint_url | sed 's|https://||'):sub": "system:serviceaccount:kube-system:karpenter"
                    }
                }
            }
        ]
    }
    EOF
  5. IAM ロールを作成し、ポリシーをアタッチします。

    $ ROLE_ARN=$(aws iam create-role \
      --role-name rosa-karpenter-controller-role-${CLUSTER_NAME} \
      --assume-role-policy-document file://trust-policy.json \
      --query 'Role.Arn' \
      --output text)
    
    $ aws iam attach-role-policy \
      --role-name rosa-karpenter-controller-role-${CLUSTER_NAME} \
      --policy-arn $POLICY_ARN

    検証

    以下のコマンドを実行して、ポリシーが存在することを確認します。

$ aws iam list-attached-role-policies --role-name rosa-karpenter-controller-role-${CLUSTER_NAME}
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る