All Products
Search
Document Center

Elastic Compute Service:Jalankan perintah Cloud Assistant sebagai pengguna RAM

Last Updated:Aug 21, 2026

Gunakan kebijakan RAM untuk membatasi eksekusi perintah Cloud Assistant hanya pada pengguna biasa, seperti pengguna non-root atau non-system.

Prasyarat

Pengguna biasa telah dibuat pada instans ECS. Topik ini menggunakan user01 dan user02 sebagai contoh.

Latar Belakang

Secara default, Cloud Assistant menjalankan perintah dengan hak istimewa tertinggi pada instans ECS: sebagai root pada Linux dan system pada Windows.

Anda dapat menggunakan kebijakan RAM untuk menolak root atau system menjalankan perintah Cloud Assistant dan hanya memberikan izin kepada pengguna biasa seperti user01 dan user02.

Konfigurasi pengguna biasa untuk instans Linux

Ikuti langkah-langkah berikut untuk mencegah pengguna RAM menjalankan perintah Cloud Assistant sebagai root pada instans Linux.

  1. Masuk ke Konsol RAM dengan Akun Alibaba Cloud Anda.

  2. Buat pengguna RAM.

    Contoh pengaturan pengguna RAM:

    Parameter

    Contoh

    Logon name

    commandUser

    Display name

    commandUser

    Access mode

    Pilih kedua opsi Console Access dan Programmatic Access (topik ini menggunakan keduanya).

    Catatan

    Pilih hanya mode akses yang Anda perlukan sesuai prinsip hak istimewa minimal.

    Set password

    Pilih Automatically generate password.

    Password reset

    Pilih Required at Next Logon.

    MFA

    Pilih Not Required.

    Simpan username, password, dan AccessKey setelah pembuatan.

  3. Buat kebijakan kustom untuk Cloud Assistant.

    Klik tab Script. Dalam isi kebijakan, konfigurasikan izin API ECS Cloud Assistant dengan aksi berikut:

    • ecs:DescribeInstances

    • ecs:DescribeTagKeys

    • ecs:DescribeTags

    • ecs:CreateCommand

    • ecs:DescribeCommands

    • ecs:InvokeCommand

    • ecs:RunCommand

    • ecs:DeleteCommand

    • ecs:DescribeInvocations

    • ecs:DescribeInvocationResults

    • ecs:StopInvocation

    • ecs:DescribeCloudAssistantStatus

    • ecs:InstallCloudAssistant

    Atur Resource menjadi acs:ecs:*:*:instance/*.

    Buat kebijakan bernama commandUserPolicy. Berikut dua contoh — modifikasi sesuai kebutuhan.

    • Izinkan user01 dan user02 menjalankan perintah Cloud Assistant:

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:InvokeCommand",
                      "ecs:RunCommand"
                  ],
                  "Resource": [
                      "acs:ecs:*:*:instance/*",
                      "acs:ecs:*:*:command/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "ecs:CommandRunAs": [
                              "user01",
                              "user02"
                          ]
                      }
                  }
              }
          ],
          "Version": "1"
      }
      Catatan

      Tambahkan atau ubah username dalam blok Condition untuk memberikan izin kepada pengguna lain.

    • Tolak root dan system menjalankan perintah Cloud Assistant:

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "ecs:InvokeCommand",
                      "ecs:RunCommand"
                  ],
                  "Resource": [
                      "acs:ecs:*:*:instance/*",
                      "acs:ecs:*:*:command/*"
                  ],
                  "Condition": {
                      "StringNotEqualsIgnoreCase": {
                          "ecs:CommandRunAs": [
                              "system",
                              "root"
                          ]
                      }
                  }
              }
          ],
          "Version": "1"
      }
      Catatan

      Tambahkan atau ubah username dalam blok Condition untuk membatasi pengguna lain.

  4. Berikan izin read-only ECS dan izin Cloud Assistant kepada pengguna RAM.

    • ECS read-only: pilih AliyunECSReadOnlyAccess.

    • Cloud Assistant: pilih commandUserPolicy (dibuat pada langkah sebelumnya).

  5. Masuk ke Konsol Alibaba Cloud sebagai pengguna RAM.

  6. Verifikasi dengan menjalankan perintah Cloud Assistant. Lihat Buat dan jalankan perintah.

    • Di konsol, tentukan pengguna yang akan menjalankan perintah.

      user01 berhasil menjalankan perintah, tetapi root menghasilkan error.

    • Di CLI, user01 berhasil menjalankan perintah, tetapi root menghasilkan error:

      shell@Alicloud:~$ aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
      > --Name 'ping' \
      > --Type 'RunShellScript' \
      > --CommandContent 'ping aliyun.com' \
      > --Timeout '60' \
      > --ContentEncoding 'PlainText' \
      > --InstanceId.1 'i-bp10s90xxxxxxxxn' \
      > --Username 'user01'
      {
              "CommandId": "c-hz01ai1xxxxxxxxc",
              "InvokeId": "t-hz01ai18xxxxxxxx",
              "RequestId": "B352A46C-3CFE-4E72-9F03-BFC0C0D3C590"
      }
      shell@Alicloud:~$ aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
      > --Name 'ping' \
      > --Type 'RunShellScript' \
      > --CommandContent 'ping aliyun.com' \
      > --Timeout '60' \
      > --ContentEncoding 'PlainText' \
      > --InstanceId.1 'i-bp10s90xxxxxxxxn' \
      > --Username 'root'
      ERROR: SDK.ServerError
      ErrorCode: Forbidden.RAM
      Recommend: https://error-center.alibabacloud.com/status/search?Keyword=Forbidden.RAM&source=PopGw
      RequestId: 9FE8BCB7-AAFD-4401-B28D-8276411703CD
      Message: User not authorized to operate on the specified resource, or this API doesn't support RAM.
      shell@Alicloud:~$

Konfigurasi pengguna biasa untuk instans Windows

Menjalankan perintah Cloud Assistant pada instans Windows memerlukan username dan password. Simpan kata sandi logon Windows sebagai parameter terenkripsi di CloudOps Orchestration Service dan enkripsi dengan Key Management Service (KMS). Lihat Apa itu CloudOps Orchestration Service dan Apa itu Key Management Service.

Ikuti langkah-langkah berikut untuk mencegah pengguna RAM menjalankan perintah Cloud Assistant sebagai root atau system.

  1. Masuk ke Konsol RAM dengan Akun Alibaba Cloud Anda.

  2. Buat pengguna RAM.

    Contoh pengaturan pengguna RAM:

    Parameter

    Contoh

    Logon name

    commandUser

    Display name

    commandUser

    Access mode

    Pilih kedua opsi Console Access dan Programmatic Access (topik ini menggunakan keduanya).

    Catatan

    Pilih hanya mode akses yang Anda perlukan sesuai prinsip hak istimewa minimal.

    Set password

    Pilih Automatically generate password.

    Password reset

    Pilih Required at Next Logon.

    MFA

    Pilih Not Required.

    Simpan username, password, dan AccessKey setelah pembuatan.

  3. Buat kebijakan kustom untuk Cloud Assistant dan KMS.

    • Izin Cloud Assistant:

      Buat kebijakan bernama commandUserPolicy. Berikut dua contoh — modifikasi sesuai kebutuhan.

      • Izinkan user01 dan user02 menjalankan perintah Cloud Assistant:

        {
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ecs:InvokeCommand",
                        "ecs:RunCommand"
                    ],
                    "Resource": [
                        "acs:ecs:*:*:instance/*",
                        "acs:ecs:*:*:command/*"
                    ],
                    "Condition": {
                        "StringEquals": {
                            "ecs:CommandRunAs": [
                                "user01",
                                "user02"
                            ]
                        }
                    }
                }
            ],
            "Version": "1"
        }
        Catatan

        Tambahkan atau ubah username dalam blok Condition untuk memberikan izin kepada pengguna lain.

      • Tolak root dan system menjalankan perintah Cloud Assistant:

        {
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "ecs:InvokeCommand",
                        "ecs:RunCommand"
                    ],
                    "Resource": [
                        "acs:ecs:*:*:instance/*",
                        "acs:ecs:*:*:command/*"
                    ],
                    "Condition": {
                        "StringNotEqualsIgnoreCase": {
                            "ecs:CommandRunAs": [
                                "system",
                                "root"
                            ]
                        }
                    }
                }
            ],
            "Version": "1"
        }
        Catatan

        Tambahkan atau ubah username dalam blok Condition untuk membatasi pengguna lain.

    • Izin KMS:

      Buat kebijakan bernama kmsPolicy. Lihat Contoh kebijakan otorisasi umum.

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "kms:List*", "kms:Describe*",
              "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey"
            ],
            "Resource": [
              "*"
            ]
          }
        ]
      }             
  4. Berikan izin ECS, OOS, Cloud Assistant, dan KMS kepada pengguna RAM.

    • ECS read-only: pilih AliyunECSReadOnlyAccess.

    • OOS read-only: pilih AliyunOOSReadOnlyAccess.

    • Cloud Assistant: pilih commandUserPolicy (dibuat pada langkah sebelumnya).

    • KMS: pilih kmsPolicy (dibuat pada langkah sebelumnya).

  5. Konfigurasi peran RAM untuk instans Windows.

    1. Buat kebijakan kustom untuk peran RAM.

      Contoh kebijakan:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:GetSecretValue"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "oos:GetSecretParameter"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ]
      }
    2. Buat peran RAM layanan.

      Contoh konfigurasi:

      Parameter

      Contoh

      Trusted entity type

      Pilih Alibaba Cloud Service.

      Trusted service

      Pilih ECS.

      Role name

      AxtSecretRamRole

    3. Berikan izin kepada peran RAM.

    4. Lampirkan peran RAM ke instans ECS.

  6. Buat parameter terenkripsi di OOS untuk menyimpan kata sandi logon Windows.

    Catatan

    Parameter terenkripsi OOS harus berada di wilayah yang sama dengan instans ECS.

    Contoh nilai untuk user01:

    Parameter

    Contoh

    Parameter name

    axtSecretPassword

    KMS key ID

    Gunakan Default Service CMK bawaan.

    Value

    Kata sandi logon user01.

  7. Masuk ke Konsol Alibaba Cloud sebagai pengguna RAM.

  8. Verifikasi dengan menjalankan perintah Cloud Assistant. Lihat Buat dan jalankan perintah.

    Jalankan perintah Cloud Assistant pada instans Windows untuk memverifikasi izin.

    • Di konsol, tentukan pengguna dan parameter kata sandi terenkripsi OOS.

      user01 berhasil menjalankan perintah, tetapi system menghasilkan error.

    • Di CLI, user01 berhasil menjalankan perintah, tetapi system menghasilkan error:

      shell@AliCloud:~$ aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
      > --Name 'ping' \
      > --Type 'RunPowerShellScript' \
      > --CommandContent 'ping aliyun.com' \
      > --Timeout '60' \
      > --ContentEncoding 'PlainText' \
      > --InstanceId.1 'i-bp1h21856zxxx' \
      > --Username 'user01' \
      > --WindowsPasswordName 'axtSecretPassword'
      {
              "CommandId": "c-hz0xxxxo2yo",
              "InvokeId": "t-hz01xxxxs00",
              "RequestId": "2D92EEDE-6FCA-47F9-81B1-2262EEB3376F"
      }
      shell@AliCloud:~$ aliyun ecs RunCommand --RegionId 'cn-hangzhou' \
      > --Name 'ping' \
      > --Type 'RunPowerShellScript' \
      > --CommandContent 'ping aliyun.com' \
      > --Timeout '60' \
      > --ContentEncoding 'PlainText' \
      > --InstanceId.1 'i-bp1h2lxxx_xxxl' \
      > --Username 'system' \
      > --WindowsPasswordName 'axtSecretPassword'
      ERROR: SDK.ServerError
      ErrorCode: Forbidden.RAM
      Recommend: https://error-center.alibabacloud.com/status/search?Keyword=Forbidden.RAM&source=PopGw
      RequestId: 229A382B-FA81-4115-855A-C8F52EE29FE1
      Message: User not authorized to operate on the specified resource, or this API doesn't support RAM.
      shell@AliCloud:~$