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

Container Service for Kubernetes:Terraform を使用した ACK の有効化とサービスロールの割り当て

最終更新日:Aug 28, 2026

初めて Container Service for Kubernetes (ACK) を使用する場合は、Terraform を使用して ACK を有効化し、必要なサービスロールを割り当てます。

このトピックのサンプルコードはすぐに実行できます。直接実行するには、こちらこちらこちら をクリックします。

代わりに ACK コンソールでロールを認可するには、「RAM ユーザー権限の管理」をご参照ください。

前提条件

以下を準備してください。

  • RAM ユーザーの AccessKey ペア

    ルートアカウントではなく RAM ユーザーを使用してください。権限を制限することで、認証情報が漏洩した場合の影響を軽減できます。
  • RAM ユーザーにアタッチされたこのポリシーは、ここで使用する Terraform コマンドを実行するための最小限の権限を付与します。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ram:GetRole",
            "ram:ListRoles",
            "ram:AttachPolicyToRole",
            "ram:ListPoliciesForRole",
            "ram:CreateRole",
            "ram:DetachPolicyFromRole",
            "ram:DeleteRole"
          ],
          "Resource": "*"
        }
      ]
    }
  • Terraform ランタイム環境 (いずれか 1 つを選択):

    オプション

    最適な用途

    Terraform Explorer

    ブラウザベースのセットアップ、インストール不要

    Cloud Shell

    Terraform がプリインストール済み、認証情報も設定済み

    ローカルマシン

    不安定なネットワークまたはカスタム環境

使用する Terraform リソース

すべてのサンプルで、以下の Terraform リソースを使用します。

リソース

タイプ

目的

alicloud_ack_service

データソース

ACK を自動的に有効化

alicloud_ram_role

リソース

RAM ロールを作成

alicloud_ram_role_policy_attachment

リソース

RAM ロールにポリシーをアタッチ

alicloud_ram_roles

データソース

指定したフィルターに一致するアカウント内の RAM ロールを一覧表示

ステップ 1:Container Service for Kubernetes (ACK) の有効化

  1. main.tf ファイルを含む作業ディレクトリを作成し、次の内容をコピーします。

    // ACK を有効化します。
    data "alicloud_ack_service" "open" {
        enable = "On"
        type   = "propayasgo"
    }
  2. Terraform ランタイム環境を初期化します。

    terraform init

    初期化が正常に完了すると、次の出力が表示されます。

    Terraform has been successfully initialized!
    
    You may now begin working with Terraform. Try running "terraform plan" to see
    any changes that are required for your infrastructure. All Terraform commands
    should now work.
    
    If you ever set or change modules or backend configuration for Terraform,
    rerun this command to reinitialize your working directory. If you forget, other
    commands will detect it and remind you to do so if necessary.
  3. ACK を有効化します。

    terraform apply

    プロンプトが表示されたら、yes と入力し、[Enter] を押します。 ACK アクティベーションの出力:

    Apply complete!  Resources: 0 added, 0 changed, 0 destroyed.

ステップ 2:ACK へのサービスロールの割り当て

Container Service for Kubernetes (ACK) でクラスターを作成するには RAM サービスロールが必要です。これにより、アドオンがユーザーに代わって他の Alibaba Cloud サービスにアクセスできるようになります。

この操作は何度実行しても問題ありません。既存のロールはスキップされ、不足しているロールのみが作成されます。

サービスロールと、それに対応する ACK コンポーネントは次のとおりです。

ロール

アドオン

アクセス対象のクラウドサービス

AliyunCSManagedLogRole

ロギングコンポーネント

Simple Log Service (SLS)

AliyunCSManagedCmsRole

モニタリングコンポーネント

CloudMonitor、SLS

AliyunCSManagedCsiRole

ボリュームプラグイン

Elastic Compute Service (ECS)、File Storage NAS (NAS)、Object Storage Service (OSS)

AliyunCSManagedCsiPluginRole

ボリュームプラグイン (csi-plugin)

ECS

AliyunCSManagedCsiProvisionerRole

ボリュームプラグイン (csi-provisioner)

ECS、NAS、OSS

AliyunCSManagedVKRole

VKコンポーネント (ACK Serverless)

複数の Alibaba Cloud サービス

AliyunCSServerlessKubernetesRole

ACK Serverless および Edge のデフォルトロール

ECS、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、Alibaba Cloud DNS PrivateZone

AliyunCSKubernetesAuditRole

監査機能

SLS

AliyunCSManagedNetworkRole

