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

Container Service for Kubernetes:Terraform を使用して初めて ACK をアクティベートし、サービスロールに権限を付与する方法

最終更新日:Jan 07, 2026

このトピックでは、Terraform を使用して初めて Container Service for Kubernetes (ACK) をアクティベートし、サービスロールに権限を付与する方法について説明します。

説明

このトピックのサンプルコードはワンクリックで実行できます。ワンクリックで実行

前提条件

  • Alibaba Cloud アカウントは、アカウント内のすべてのリソースに対する完全な権限を持っています。Alibaba Cloud アカウントの認証情報が漏洩すると、リソースが重大なセキュリティリスクにさらされます。Resource Access Management (RAM) ユーザーを使用し、そのユーザーの AccessKey を作成することを推奨します。詳細については、「RAM ユーザーの作成」および「AccessKey の作成」をご参照ください。

  • Terraform でコマンドを実行するために使用する RAM ユーザーには、次のポリシーがアタッチされています。このポリシーには、Terraform でコマンドを実行するために必要な最小限の権限が含まれています。詳細については、「RAM ユーザーへの権限付与」をご参照ください。

    このアクセスポリシーにより、RAM ユーザーは RAM ロールを作成、表示、削除し、RAM ロールのアクセスポリシーを管理できます。

    {
      "Version": "1",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "ram:GetRole",
            "ram:ListRoles",
            "ram:AttachPolicyToRole",
            "ram:ListPoliciesForRole",
            "ram:CreateRole",
            "ram:DetachPolicyFromRole",
            "ram:DeleteRole"
          ],
          "Resource": "*"
        }
      ]
    }
  • Terraform ランタイム環境を準備します。Terraform を使用するには、次のいずれかの方法を使用できます。

    • Terraform Explorer で Terraform を使用する:Alibaba Cloud は Terraform のオンラインランタイム環境を提供しています。インストールすることなく、オンラインで Terraform にログインして使用できます。この方法は、追加費用なしで迅速かつ便利に Terraform を使用およびデバッグしたいシナリオに適しています。

    • Cloud Shell:Cloud Shell には Terraform がプリインストールされており、認証情報が設定されています。Cloud Shell で Terraform コマンドを実行できます。この方法は、低コストで効率的かつ便利に Terraform を使用およびアクセスする必要があるシナリオに適しています。

    • ローカルで Terraform をインストールして設定する:この方法は、ネットワーク接続が悪い場合や、カスタム開発環境が必要なシナリオに適しています。

使用するリソース

ステップ 1:ACK のアクティベーション

ACK クラスターを作成する前に、Container Service をアクティベートする必要があります。

  1. 作業ディレクトリを作成します。作業ディレクトリに main.tf という名前の設定ファイルを作成し、次のコードを main.tf ファイルにコピーします。

    // Container Service for Kubernetes (ACK) をアクティベートします。
    data "alicloud_ack_service" "open" {
        enable = "On"
        type   = "propayasgo"
    }
  2. 次のコマンドを実行して、Terraform 環境を初期化します。

    terraform init

    次の出力は、Terraform が正常に初期化されたことを示します。

    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 はアクティベートされています。

    You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
    
    Do you want to perform these actions?
      Terraform will perform the actions described above.
      Only 'yes' will be accepted to approve.
    
      Enter a value: yes
    
    
    Apply complete! Resources: 0 added, 0 changed, 0 destroyed.

ステップ 2:ロールの権限付与

初めて Container Service for Kubernetes にログインする際には、サービスアカウントにシステムサービスロールを付与する必要があります。以下の手順でその方法を説明します。

  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     = "クラスターのロギングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedLogRolePolicy"
        },
        {
          name            = "AliyunCSManagedCmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターの CMS コンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCmsRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiPluginRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiProvisionerRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
        },
        {
          name            = "AliyunCSManagedVKRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "ACK サーバーレスクラスターの VK コンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedVKRolePolicy"
        },
        {
          name            = "AliyunCSServerlessKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSKubernetesAuditRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスター監査機能は、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSKubernetesAuditRolePolicy"
        },
        {
          name            = "AliyunCSManagedNetworkRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターネットワークコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedNetworkRolePolicy"
        },
        {
          name            = "AliyunCSDefaultRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、このロールはクラスター操作中に他のクラウドプロダクトのリソースにアクセスするために使用されます。"
          policy_name     = "AliyunCSDefaultRolePolicy"
        },
        {
          name            = "AliyunCSManagedKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSManagedArmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターの Arms プラグインは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedArmsRolePolicy"
        },
        {
          name            = "AliyunCISDefaultRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "Container Service (CS) の人工知能 (AIOps) は、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCISDefaultRolePolicy"
        },
        {
          name            = "AliyunOOSLifecycleHook4CSRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスター内のノードプールのスケーリングは OOS に依存します。OOS はこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
        },
        {
          name            = "AliyunCSManagedAutoScalerRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "クラスターの弾性スケーリングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
          policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
        }
      ]
    }
    
    // RAM ロールのリストをクエリします。
    data "alicloud_ram_roles" "roles" {
      policy_type = "Custom"
      name_regex  = "^Aliyun.*Role$"
    }
    
    locals {
      # 必要なすべての RAM ロールの名前を抽出します。
      all_role_names = [for role in var.roles : role.name]
      # 既存の RAM ロールの名前を抽出します。
      created_role_names = [for role in data.alicloud_ram_roles.roles.roles : role.name]
      # 補集合を計算します:作成されていない必要な RAM ロールを見つけます。
      complement_names = setsubtract(local.all_role_names, local.created_role_names)
      # 作成される RAM ロール。
      complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
    }
    
    // ロールを作成します。
    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
    }
    
    // ロールをシステム権限に関連付けます。
    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]
    }
    説明

    この例では、`variable` は Terraform にパラメーターとして渡される入力変数です。この例のパラメーター値については、「付録」をご参照ください。サービスロールは必須パラメーターであり、必要に応じてオプションのロールを選択できます。

  2. 実行計画を作成し、変更をプレビューします。

    terraform plan
  3. 次のコマンドを実行して実行計画を適用し、アカウントにロールを付与します。

    terraform apply

    プロンプトが表示されたら、yes と入力して Enter キーを押します。コマンドが完了するまで待ちます。次の情報が返された場合、権限付与は完了です。

    Apply complete! Resources: 2 added, 0 changed, 0 destroyed.
  4. 結果を検証できます。

    terraform show コマンドの実行

    次のコマンドを実行して、Terraform によって作成されたリソースの詳細をクエリできます:

    terraform show

    image

    RAM コンソールへのログイン

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

