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

Server Load Balancer:ALB Ingress コントローラーへの権限付与

最終更新日:Apr 21, 2026

ALB Ingress コントローラーは、セルフマネージドクラスターに Ingress トラフィック管理機能を提供します。このトピックでは、これらの機能を有効にするために必要な権限を付与する方法について説明します。

操作手順

  1. ステップ 1: RAM ユーザーの作成

  2. ステップ 2: ポリシーの作成と権限の付与

  3. ステップ 3: AccessKey ID と AccessKey Secret の設定

ステップ 1: RAM ユーザーの作成

  1. ご利用の Alibaba Cloud アカウント (root ユーザー) を使用して、Resource Access Management (RAM) コンソールにログインします。

  2. 左側のナビゲーションウィンドウで、Identities > Users を選択し、Create User をクリックします。

  3. Create User ページで、User Login NameDisplay Name を入力し、Permanent AccessKey を選択してから、はい をクリックします。

  4. Create User ページで、AccessKey IDAccessKey Secret をコピーします。

ステップ 2: ポリシーの作成と権限の付与

  1. ALB Ingress コントローラーに必要な権限を持つポリシーを作成します。

    1. RAM コンソールの左側のナビゲーションウィンドウで、Permissions > Policies を選択し、Create Policy をクリックします。

    2. JSON タブで、次のポリシーをエディターに貼り付けてから、はい をクリックします。

      ポリシーコード

      {
        "Version": "1",
        "Statement": [
          {
            "Action": [
              "ecs:Describe*",
              "ecs:CreateRouteEntry",
              "ecs:DeleteRouteEntry",
              "ecs:CreateNetworkInterface",
              "ecs:DeleteNetworkInterface",
              "ecs:CreateNetworkInterfacePermission",
              "ecs:DeleteNetworkInterfacePermission",
              "ecs:ModifyInstanceAttribute",
              "ecs:AttachKeyPair",
              "ecs:StopInstance",
              "ecs:StartInstance",
              "ecs:ReplaceSystemDisk"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "slb:Describe*",
              "slb:CreateLoadBalancer",
              "slb:DeleteLoadBalancer",
              "slb:ModifyLoadBalancerInternetSpec",
              "slb:RemoveBackendServers",
              "slb:AddBackendServers",
              "slb:RemoveTags",
              "slb:AddTags",
              "slb:StopLoadBalancerListener",
              "slb:StartLoadBalancerListener",
              "slb:SetLoadBalancerHTTPListenerAttribute",
              "slb:SetLoadBalancerHTTPSListenerAttribute",
              "slb:SetLoadBalancerTCPListenerAttribute",
              "slb:SetLoadBalancerUDPListenerAttribute",
              "slb:CreateLoadBalancerHTTPSListener",
              "slb:CreateLoadBalancerHTTPListener",
              "slb:CreateLoadBalancerTCPListener",
              "slb:CreateLoadBalancerUDPListener",
              "slb:DeleteLoadBalancerListener",
              "slb:CreateVServerGroup",
              "slb:DescribeVServerGroups",
              "slb:DeleteVServerGroup",
              "slb:SetVServerGroupAttribute",
              "slb:DescribeVServerGroupAttribute",
              "slb:ModifyVServerGroupBackendServers",
              "slb:AddVServerGroupBackendServers",
              "slb:ModifyLoadBalancerInstanceSpec",
              "slb:ModifyLoadBalancerInternetSpec",
              "slb:SetLoadBalancerModificationProtection",
              "slb:SetLoadBalancerDeleteProtection",
              "slb:SetLoadBalancerName",
              "slb:ModifyLoadBalancerInstanceChargeType",
              "slb:RemoveVServerGroupBackendServers"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "nlb:TagResources",
              "nlb:UnTagResources",
              "nlb:ListTagResources",
              "nlb:CreateLoadBalancer",
              "nlb:DeleteLoadBalancer",
              "nlb:GetLoadBalancerAttribute",
              "nlb:ListLoadBalancers",
              "nlb:UpdateLoadBalancerAttribute",
              "nlb:UpdateLoadBalancerAddressTypeConfig",
              "nlb:UpdateLoadBalancerZones",
              "nlb:CreateListener",
              "nlb:DeleteListener",
              "nlb:ListListeners",
              "nlb:UpdateListenerAttribute",
              "nlb:StopListener",
              "nlb:StartListener",
              "nlb:GetListenerAttribute",
              "nlb:GetListenerHealthStatus",
              "nlb:CreateServerGroup",
              "nlb:DeleteServerGroup",
              "nlb:UpdateServerGroupAttribute",
              "nlb:AddServersToServerGroup",
              "nlb:RemoveServersFromServerGroup",
              "nlb:UpdateServerGroupServersAttribute",
              "nlb:ListServerGroups",
              "nlb:ListServerGroupServers",
              "nlb:GetJobStatus"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "vpc:Describe*",
              "vpc:DeleteRouteEntry",
              "vpc:CreateRouteEntry"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
              "StringEquals": {
                "ram:ServiceName": [
                  "alb.aliyuncs.com",
                  "audit.log.aliyuncs.com",
                  "logdelivery.alb.aliyuncs.com"
                ]
              }
            }
          },
          {
            "Action": [
              "yundun-cert:DescribeSSLCertificateList",
              "yundun-cert:DescribeSSLCertificatePublicKeyDetail",
              "yundun-cert:CreateSSLCertificateWithName",
              "yundun-cert:DeleteSSLCertificate"
            ],
            "Resource": "*",
            "Effect": "Allow"
          },
          {
            "Action": [
              "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:UpdateRulesAttribute",
              "alb:CreateRules",
              "alb:DeleteRules",
              "alb:ListRules",
              "alb:CreateServerGroup",
              "alb:DeleteServerGroup",
              "alb:UpdateServerGroupAttribute",
              "alb:DescribeZones",
              "alb:CreateAcl",
              "alb:DeleteAcl",
              "alb:ListAcls",
              "alb:AddEntriesToAcl",
              "alb:AssociateAclsWithListener",
              "alb:ListAclEntries",
              "alb:RemoveEntriesFromAcl",
              "alb:DissociateAclsFromListener",
              "alb:EnableLoadBalancerIpv6Internet",
              "alb:DisableLoadBalancerIpv6Internet"
            ],
            "Resource": "*",
            "Effect": "Allow"
          }
        ]
      }
    3. Create Policy ダイアログボックスで、ポリシーの [名前] を入力し、はい をクリックします。

  2. RAM ユーザーにポリシーをアタッチします。

    1. 左側のナビゲーションウィンドウで、Identities > Users を選択します。

    2. Users ページで、「ステップ 1: RAM ユーザーの作成」で作成した RAM ユーザーを見つけます。Actions 列で、権限の追加 をクリックします。

    3. Grant Permission パネルの Policies で、Custom Policy を選択します。作成したポリシーを選択し、他のパラメーターはデフォルト設定のままにして、Grant permissions をクリックします。

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