ネットワークプラグイン

ECS、VPC

AliyunCSDefaultRole

ACK クラスター管理 (デフォルト)

ECS、VPC、SLB、Resource Orchestration Service (ROS)、Auto Scaling

AliyunCSManagedKubernetesRole

ACK マネージドおよび Edge クラスターのデフォルトロール

ECS、VPC、SLB、Container Registry

AliyunCSManagedArmsRole

ARMSコンポーネント

Application Real-Time Monitoring Service (ARMS)

AliyunCISDefaultRole

Container Intelligence Service (CIS)

ECS、VPC、SLB (診断)

AliyunOOSLifecycleHook4CSRole

ノードプールのスケーリング (OOS)

ACK、ECS、PolarDB

AliyunCSManagedAutoScalerRole

オートスケーリングコンポーネント

ECS、ACK ノードプールリソース

ユースケース用のロールを選択します。以下の変数ブロックで default リストを調整します。

  1. このコードを main.tf にコピーします:

    // 作成する RAM ロール。
    variable "roles" {
      type = list(object({
        name            = string
        policy_document = string
        description     = string
        policy_name     = string
      }))
      default = [
        {
          name            = "AliyunCSManagedLogRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターのロギングコンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedLogRolePolicy"
        },
        {
          name            = "AliyunCSManagedCmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターの CMS コンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCmsRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiPluginRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiProvisionerRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
        },
        {
          name            = "AliyunCSManagedVKRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK Serverless クラスターの VK コンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedVKRolePolicy"
        },
        {
          name            = "AliyunCSServerlessKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、ACK クラスターはこのロールを引き受けて、クラウドリソースにアクセスします。"
          policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSKubernetesAuditRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK の監査機能は、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSKubernetesAuditRolePolicy"
        },
        {
          name            = "AliyunCSManagedNetworkRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターのネットワークプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedNetworkRolePolicy"
        },
        {
          name            = "AliyunCSDefaultRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、ACK はこのロールを引き受けて、ACK クラスターの管理時に他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSDefaultRolePolicy"
        },
        {
          name            = "AliyunCSManagedKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、ACK クラスターはこのロールを引き受けて、クラウドリソースにアクセスします。"
          policy_name     = "AliyunCSManagedKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSManagedArmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターの Application Real-Time Monitoring Service (ARMS) プラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedArmsRolePolicy"
        },
        {
          name            = "AliyunCISDefaultRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "Container Intelligence Service (CIS) は、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
          policy_name     = "AliyunCISDefaultRolePolicy"
        },
        {
          name            = "AliyunOOSLifecycleHook4CSRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "Operation Orchestration Service (OOS) は、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。ACK は OOS に依存してノードプールをスケーリングします。"
          policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
        },
        {
          name            = "AliyunCSManagedAutoScalerRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK クラスターの自動スケーリングコンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのノードプールリソースにアクセスします。"
          policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
        }
      ]
    }
    
    // 既存の RAM ロールを照会します。
    data "alicloud_ram_roles" "roles" {
        policy_type = "Custom"
        name_regex  = "^Aliyun.*Role$"
    }
    
    locals {
      # 作成するすべてのロール名。
      all_role_names = [for role in var.roles : role.name]
      # すでに存在するロール。
      created_role_names  = [for role in data.alicloud_ram_roles.roles.roles : role.name]
      # 作成する必要があるロール (差集合)。
      complement_names = setsubtract(local.all_role_names, local.created_role_names)
      # 完全なリストをフィルター処理して、作成が必要なロールのみを抽出します。
      complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
    }
    
    // RAM ロールを作成します。
    resource "alicloud_ram_role" "role" {
      for_each    = { for r in local.complement_roles : r.name => r }
      name        = each.value.name
      document    = each.value.policy_document
      description = each.value.description
      force       = true
    }
    
    // システムポリシーを RAM ロールにアタッチします。
    resource "alicloud_ram_role_policy_attachment" "attach" {
      for_each    = { for r in local.complement_roles : r.name => r }
      policy_name = each.value.policy_name
      policy_type = "System"
      role_name   = each.value.name
      depends_on  = [alicloud_ram_role.role]
    }
  2. 変更をプレビューします。

    terraform plan
  3. 変更を適用します。

    terraform apply

    入力を求められたら、yes と入力し、[Enter] キーを押します。ロール作成の出力:

    Apply 完了!  リソース: 2 追加, 0 変更, 0 破棄.

結果の確認

