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

Container Service for Kubernetes:ALB Ingress Controller への権限付与

最終更新日:Oct 14, 2026

ALB Ingress Controller は、Application Load Balancer (ALB)、Resource Access Management (RAM)、Virtual Private Cloud (VPC)、および Elastic Compute Service (ECS) の API を呼び出します。Container Service for Kubernetes (ACK) 専用クラスターでは、デフォルトでワーカーノードにクラウド API 権限がないため、ALB Ingress を介して公開されるサービスをデプロイする前に、これらの権限を付与する必要があります。

前提条件

作業を開始する前に、次の条件が満たされていることを確認してください。

注意事項

ALB Ingress Controller への権限付与は、ACK 専用クラスターでのみ必要です。ACK マネージドクラスターおよび ACK Serverless クラスターでは、ALB Ingress Controller に権限を付与しなくても ALB Ingress を利用できます。

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

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

  2. 左側メニューで、[権限] > [ポリシー] を選択します。

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

    image

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

    image

    デフォルトのポリシーテンプレートには、Version ("1" に設定) と ステートメント配列が含まれています。各ステートメントには、エフェクト (デフォルト値:"Allow")、Action、Resource、および Condition が含まれます。必要なアクションとリソースを Action と Resource で指定します。

  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. [権限] タブで、[ポリシーのアタッチ] をクリックします。[ポリシーのアタッチ] パネルの [ポリシー] セクションで、前の手順で作成したカスタムポリシーを絞り込んで選択します。

  5. [OK] をクリックします。

  6. [閉じる] をクリックします。

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

  1. クラスター詳細ページの左側メニューで、[ノード] > [ノード] を選択します。

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

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

ステップ4:ALB Ingress Controller 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

    Running ステータスは、ALB Ingress Controller が新しい権限で正しく動作していることを示します。

次のステップ

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