すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:ALB Ingress コントローラーへの権限付与

最終更新日:Mar 27, 2026

ALB Ingress コントローラーは、ご利用のクラスターに代わってロードバランサーリソースを作成および管理するために、Application Load Balancer (ALB)、Resource Access Management (RAM)、VPC、Elastic Compute Service (ECS) API など、Alibaba Cloud API を呼び出します。ACK 専用クラスターでは、コントローラーはデフォルトでクラウド API 権限を持たないワーカーノードで実行されます。このトピックでは、コントローラーが ALB リソースを管理できるように、必要な権限を付与する方法について説明します。

説明

この手順は、ACK 専用クラスターにのみ適用されます。ACK マネージドクラスターおよび ACK Serverless クラスターの場合、ALB Ingress コントローラーはすでに必要な権限を持っており、追加の構成は不要です。

前提条件

開始する前に、以下を確認してください。

  • ACK 専用クラスター

  • クラスターに ALB Ingress コントローラーコンポーネントがインストールされていること

ステップ 1: カスタム RAM ポリシーの作成

  1. 管理者権限を持つ RAM ユーザーとして、RAM コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、[権限] > [ポリシー] を選択します。

  3. ポリシー」ページで、[ポリシーの作成] をクリックします。

    image

  4. ポリシーの作成」ページで、[JSON] タブをクリックします。

    image

  5. デフォルトのコンテンツを以下のポリシードキュメントに置き換え、[OK] をクリックします。

    説明

    複数のポリシー ステートメントはコンマ (,) で区切ります。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "alb:EnableLoadBalancerIpv6Internet",
                    "alb:DisableLoadBalancerIpv6Internet",
                    "alb:CreateAcl",
                    "alb:DeleteAcl",
                    "alb:ListAcls",
                    "alb:ListAclRelations",
                    "alb:AddEntriesToAcl",
                    "alb:AssociateAclsWithListener",
                    "alb:ListAclEntries",
                    "alb:RemoveEntriesFromAcl",
                    "alb:DissociateAclsFromListener",
                    "alb:TagResources",
                    "alb:UnTagResources",
                    "alb:ListServerGroups",
                    "alb:ListServerGroupServers",
                    "alb:AddServersToServerGroup",
                    "alb:RemoveServersFromServerGroup",
                    "alb:ReplaceServersInServerGroup",
                    "alb:CreateLoadBalancer",
                    "alb:DeleteLoadBalancer",
                    "alb:UpdateLoadBalancerAttribute",
                    "alb:UpdateLoadBalancerEdition",
                    "alb:EnableLoadBalancerAccessLog",
                    "alb:DisableLoadBalancerAccessLog",
                    "alb:EnableDeletionProtection",
                    "alb:DisableDeletionProtection",
                    "alb:ListLoadBalancers",
                    "alb:GetLoadBalancerAttribute",
                    "alb:ListListeners",
                    "alb:CreateListener",
                    "alb:GetListenerAttribute",
                    "alb:UpdateListenerAttribute",
                    "alb:ListListenerCertificates",
                    "alb:AssociateAdditionalCertificatesWithListener",
                    "alb:DissociateAdditionalCertificatesFromListener",
                    "alb:DeleteListener",
                    "alb:CreateRule",
                    "alb:DeleteRule",
                    "alb:UpdateRuleAttribute",
                    "alb:CreateRules",
                    "alb:UpdateRulesAttribute",
                    "alb:DeleteRules",
                    "alb:ListRules",
                    "alb:UpdateListenerLogConfig",
                    "alb:CreateServerGroup",
                    "alb:DeleteServerGroup",
                    "alb:UpdateServerGroupAttribute",
                    "alb:UpdateLoadBalancerAddressTypeConfig",
                    "alb:AttachCommonBandwidthPackageToLoadBalancer",
                    "alb:DetachCommonBandwidthPackageFromLoadBalancer",
                    "alb:UpdateServerGroupServersAttribute",
                    "alb:MoveResourceGroup",
                    "alb:DescribeZones",
                    "alb:ListAScripts",
                    "alb:CreateAScripts",
                    "alb:UpdateAScripts",
                    "alb:DeleteAScripts"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "ram:CreateServiceLinkedRole",
                "Resource": "*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "ram:ServiceName": [
                            "alb.aliyuncs.com",
                            "audit.log.aliyuncs.com",
                            "nlb.aliyuncs.com",
                            "logdelivery.alb.aliyuncs.com"
                        ]
                    }
                }
            },
            {
                "Action": [
                    "log:GetProductDataCollection",
                    "log:OpenProductDataCollection",
                    "log:CloseProductDataCollection"
                ],
                "Resource": "acs:log:*:*:project/*/logstore/alb_*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "yundun-cert:DescribeSSLCertificateList",
                    "yundun-cert:DescribeSSLCertificatePublicKeyDetail",
                    "yundun-cert:CreateSSLCertificateWithName",
                    "yundun-cert:DeleteSSLCertificate"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "vpc:DescribeVSwitches",
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": "ecs:DescribeNetworkInterfaces",
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  6. [ポリシーの作成]」ダイアログボックスで、「[ポリシー名]」と「[説明]」を入力し、「[OK]」をクリックします。

ステップ 2: ポリシーをワーカー RAM ロールにアタッチ

  1. ACK コンソール」にログインします。左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  2. [クラスター] ページで、クラスター名をクリックし、[基本情報] タブをクリックします。

  3. [基本情報] タブで、[ワーカー RAM ロール] の右側のリンクをクリックして、RAM コンソールを開きます。

  4. [権限] タブで、[権限の付与] をクリックします。[権限の付与] パネルで、手順 1 で作成したカスタムポリシーを見つけ、選択します。

  5. [権限の付与] をクリックし、次に [閉じる] をクリックします。

ステップ 3: インスタンス RAM ロールの確認

  1. クラスター詳細ページの左側のナビゲーションウィンドウで、[ノード] > [ノード] を選択します。

  2. ノード]ページで、ワーカーノードのインスタンス ID(例:i-2ze5d2qi9iy90pzb****)をクリックします。

  3. インスタンスの詳細ページで、[インスタンスの詳細] タブをクリックします。[その他の情報] セクションで、[RAM ロール] の横に RAM ロールが表示されているかどうかを確認します。RAM ロールがアタッチされていない場合は、ECS インスタンスに RAM ロールをアタッチします。詳細については、「インスタンスの RAM ロールの分離または変更」をご参照ください。

ステップ 4: ALB Ingress コントローラー Pod の再起動

重要

この手順は、オフピーク時間帯に実行してください。

新しい権限を認識させるために、alb-ingress-controller Pod を再起動します。

  1. Pod 名を取得します。

    kubectl -n kube-system get pod | grep alb-ingress-controller

    期待される出力:

    NAME                          READY   STATUS    RESTARTS   AGE
    alb-ingress-controller-***    1/1     Running   0          60s
  2. Pod を削除します。alb-ingress-controller-*** を前の手順で取得した名前に置き換えます。

    kubectl -n kube-system delete pod alb-ingress-controller-***

    期待される出力:

    pod "alb-ingress-controller-***" deleted
  3. 数分後、Pod が再び実行中であることを確認します。

    kubectl -n kube-system get pod

    期待される出力:

    NAME                           READY   STATUS    RESTARTS   AGE
    alb-ingress-controller-***2    1/1     Running   0          60s

    [実行中] 状態により、コントローラーが新しい権限で正しく動作していることを確認できます。

次のステップ

ALB Ingress を使用してクラスター内のサービスにトラフィックをルーティングするには、「ALB Ingress を使用したサービスの公開」をご参照ください。