いずれかの方法で、作成したロールを確認してください。

terraform show の実行

terraform show

image

RAM コンソールでの確認

RAM コンソールにログインして、作成したロールを表示します。

image

リソースの削除

Terraform で作成したすべてのリソースを削除します:

terraform destroy

一般的なコマンドをご参照ください。

完全なサンプルコード

このトピックのサンプルコードは、こちらこちらこちら をクリックして直接実行できます。
provider "alicloud" {
    region = var.region_id
}

variable "region_id" {
   type    = string
   default = "cn-hangzhou"
}

// ACK を有効化します。
data "alicloud_ack_service" "open" {
    enable = "On"
    type   = "propayasgo"
}

// 作成する RAM ロール。
variable "roles" {
  type = list(object({
    name            = string
    policy_document = string
    description     = string
    policy_name     = string
  }))
  default = [
    {
      name            = "AliyunCSManagedLogRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターのロギングコンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedLogRolePolicy"
    },
    {
      name            = "AliyunCSManagedCmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターの CMS コンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCmsRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiPluginRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiProvisionerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
    },
    {
      name            = "AliyunCSManagedVKRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK Serverless クラスターの VK コンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedVKRolePolicy"
    },
    {
      name            = "AliyunCSServerlessKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、ACK クラスターはこのロールを引き受けて、クラウドリソースにアクセスします。"
      policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSKubernetesAuditRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK の監査機能は、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSKubernetesAuditRolePolicy"
    },
    {
      name            = "AliyunCSManagedNetworkRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターのネットワークプラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedNetworkRolePolicy"
    },
    {
      name            = "AliyunCSDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、ACK はこのロールを引き受けて、ACK クラスターの管理時に他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSDefaultRolePolicy"
    },
    {
      name            = "AliyunCSManagedKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、ACK クラスターはこのロールを引き受けて、クラウドリソースにアクセスします。"
      policy_name     = "AliyunCSManagedKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSManagedArmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターの ARMS プラグインは、このロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedArmsRolePolicy"
    },
    {
      name            = "AliyunCISDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "CIS はこのロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。"
      policy_name     = "AliyunCISDefaultRolePolicy"
    },
    {
      name            = "AliyunOOSLifecycleHook4CSRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "OOS はこのロールを引き受けて、他の Alibaba Cloud サービスのリソースにアクセスします。ACK は OOS を利用してノードプールをスケーリングします。"
      policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
    },
    {
      name            = "AliyunCSManagedAutoScalerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK クラスターの自動スケーリングコンポーネントは、このロールを引き受けて、他の Alibaba Cloud サービスのノードプールリソースにアクセスします。"
      policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
    }
  ]
}

// 既存の RAM ロールを照会します。
data "alicloud_ram_roles" "roles" {
    policy_type = "Custom"
    name_regex  = "^Aliyun.*Role$"
}

locals {
  # 作成するすべてのロール名。
  all_role_names = [for role in var.roles : role.name]
  # 既存のロール。
  created_role_names  = [for role in data.alicloud_ram_roles.roles.roles : role.name]
  # 作成が必要なロール (差集合)。
  complement_names = setsubtract(local.all_role_names, local.created_role_names)
  # 完全なリストをフィルターし、作成が必要なロールのみに絞り込み。
  complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
}

// RAM ロールを作成します。
resource "alicloud_ram_role" "role" {
  for_each    = { for r in local.complement_roles : r.name => r }
  name        = each.value.name
  document    = each.value.policy_document
  description = each.value.description
  force       = true
}

// システムポリシーを RAM ロールにアタッチします。
resource "alicloud_ram_role_policy_attachment" "attach" {
  for_each    = { for r in local.complement_roles : r.name => r }
  policy_name = each.value.policy_name
  policy_type = "System"
  role_name   = each.value.name
  depends_on  = [alicloud_ram_role.role]
}

付録

サービスロール

AliyunCSManagedLogRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのロギングコンポーネントは、このロールを引き受けて Simple Log Service (SLS) のリソースにアクセスします。

name            = "AliyunCSManagedLogRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのロギングコンポーネントは、このロールを引き受けて Simple Log Service (SLS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedLogRolePolicy"

AliyunCSManagedCmsRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのモニタリングコンポーネントは、このロールを引き受けて、CloudMonitor や SLS などのクラウドサービスのリソースにアクセスします。

name            = "AliyunCSManagedCmsRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのモニタリングコンポーネントは、このロールを引き受けて、CloudMonitor や Simple Log Service (SLS) などのクラウドサービスのリソースにアクセスします。"
policy_name     = "AliyunCSManagedCmsRolePolicy"

AliyunCSManagedCsiRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのボリュームプラグインは、このロールを引き受けて、Elastic Compute Service (ECS)、File Storage NAS (NAS)、および Object Storage Service (OSS) のリソースにアクセスします。

name            = "AliyunCSManagedCsiRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのボリュームプラグインは、このロールを引き受けて、Elastic Compute Service (ECS)、File Storage NAS (NAS)、および Object Storage Service (OSS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedCsiRolePolicy"

AliyunCSManagedCsiPluginRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの csi-plugin コンポーネントは、このロールを引き受けて ECS のリソースにアクセスします。

name            = "AliyunCSManagedCsiPluginRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK マネージドクラスター、ACK Edge クラスター、および ACK Serverless クラスターのボリュームプラグイン (新しい csi-plugin) は、このロールを引き受けて Elastic Compute Service (ECS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedCsiPluginRolePolicy"

AliyunCSManagedCsiProvisionerRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの csi-provisioner コンポーネントは、このロールを引き受けて ECS、NAS、および OSS のリソースにアクセスします。

name            = "AliyunCSManagedCsiProvisionerRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK マネージドクラスター、ACK Edge クラスター、および ACK Serverless クラスターのボリュームプラグイン (新しい csi-provisioner) は、このロールを引き受けて Elastic Compute Service (ECS)、File Storage NAS (NAS)、および Object Storage Service (OSS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"

AliyunCSServerlessKubernetesRole

ACK Edge および Serverless クラスターは、このロールを引き受けて ECS、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、および Alibaba Cloud DNS PrivateZone のリソースにアクセスします。

name            = "AliyunCSServerlessKubernetesRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "デフォルトでは、ACK Serverless クラスターはこのロールを引き受けて、Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、および Alibaba Cloud DNS PrivateZone のリソースにアクセスします。"
policy_name     = "AliyunCSServerlessKubernetesRolePolicy"

AliyunCSKubernetesAuditRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの監査コンポーネントは、このロールを引き受けて SLS のリソースにアクセスします。

name            = "AliyunCSKubernetesAuditRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK の監査機能は、このロールを引き受けて、Simple Log Service (SLS) のリソースにアクセスします。"
policy_name     = "AliyunCSKubernetesAuditRolePolicy"

AliyunCSManagedNetworkRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのネットワークプラグインは、このロールを引き受けて ECS および VPC のリソースにアクセスします。

name            = "AliyunCSManagedNetworkRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのネットワークプラグインは、このロールを引き受けて、Elastic Compute Service (ECS) および Virtual Private Cloud (VPC) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedNetworkRolePolicy"

AliyunCSDefaultRole

ACK は、クラスターを管理する際にこのロールを引き受けて、ECS、VPC、SLB、Resource Orchestration Service (ROS)、および Auto Scaling のリソースにアクセスします。

name            = "AliyunCSDefaultRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "デフォルトでは、ACK はこのロールを引き受けて、クラスターの管理時に Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、Resource Orchestration Service (ROS)、および Auto Scaling のリソースにアクセスします。"
policy_name     = "AliyunCSDefaultRolePolicy"

AliyunCSManagedKubernetesRole

ACK マネージドクラスターおよびエッジクラスターは、このロールを引き受けて ECS、VPC、SLB、および Container Registry のリソースにアクセスします。

name            = "AliyunCSManagedKubernetesRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "デフォルトでは、ACK クラスターはこのロールを引き受けて、Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、および Container Registry のリソースにアクセスします。"
policy_name     = "AliyunCSManagedKubernetesRolePolicy"

AliyunCSManagedArmsRole

ACK Edge および Serverless クラスターの Application Real-Time Monitoring Service (ARMS) コンポーネントは、このロールを引き受けて ARMS のリソースにアクセスします。

name            = "AliyunCSManagedArmsRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターの Application Real-Time Monitoring Service (ARMS) コンポーネントは、このロールを引き受けて ARMS のリソースにアクセスします。"
policy_name     = "AliyunCSManagedArmsRolePolicy"

AliyunCISDefaultRole

Container Intelligence Service (CIS) は、このロールを引き受けて、診断と検査のために ECS、VPC、および SLB のリソースにアクセスします。

name            = "AliyunCISDefaultRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "Container Intelligence Service (CIS) はこのロールを引き受けて、診断と検査のために Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、および Server Load Balancer (SLB) のリソースにアクセスします。"
policy_name     = "AliyunCISDefaultRolePolicy"