リソースのクリーンアップ

Terraform によって作成または管理されているリソースが不要になった場合は、次のコマンドを実行してリソースを解放します。terraform destroy コマンドの詳細については、「一般的なコマンド」をご参照ください。

terraform destroy

完全な例

説明

このトピックのサンプルコードはワンクリックで実行できます。ワンクリックで実行

サンプルコード

provider "alicloud" {
  region = var.region_id
}

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

// Container Service for Kubernetes (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     = "クラスターのロギングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedLogRolePolicy"
    },
    {
      name            = "AliyunCSManagedCmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの CMS コンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCmsRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiPluginRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiProvisionerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのストレージコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
    },
    {
      name            = "AliyunCSManagedVKRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "ACK サーバーレスクラスターの VK コンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedVKRolePolicy"
    },
    {
      name            = "AliyunCSServerlessKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSKubernetesAuditRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスター監査機能は、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSKubernetesAuditRolePolicy"
    },
    {
      name            = "AliyunCSManagedNetworkRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターネットワークコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedNetworkRolePolicy"
    },
    {
      name            = "AliyunCSDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、このロールはクラスター操作中に他のクラウドプロダクトのリソースにアクセスするために使用されます。"
      policy_name     = "AliyunCSDefaultRolePolicy"
    },
    {
      name            = "AliyunCSManagedKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSManagedArmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの Arms プラグインは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedArmsRolePolicy"
    },
    {
      name            = "AliyunCISDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "Container Service (CS) の人工知能 (AIOps) は、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCISDefaultRolePolicy"
    },
    {
      name            = "AliyunOOSLifecycleHook4CSRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスター内のノードプールのスケーリングは OOS に依存します。OOS はこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
    },
    {
      name            = "AliyunCSManagedAutoScalerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの弾性スケーリングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
    }
  ]
}

// RAM ロールのリストをクエリします。
data "alicloud_ram_roles" "roles" {
  policy_type = "Custom"
  name_regex  = "^Aliyun.*Role$"
}

locals {
  # 必要なすべての RAM ロールの名前を抽出します。
  all_role_names = [for role in var.roles : role.name]
  # 既存の RAM ロールの名前を抽出します。
  created_role_names = [for role in data.alicloud_ram_roles.roles.roles : role.name]
  # 補集合を計算します:作成されていない必要な RAM ロールを見つけます。
  complement_names = setsubtract(local.all_role_names, local.created_role_names)
  # 作成される RAM ロール。
  complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
}

// ロールを作成します。
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
}

// ロールをシステム権限に関連付けます。
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 サーバーレスクラスターのログコンポーネントは、このロールを偽装して Simple Log Service (SLS) のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedLogRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのロギングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedLogRolePolicy"
    }

AliyunCSManagedCmsRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、または ACK サーバーレスクラスターのモニタリングコンポーネントは、このロールを偽装して CloudMonitor や SLS などの他のクラウドサービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedCmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの CMS コンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCmsRolePolicy"
    }

AliyunCSManagedCsiRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのボリュームプラグインは、このロールを偽装して ECS、NAS、OSS などのサービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedCsiRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのストレージプラグインは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiRolePolicy"
    }

AliyunCSManagedCsiPluginRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのストレージコンポーネント (新しい 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 サーバーレスクラスターのストレージコンポーネント (新しい csi-plugin コンポーネント) は、このロールを使用して ECS のリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
    }

AliyunCSManagedCsiProvisionerRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのストレージコンポーネント (新しい 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 サーバーレスクラスターのストレージコンポーネント (新しい csi-provisioner コンポーネント) は、このロールを使用して ECS、NAS、OSS のリソースにアクセスします。"
      policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
    }

