第9章 サービスアカウントの AWS IAM ロールの引き受け


AWS Security Token Service (STS) を使用する Red Hat OpenShift Service on AWS では、OpenShift API サーバーを有効にして、Pod 内の AWS Identity and Access Management (IAM) ロールの引き受けに使用できる署名付きサービスアカウントトークンを投影できます。想定した IAM ロールに必要な AWS パーミッションがある場合は、Pod は、一時的な STS 認証を使用して、AWS 操作を実行し、AWS API に対して認証できます。

Pod ID Webhook を使用してサービスアカウントトークンを生成し、独自のワークロードに対する AWS Identity and Access Management (IAM) ロールを推測できます。想定された IAM ロールに必要な AWS アクセス許可がある場合、Pod は一時的な STS 認証情報を使用して AWS SDK 操作を実行できます。

9.1. サービスアカウントが SRE 所有のプロジェクトで AWS IAM ロールを引き受ける方法

Red Hat OpenShift Service on AWS クラスターをインストールすると、クラスター固有の Operator AWS Identity and Access Management (IAM) ロールが作成されます。これらの IAM ロールにより、ROSA cluster Operator がコア OpenShift 機能を実行できるようになります。

クラスター Operator はサービスアカウントを使用して IAM ロールを引き受けます。サービスアカウントが IAM ロールを引き受けると、クラスター Operator の Pod でサービスアカウントが使用する一時的な AWS STS 認証情報が提供されます。引き受けたロールに必要な AWS 権限がある場合、サービスアカウントは Pod で AWS SDK 操作を実行できます。

9.1.1. Red Hat SRE が所有するプロジェクトで AWS IAM ロールを引き受けるためのワークフロー

次の図は、SRE が所有するプロジェクトで AWS IAM ロールを引き受けるためのワークフローを示しています。

図9.1 SRE 所有プロジェクトで AWS IAM ロールを引き受けるワークフロー

Red Hat SRE が所有するプロジェクトで AWS IAM ロールを引き受けるためのワークフロー

ワークフローには次の段階があります。

  1. クラスター Operator が実行する各プロジェクト内で、Operator のデプロイメント仕様には、投影されたサービスアカウントトークンのボリュームマウントと、Pod の AWS 認証情報設定が含まれるシークレットがあります。トークンは、オーディエンスおよび時間の制限があります。ROSA は 1 時間ごとに新しいトークンを生成し、AWS SDK は AWS 認証情報の設定を含むマウントされたシークレットを読み取ります。この設定には、マウントされたトークンと AWS IAM ロール ARN へのパスが含まれています。シークレットの認証情報設定には次のものが含まれます。

    • AWS SDK オペレーションの実行に必要なパーミッションを持つ IAM ロールの ARN を含む $AWS_ARN_ROLE 変数。
    • サービスアカウントの OpenID Connect (OIDC) トークンへの Pod 内のフルパスを含む $AWS_WEB_IDENTITY_TOKEN_FILE 変数。完全パスは /var/run/secrets/openshift/serviceaccount/token です。
  2. クラスター Operator が AWS サービス (EC2 など) にアクセスするために AWS IAM ロールを引き受ける必要がある場合、Operator で実行される AWS SDK クライアントコードは AssumeRoleWithWebIdentity API を呼び出します。
  3. OIDC トークンは、Pod から OIDC プロバイダーに渡されます。次の要件が満たされている場合は、プロバイダーがサービスアカウント ID を認証します。

    • ID 署名は有効であり、秘密鍵によって署名されています。
    • sts.amazonaws.com オーディエンスは OIDC トークンにリストされており、OIDC プロバイダーで設定されたオーディエンスと一致します。

      注記

      STS クラスターを使用する ROSA では、インストール中に OIDC プロバイダーが作成され、デフォルトでサービスアカウント発行者として設定されます。sts.amazonaws.com オーディエンスは、デフォルトで OIDC プロバイダーに設定されています。

    • OIDC トークンの有効期限が切れていません。
    • トークン内の発行者の値には、OIDC プロバイダーの URL が含まれています。
  4. プロジェクトとサービスアカウントが、引き受ける IAM ロールの信頼ポリシーのスコープ内にある場合は、認可が成功します。
  5. 認証と認可が成功すると、AWS アクセストークン、秘密鍵、セッショントークンの形式で一時的な AWS STS 認証情報が Pod に渡され、サービスアカウントで使用されます。認証情報を使用することで、IAM ロールで有効になっている AWS アクセス許可がサービスアカウントに一時的に付与されます。
  6. クラスター Operator が実行されると、Pod で AWS SDK を使用している Operator は、投影されたサービスアカウントへのパスが含まれるシークレットと AWS IAM ロール ARN を OIDC プロバイダーに対して認証するためのシークレットを消費します。OIDC プロバイダーは、AWS API に対する認証に使用できるように、一時的な STS 認証情報を返します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

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

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

会社概要

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

Theme

© 2026 Red Hat
トップに戻る