AliyunOOSLifecycleHook4CSRole

Operation Orchestration Service (OOS) は、このロールを引き受けて ACK、ECS、および PolarDB のリソースにアクセスします。ACK は OOS を使用してノードプールをスケーリングします。

name            = "AliyunOOSLifecycleHook4CSRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "Operation Orchestration Service (OOS) はこのロールを引き受けて、ACK、Elastic Compute Service (ECS)、および PolarDB のリソースにアクセスします。ACK は OOS を利用してノードプールをスケーリングします。"
policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"

オプションのロール

これらのロールは基本的なクラスター作成にはオプションですが、特定の機能には必要です。

AliyunCSManagedAcrRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの Secret フリーのイメージプルプラグインは、このロールを引き受けて Container Registry のリソースにアクセスします。

name            = "AliyunCSManagedAcrRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターの Secret フリーのイメージプルプラグインは、このロールを引き受けて Container Registry のリソースにアクセスします。"
policy_name     = "AliyunCSManagedAcrRolePolicy"

AliyunCSManagedNlcRole

ACK マネージドおよび ACK Edge クラスターのノードライフサイクルコントローラーは、このロールを引き受けて ECS および ACK のノードプールリソースにアクセスします。

name            = "AliyunCSManagedNlcRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのノードライフサイクルコントローラーは、このロールを引き受けて Elastic Compute Service (ECS) および ACK のノードプールリソースにアクセスします。"
policy_name     = "AliyunCSManagedNlcRolePolicy"

AliyunCSManagedAutoScalerRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの自動スケーリングコンポーネントは、このロールを引き受けて ECS および ACK のノードプールリソースにアクセスします。

name            = "AliyunCSManagedAutoScalerRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターの自動スケーリングコンポーネントは、このロールを引き受けて Elastic Compute Service (ECS) および ACK のノードプールリソースにアクセスします。"
policy_name     = "AliyunCSManagedAutoScalerRolePolicy"

AliyunCSManagedSecurityRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターの Secret の暗号化および認証情報管理コンポーネントは、このロールを引き受けて Key Management Service (KMS) のリソースにアクセスします。

name            = "AliyunCSManagedSecurityRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターの Secret の暗号化および認証情報管理コンポーネントは、このロールを引き受けて Key Management Service (KMS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedSecurityRolePolicy"

AliyunCSManagedCostRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのコスト分析コンポーネントは、このロールを引き受けて ECS および Elastic Container Instance のリソースにアクセスし、Bills Management API を呼び出します。

name            = "AliyunCSManagedCostRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのコスト分析コンポーネントは、このロールを引き受けて Elastic Compute Service (ECS) および Elastic Container Instance のリソースにアクセスし、Bills Management API を呼び出します。"
policy_name     = "AliyunCSManagedCostRolePolicy"

AliyunCSManagedNimitzRole

ACK Edge クラスターのコントロールコンポーネントは、このロールを引き受けて Smart Access Gateway (SAG)、VPC、および Cloud Enterprise Network (CEN) のリソースにアクセスします。

name            = "AliyunCSManagedNimitzRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK Edge クラスターのコントロールコンポーネントは、このロールを引き受けて Smart Access Gateway (SAG)、Virtual Private Cloud (VPC)、および Cloud Enterprise Network (CEN) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedNimitzRolePolicy"

AliyunCSManagedBackupRestoreRole

ACK マネージド、ACK Edge、および ACK Serverless クラスターのバックアップセンターコンポーネントは、このロールを引き受けて Cloud Backup および Object Storage Service (OSS) のリソースにアクセスします。

name            = "AliyunCSManagedBackupRestoreRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK クラスターのバックアップセンターコンポーネントは、このロールを引き受けて Cloud Backup および Object Storage Service (OSS) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedBackupRestoreRolePolicy"

AliyunCSManagedEdgeRole

ACK Edge クラスターのコントロールコンポーネントは、このロールを引き受けて SAG、VPC、および CEN のリソースにアクセスします。

name            = "AliyunCSManagedEdgeRole"
policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
description     = "ACK Edge クラスターのコントロールコンポーネントは、このロールを引き受けて Smart Access Gateway (SAG)、Virtual Private Cloud (VPC)、および Cloud Enterprise Network (CEN) のリソースにアクセスします。"
policy_name     = "AliyunCSManagedEdgeRolePolicy"

次のステップ