2.3.3.2. AWS CLI を使用してコントローラー用の AWS IAM ロールを作成する


AWS Load Balancer Controller がサブネットおよび仮想プライベートクラウド (VPC) と連携できるようにするには、AWS CLI を使用して IAM ロールを作成します。これにより、コントローラーがクラスター内のネットワークリソースを管理するために必要な特定の権限を確実に取得できます。

前提条件

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

手順

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

    $ cat <<EOF > albo-controller-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. 次のコマンドを実行して、生成された信頼ポリシーを使用して AWS IAM ロールを作成します。

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

    出力例

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

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

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

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

    $ aws iam put-role-policy --role-name albo-controller --policy-name perms-policy-albo-controller --policy-document file://albo-controller-permission-policy.json
  5. AWSLoadBalancerController オブジェクトを定義する YAML ファイルを作成します。

    sample-aws-lb-manual-creds.yaml ファイルの例

    apiVersion: networking.olm.openshift.io/v1
    kind: AWSLoadBalancerController
    metadata:
      name: cluster
    spec:
      credentialsRequestConfig:
        stsIAMRoleARN: <albc_role_arn>

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

    kind
    AWSLoadBalancerController オブジェクトを指定します。
    メタデータ名
    AWS Load Balancer Controller の名前を指定します。このインスタンス名は、関連するすべてのリソースの接尾辞として使用されます。
    stsIAMRoleARN
    AWS Load Balancer Controller の ARN ロールを指定します。CredentialsRequest オブジェクトは、この ARN ロールを使用して AWS 認証情報をプロビジョニングします。<albc_role_arn> の例は、arn:aws:iam::777777777777:role/albo-controller です。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る