2.3. AWS Load Balancer Operator 用に AWS STS クラスターを準備する


Security Token Service (STS) を使用するクラスターに Amazon Web Services (AWS) ロードバランサー Operator をインストールするには、CredentialsRequest オブジェクトを設定してクラスターを準備します。これにより、Operator は AWS Load Balancer Controller を起動し、必要なシークレットにアクセスできるようになります。

AWS Load Balancer Operator は、必要なシークレットが作成されて利用可能になるまで待機します。

Security Token Service (STS) の手順を開始する前に、以下の前提条件を満たしていることを確認してください。

  • OpenShift CLI (oc) がインストールされている。
  • クラスターのインフラストラクチャー ID がわかっている。この ID を表示するには、CLI で次のコマンドを実行します。

    $ oc get infrastructure cluster -o=jsonpath="{.status.infrastructureName}"
  • クラスターの OpenID Connect (OIDC) の DNS 情報がわかっている。この情報を表示するには、CLI で次のコマンドを入力します。

    $ oc get authentication.config cluster -o=jsonpath="{.spec.serviceAccountIssuer}"

    ここでは、以下のようになります。

    {.spec.serviceAccountIssuer}
    OIDC DNS URL を指定します。URL の例は https://rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f です。
  • AWS 管理コンソールにログインし、IAM アクセス管理 アイデンティティープロバイダー に移動して、OIDC Amazon Resource Name (ARN) 情報を見つけました。OIDC の ARN の例は、arn:aws:iam::777777777777:oidc-provider/<oidc_dns_url> です。

2.3.1. AWS Load Balancer Operator の IAM ロール

STS を使用してクラスターに Amazon Web Services (AWS) ロードバランサー Operator をインストールするには、追加のアイデンティティーロールとアクセス管理 (IAM) ロールを設定します。このロールにより、Operator はサブネットおよび仮想プライベートクラウド (VPC) と連携できるようになり、オペレーターはブートストラップに必要な CredentialsRequest オブジェクトを生成できます。

IAM ロールは次の方法で作成できます。

  • Cloud Credential Operator ユーティリティー (ccoctl) と、事前定義された CredentialsRequest オブジェクトを使用します。
  • AWS CLI と事前定義された AWS マニフェストを使用します。

環境が ccoctl コマンドをサポートしていない場合は、AWS CLI を使用します。

2.3.1.1. Cloud Credential Operator ユーティリティーを使用して AWS IAM ロールを作成する

AWS Load Balancer Operator がサブネットや VPC とやり取りできるようにするには、Cloud Credential Operator ユーティリティー (ccoctl) を使用して AWS IAM ロールを作成します。この作業を行うことで、オペレーターがクラスター環境内で正しく機能するために必要な認証情報を生成できます。

前提条件

  • ccoctl バイナリーを抽出して準備する必要があります。

手順

  1. 次のコマンドを実行して、CredentialsRequest カスタムリソース (CR) をダウンロードし、ディレクトリーに保存します。

    $ curl --create-dirs -o <credentials_requests_dir>/operator.yaml https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/operator-credentials-request.yaml
  2. ccoctl ユーティリティーを使用して次のコマンドを実行し、AWS IAM ロールを作成します。

    $ ccoctl aws create-iam-roles \
        --name <name> \
        --region=<aws_region> \
        --credentials-requests-dir=<credentials_requests_dir> \
        --identity-provider-arn <oidc_arn>

    出力例

    2023/09/12 11:38:57 Role arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator created
    2023/09/12 11:38:57 Saved credentials configuration to: /home/user/<credentials_requests_dir>/manifests/aws-load-balancer-operator-aws-load-balancer-operator-credentials.yaml
    2023/09/12 11:38:58 Updated Role policy for Role <name>-aws-load-balancer-operator-aws-load-balancer-operator created

    ここでは、以下のようになります。

    <name>

    AWS Load Balancer Operator 用に作成された AWS IAM ロールの Amazon Resource Name (ARN) を指定します。例 : arn:aws:iam::777777777777:role/<name>-aws-load-balancer-operator-aws-load-balancer-operator

    注記

    AWS IAM ロール名の長さは 12 文字以下にする必要があります。

2.3.1.2. AWS CLI を使用して AWS IAM ロールを作成する

AWS Load Balancer Operator がサブネットおよび VPC と連携できるようにするには、AWS CLI を使用して AWS IAM ロールを作成します。これにより、Operator はクラスター内の必要なネットワークリソースにアクセスし、管理できるようになります。

前提条件

  • AWS コマンドラインインターフェイス (aws) にアクセスできる。

手順

  1. 次のコマンドを実行して、アイデンティティープロバイダーを使用して信頼ポリシーファイルを生成します。

    $ cat <<EOF > albo-operator-trust-policy.json
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Federated": "<oidc_arn>"
                },
                "Action": "sts:AssumeRoleWithWebIdentity",
                "Condition": {
                    "StringEquals": {
                        "<cluster_oidc_endpoint>:sub": "system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-operator-controller-manager"
                    }
                }
            }
        ]
    }
    EOF

    ここでは、以下のようになります。

    <oidc_arn>
    OIDC アイデンティティープロバイダーの Amazon Resource Name (ARN) (例: arn:aws:iam::777777777777:oidc-provider/rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f) を指定します。
    serviceaccount
    AWS Load Balancer Controller のサービスアカウントを指定します。<cluster_oidc_endpoint> の例は、rh-oidc.s3.us-east-1.amazonaws.com/28292va7ad7mr9r4he1fb09b14t59t4f です。
  2. 次のコマンドを実行して、生成された信頼ポリシーを使用して IAM ロールを作成します。

    $ aws iam create-role --role-name albo-operator --assume-role-policy-document file://albo-operator-trust-policy.json

    出力例

    ROLE	arn:aws:iam::<aws_account_number>:role/albo-operator	2023-08-02T12:13:22Z 
    1
    
    ASSUMEROLEPOLICYDOCUMENT	2012-10-17
    STATEMENT	sts:AssumeRoleWithWebIdentity	Allow
    STRINGEQUALS	system:serviceaccount:aws-load-balancer-operator:aws-load-balancer-controller-manager
    PRINCIPAL	arn:aws:iam:<aws_account_number>:oidc-provider/<cluster_oidc_endpoint>

    ここでは、以下のようになります。

    <aws_account_number>
    AWS Load Balancer Operator 用に作成された AWS IAM ロールの ARN を指定します。例 : arn:aws:iam::777777777777:role/albo-operator
  3. 次のコマンドを実行して、AWS Load Balancer Operator の権限ポリシーをダウンロードします。

    $ curl -o albo-operator-permission-policy.json https://raw.githubusercontent.com/openshift/aws-load-balancer-operator/main/hack/operator-permission-policy.json
  4. 次のコマンドを実行して、AWS Load Balancer Controller の権限ポリシーを IAM ロールに割り当てます。

    $ aws iam put-role-policy --role-name albo-operator --policy-name perms-policy-albo-operator --policy-document file://albo-operator-permission-policy.json
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る