ステップ 3: AccessKey ID と AccessKey Secret の設定

  1. AccessKey ID と AccessKey Secret を Base64 エンコードします。

    1. Base64 エンコーディングツールで、AccessKey ID を入力し、[エンコード] をクリックします。

    2. ご利用の AccessKey Secret についても、このステップを繰り返します。

  2. 次のコマンドを実行して、load-balancer-config ConfigMap マニフェストを開きます。次に、Base64 エンコードされた認証情報を追加してファイルを保存します。

    vim <load-balancer-config-filename> 

    以下に、load-balancer-config ConfigMap の例を示します。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: load-balancer-config
      namespace: kube-system
    data:
      cloud-config.conf: |-
        {
            "Global": {
                "AccessKeyID": "<YOUR_ACCESS_KEY_ID>",  # Base64 エンコードされた AccessKey ID を入力します。
                "AccessKeySecret": "<YOUR_ACCESS_KEY_SECRET>"    # Base64 エンコードされた AccessKey Secret を入力します。
            }
        }
                            
  3. 次のコマンドを実行して、load-balancer-config ConfigMap をデプロイします。

    kubectl apply -f  <load-balancer-config-filename> 
  4. 変更を有効にするには、load-balancer-controller Pod を再起動します。

    1. 次のコマンドを実行して、load-balancer-controller Pod の名前を検索します。

      kubectl get pod -n kube-system|grep load-balancer-controller
    2. 次のコマンドを実行して、load-balancer-controller Pod を削除します。

      kubectl delete pod -n kube-system load-balancer-controller-***

      期待される出力:

      pod load-balancer-controller-*** deleted
    3. 次のコマンドを実行して、再作成された load-balancer-controller Pod のステータスを確認します。

      kubectl get pod -n kube-system|grep load-balancer-controller

      期待される出力:

      load-balancer-controller-0o9s***     1/1    Running   0    10s

関連ドキュメント

チュートリアル:

セルフマネージド Kubernetes クラスターで ALB Ingress を使用する

ソースコードドキュメント: