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

Container Service for Kubernetes:Terraformを使用してACKを有効にし、サービスロールをACKに割り当てる

最終更新日:Dec 05, 2024

このトピックでは、初めてACKを使用するときにTerraformを使用してContainer service for Kubernetes (ACK) にサービスロールを割り当てる方法について説明します。

前提条件

  • デフォルトでは、Alibaba Cloudアカウントには、このアカウントに属するすべてのリソースに対する完全な権限があります。 Alibaba Cloudアカウントの資格情報が漏洩すると、セキュリティリスクが発生する可能性があります。 Resource Access Management (RAM) ユーザーを使用してリソースを管理することを推奨します。 RAMユーザーを作成するときは、RAMユーザーのAccessKeyペアを作成する必要があります。 詳細については、「RAMユーザーの作成」および「AccessKeyペアの作成」をご参照ください。

  • Terraformでコマンドを実行するために使用するRAMユーザーには、次のポリシーが添付されています。 ポリシーには、Terraformでコマンドを実行するために必要な最小限の権限が含まれます。 詳細については、「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 Explorer: Alibaba Cloudは、Terraformのオンラインランタイム環境を提供します。 Terraformをインストールしなくても、环境にログオンしてTerraformを使用できます。 この方法は、低コストで効率的かつ便利な方法でTerraformを使用およびデバッグする必要があるシナリオに適しています。

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

    • オンプレミスマシンにTerraformをインストールして構成する: この方法は、ネットワーク接続が不安定な場合やカスタム開発環境が必要な場合に適しています。

必要なリソース

ステップ1: ACKの有効化

ACKクラスターを作成する前に、ACKを有効化する必要があります。

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

    // Activate 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

    コマンドの実行中に、指示に従ってを入力し、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: サービスロールをACKに割り当てる

初めてACKを使用するときは、Alibaba CloudアカウントでサービスロールをACKに割り当てる必要があります。

  1. 次のコードブロックをmain.tfファイルにコピーします。

    // The RAM roles that you want to assign. 
    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     = "The logging component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedLogRolePolicy"
        },
        {
          name            = "AliyunCSManagedCmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The CMS component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedCmsRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedCsiRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiPluginRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
        },
        {
          name            = "AliyunCSManagedCsiProvisionerRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
        },
        {
          name            = "AliyunCSManagedVKRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The VK component of ACK Serverless clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedVKRolePolicy"
        },
        {
          name            = "AliyunCSServerlessKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "By default, ACK clusters assume this role to access your cloud resources."
          policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSKubernetesAuditRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The auditing feature of ACK assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSKubernetesAuditRolePolicy"
        },
        {
          name            = "AliyunCSManagedNetworkRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The network plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          policy_name     = "AliyunCSManagedNetworkRolePolicy"
        },
        {
          name            = "AliyunCSDefaultRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "By default, ACK assumes this role to access your resources in other Alibaba Cloud services when managing ACK clusters."
          policy_name     = "AliyunCSDefaultRolePolicy"
        },
        {
          name            = "AliyunCSManagedKubernetesRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "By default, ACK clusters assume this role to access your cloud resources."
          policy_name     = "AliyunCSManagedKubernetesRolePolicy"
        },
        {
          name            = "AliyunCSManagedArmsRole"
          policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
          description     = "The Application Real-Time Monitoring Service (ARMS) plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
          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) assumes this role to access your resources in other Alibaba Cloud services."
          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) assumes this role to access your resources in other Alibaba Cloud services. ACK relies on OOS to scale node pools."
          policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
        }
      ]
    }
    
    // Query RAM roles.
    data "alicloud_ram_roles" "roles" {
        policy_type = "Custom"
        name_regex  = "^Aliyun.*Role$"
    }
    
    locals {
      # Query the RAM roles that you want to assign.
      all_role_names = [for role in var.roles : role.name]
      # Query the RAM roles that already exist.
      created_role_names  = [for role in data.alicloud_ram_roles.roles.roles : role.name]
      # Compare the two sets of RAM roles to obtain the RAM roles that you want to assign but do not exist.
      complement_names = setsubtract(local.all_role_names, local.created_role_names )
      # The RAM roles that need to be created.
      complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
    }
    
    // Create RAM roles. 
    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
    }
    
    // Attach system policies to RAM roles. 
    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]
    }
    説明

    上記のサンプルコードは、Terraformのパラメーターとして機能する入力変数の設定を示しています。 上記のサンプルコードのパラメーター値の詳細については、「付録」をご参照ください。 コードでサービスロールを指定する必要があります。 ビジネス要件に基づいてサービスロールを選択できます。

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

    terraform plan
  3. 次のコマンドを実行して、実行プランを適用し、サービスロールをACKに割り当てます。

    terraform apply

    コマンドの実行中に、指示に従ってを入力し、Enterキーを押します。 コマンドが実行されるまで待ちます。 次の情報が返された場合、ACKがアクティブ化されます。

    Apply complete!  Resources: 24 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"
}