AliyunCSServerlessKubernetesRole

  • 説明:

    ACK Edge クラスターおよび ACK サーバーレスクラスターは、このロールを偽装して、Elastic Compute Service (ECS)、Virtual Private Cloud (VPC)、Server Load Balancer (SLB)、PrivateZone などの他のクラウドサービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSServerlessKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
    }

AliyunCSKubernetesAuditRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターの監査コンポーネントは、このロールを偽装して Simple Log Service のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSKubernetesAuditRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスター監査機能は、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSKubernetesAuditRolePolicy"
    }

AliyunCSManagedNetworkRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのネットワークプラグインは、このロールを偽装して ECS と VPC のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedNetworkRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターネットワークコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedNetworkRolePolicy"
    }

AliyunCSDefaultRole

  • 説明:

    ACK は、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     = "デフォルトでは、このロールはクラスター操作中に他のクラウドプロダクトのリソースにアクセスするために使用されます。"
      policy_name     = "AliyunCSDefaultRolePolicy"
    }

AliyunCSManagedKubernetesRole

  • 説明:

    ACK マネージドクラスターおよび ACK Edge クラスターは、このロールを偽装して ECS、VPC、SLB、ACR などの他のクラウドサービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "デフォルトでは、クラスターはこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedKubernetesRolePolicy"
    }

AliyunCSManagedArmsRole

  • 説明:

    ACK Edge クラスターおよび ACK サーバーレスクラスターの ARMS コンポーネントは、このロールを偽装して ARMS のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedArmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの Arms プラグインは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedArmsRolePolicy"
    }
  • AliyunCISDefaultRole

    • 説明:

      ACK CIS は、このロールを偽装して ECS、VPC、SLB などの他のクラウドサービスのリソースにアクセスし、診断と検査を実行します。

    • 権限付与コード:

      {
        name            = "AliyunCISDefaultRole"
        policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
        description     = "CIS はこのロールを偽装して、他の Alibaba Cloud サービスのリソースにアクセスします。"
        policy_name     = "AliyunCISDefaultRolePolicy"
      }

オプションのロール

AliyunCSManagedAcrRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのパスワードなしのイメージプルコンポーネントは、このロールを偽装して ACR のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedAcrRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのパスワードなしのイメージプルプラグインは、このロールを使用して Container Registry (ACR) のリソースにアクセスします。"
      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     = "クラスターのマネージドノードプール制御コンポーネントは、このロールを使用して ECS および ACK ノードプールのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedNlcRolePolicy"
    }

AliyunCSManagedAutoScalerRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターの Auto Scaling コンポーネントは、このロールを偽装して ESS および ECS サービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedAutoScalerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの弾性スケーリングコンポーネントは、このロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
    }

AliyunCSManagedSecurityRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、およびACK サーバーレスクラスターの保存時の暗号化および認証情報管理コンポーネントは、Key Management Service (KMS) 内のリソースにアクセスするためにこのロールを偽装します。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedSecurityRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターの保存時暗号化プラグインは、このロールを使用して KMS のリソースにアクセスします。"
      policy_name     = "AliyunCSManagedSecurityRolePolicy"
    }

AliyunCSManagedCostRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのコスト分析コンポーネントは、このロールを使用して Billing Management API、ECS、ECI サービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedCostRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのコスト分析コンポーネントは、このロールを使用して Billing Management API、ECS、ECI のリソースにアクセスします。"
      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     = "LINGJUN クラスターのネットワークコンポーネントは、このロールを使用して Intelligent Computing LINGJUN のリソースにアクセスします。"
      policy_name     = "AliyunCSManagedNimitzRolePolicy"
    }

AliyunCSManagedBackupRestoreRole

  • 説明:

    ACK マネージドクラスターACK Edge クラスター、および ACK サーバーレスクラスターのバックアップセンターコンポーネントは、このロールを偽装して Cloud Backup および OSS のリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunCSManagedBackupRestoreRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスターのバックアップセンターコンポーネントは、このロールを使用して Cloud Backup および 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、VPC、Cloud Enterprise Network (CEN) のリソースにアクセスします。"
      policy_name     = "AliyunCSManagedEdgeRolePolicy"
    }

AliyunOOSLifecycleHook4CSRole

  • 説明:

    OOS は、このロールを偽装して Container Service for Kubernetes、ECS、PolarDB などの他のクラウドサービスのリソースにアクセスします。

  • 権限付与コード:

    {
      name            = "AliyunOOSLifecycleHook4CSRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "クラスター内のノードプールのスケーリングは OOS に依存します。OOS はこのロールを使用して他のクラウドプロダクトのリソースにアクセスします。"
      policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
    }

関連ドキュメント

  • Terraform の詳細については、「Terraform とは」をご参照ください。

  • Terraform は ROS のマネージドサービスとして利用できます。ROS コンソールで Terraform テンプレートをデプロイできます。詳細については、「Terraform スタックの作成」をご参照ください。