// Activate ACK. 
data "alicloud_ack_service" "open" {
    enable = "On"
    type   = "propayasgo"
}

// The RAM roles that you want to assign. 
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     = "The logging component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedLogRolePolicy"
    },
    {
      name            = "AliyunCSManagedCmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The CMS component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCmsRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCsiRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiPluginRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
    },
    {
      name            = "AliyunCSManagedCsiProvisionerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
    },
    {
      name            = "AliyunCSManagedVKRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The VK component of ACK Serverless clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedVKRolePolicy"
    },
    {
      name            = "AliyunCSServerlessKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "By default, ACK clusters assume this role to access your cloud resources."
      policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSKubernetesAuditRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The auditing feature of ACK assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSKubernetesAuditRolePolicy"
    },
    {
      name            = "AliyunCSManagedNetworkRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The network plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedNetworkRolePolicy"
    },
    {
      name            = "AliyunCSDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "By default, ACK assumes this role to access your resources in other Alibaba Cloud services when managing ACK clusters."
      policy_name     = "AliyunCSDefaultRolePolicy"
    },
    {
      name            = "AliyunCSManagedKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "By default, ACK clusters assume this role to access your cloud resources."
      policy_name     = "AliyunCSManagedKubernetesRolePolicy"
    },
    {
      name            = "AliyunCSManagedArmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The ARMS plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedArmsRolePolicy"
    },
    {
      name            = "AliyunCISDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "CIS assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCISDefaultRolePolicy"
    },
    {
      name            = "AliyunOOSLifecycleHook4CSRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "OOS assumes this role to access your resources in other Alibaba Cloud services. ACK relies on OOS to scale node pools."
      policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
    }
  ]
}

// Query RAM roles.
data "alicloud_ram_roles" "roles" {
    policy_type = "Custom"
    name_regex  = "^Aliyun.*Role$"
}

locals {
  # Query the RAM roles that you want to assign.
  all_role_names = [for role in var.roles : role.name]
  # Query the RAM roles that already exist.
  created_role_names  = [for role in data.alicloud_ram_roles.roles.roles : role.name]
  # Compare the two sets of RAM roles to obtain the RAM roles that you want to assign but do not exist.
  complement_names = setsubtract(local.all_role_names, local.created_role_names )
  # The RAM roles that need to be created.
  complement_roles = [for role in var.roles : role if contains(local.complement_names, role.name)]
}

// Create RAM roles. 
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
}

// Attach system policies to RAM roles. 
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サーバーレスクラスターのログコンポーネントは、このロールを引き受けて、Simple Log Serviceのリソースにアクセスします。

  • 承認コード:

    {
      name            = "AliyunCSManagedLogRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The logging component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedLogRolePolicy"
    }

AliyunCSManagedCmsRole

  • 説明:

    ACKマネージドクラスターまたはACKサーバーレスクラスターのモニタリングコンポーネントは、CloudMonitorやSimple Log Serviceなどの他のクラウドサービスのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedCmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The CMS component of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCmsRolePolicy"
    }

AliyunCSManagedCsiRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのボリュームプラグインは、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     = "The volume plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedCsiRolePolicy"
    }

AliyunCSManagedCsiPluginRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターの新しいcsi-pluginコンポーネントがこのロールを引き受けて、ECSのリソースにアクセスします。

  • 承認コード:

    {
      name            = "AliyunCSManagedCsiPluginRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The volume plug-in (new csi-plugin) of ACK managed clusters, ACK Edge clusters, and ACK Serverless clusters assumes this role to access your resources in ECS."
      policy_name     = "AliyunCSManagedCsiPluginRolePolicy"
    }

AliyunCSManagedCsiProvisionerRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターの新しいcsi-provisionerコンポーネントは、ECS、NAS、およびOSSのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedCsiProvisionerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The volume plug-in (new csi-provisioner) of ACK managed clusters, ACK Edge clusters, and ACK Serverless clusters assumes this role to access your resources in ECS, NAS, and OSS."
      policy_name     = "AliyunCSManagedCsiProvisionerRolePolicy"
    }

AliyunCSServerlessKubernetesロール

  • 説明:

    ACKエッジクラスターACKサーバーレスクラスターは、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     = "By default, ACK Serverless clusters assume this role to access your resources in other cloud services."
      policy_name     = "AliyunCSServerlessKubernetesRolePolicy"
    }

AliyunCSKubernetes AuditRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターの監査コンポーネントがこのロールを引き受け、Simple Log Serviceのリソースにアクセスします。

  • 承認コード:

    {
      name            = "AliyunCSKubernetesAuditRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The auditing feature of ACK assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSKubernetesAuditRolePolicy"
    }

AliyunCSManagedNetworkRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのネットワークプラグインは、ECSおよびVPCのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedNetworkRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The network plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedNetworkRolePolicy"
    }

AliyunCSDefaultRole

  • 説明:

    ACKは、ACKクラスターを管理するときに、ECS、VPC、SLB、ROS (Resource Orchestration Service) 、Auto Scalingなどの他のクラウドサービスのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSDefaultRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "By default, ACK assumes this role to access your resources in other Alibaba Cloud services when managing ACK clusters."
      policy_name     = "AliyunCSDefaultRolePolicy"
    }

AliyunCSManagedKubernetesロール

  • 説明:

    ACKマネージドクラスターACKエッジクラスターは、ECS、VPC、SLB、Container Registryなどの他のクラウドサービスのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedKubernetesRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "By default, ACK clusters assume this role to access your cloud resources."
      policy_name     = "AliyunCSManagedKubernetesRolePolicy"
    }

AliyunCSManagedArmsRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのARMSコンポーネントは、ARMS内のリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedArmsRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The ARMS plug-in of ACK clusters assumes this role to access your resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedArmsRolePolicy"
    }
  • AliyunCISDefaultRole

    • 説明:

      CISは、この役割を引き受けて、ECS、VPC、SLBなどの他のクラウドサービスのリソースにアクセスし、診断と検査を実行します。

    • 承認コード:

      {
        name            = "AliyunCISDefaultRole"
        policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
        description     = "CIS assumes this role to access your resources in other Alibaba Cloud services."
        policy_name     = "AliyunCISDefaultRolePolicy"
      }

オプションの役割

AliyunCSManagedAcrRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのシークレットフリーのイメージプルプラグインは、Container Registryのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedAcrRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The Secret-free image pulling component of ACK clusters assumes this role to pull images from Container Registry."
      policy_name     = "AliyunCSManagedAcrRolePolicy"
    }

AliyunCSManagedNlcRole

  • 説明:

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

  • 承認コード:

    {
      name            = "AliyunCSManagedNlcRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The managed node pool controller of ACK clusters assumes this role to access your node pool resources in ECS and ACK."
      policy_name     = "AliyunCSManagedNlcRolePolicy"
    }

AliyunCSManagedAutoScalerRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターの自動スケーリングコンポーネントは、ECSおよびACKのノードプールリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedAutoScalerRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The auto scaling component of ACK clusters assumes this role to access your node pool resources in other Alibaba Cloud services."
      policy_name     = "AliyunCSManagedAutoScalerRolePolicy"
    }

AliyunCSManagedSecurityRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのシークレット暗号化および資格情報管理コンポーネントは、キー管理サービス (KMS) のリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunCSManagedSecurityRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The Secret encryption component of ACK clusters assumes this role to access your node pool resources in KMS."
      policy_name     = "AliyunCSManagedSecurityRolePolicy"
    }

AliyunCSManagedCostRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのコスト分析コンポーネントがこのロールを引き受け、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     = "The cost analysis component of ACK clusters assumes this role to access your resources in ECS and Elastic Container Instance, and call API operations of Bills Management."
      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     = "The network plug-in of ACK Lingjun clusters assumes this role to access your resources in Intelligent Computing LINGJUN."
      policy_name     = "AliyunCSManagedNimitzRolePolicy"
    }

AliyunCSManagedBackupRestoreRole

  • 説明:

    ACKマネージドクラスターACKエッジクラスター、およびACKサーバーレスクラスターのバックアップセンターコンポーネントがこのロールを引き受け、Cloud BackupおよびOSSのリソースにアクセスします。

  • 承認コード:

    {
      name            = "AliyunCSManagedBackupRestoreRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"cs.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "The backup center component of ACK clusters assumes this role to access your resources in Cloud Backup and 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     = "The control component of ACK Edge clusters assumes this role to access your resources in SAG, VPC, and Cloud CEN."
      policy_name     = "AliyunCSManagedEdgeRolePolicy"
    }

AliyunOOSLifecycleHook4CSRole

  • 説明:

    OOSは、ACK、ECS、PolarDBなどの他のクラウドサービスのリソースにアクセスするためにこのロールを引き受けます。

  • 承認コード:

    {
      name            = "AliyunOOSLifecycleHook4CSRole"
      policy_document = "{\"Statement\":[{\"Action\":\"sts:AssumeRole\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":[\"oos.aliyuncs.com\"]}}],\"Version\":\"1\"}"
      description     = "OOS assumes this role to access your resources in other Alibaba Cloud services. ACK relies on OOS to scale node pools."
      policy_name     = "AliyunOOSLifecycleHook4CSRolePolicy"
    }

関連ドキュメント