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

Elastic Compute Service:RAMユーザーとしてCloud Assistantコマンドを実行する

最終更新日:Aug 26, 2024

セキュリティ上の理由から、最小権限の原則に基づいて、Cloud Assistantコマンドを通常のユーザー (root以外またはシステム以外のユーザー) として実行することを推奨します。 このトピックでは、RAM (Resource Access Management) ユーザーを設定して、通常のユーザーとしてCloud Assistantコマンドを実行する方法について説明します。

前提条件

ECS (Elastic Compute Service) インスタンス用に通常のユーザーが作成されます。 このトピックでは、通常のユーザーuser01とuser02を使用します。

背景情報

Cloud Assistantコマンドを実行するときに特定のアクセス許可を設定しない場合、コマンドはインスタンスの最高レベルのアクセス許可に基づいて実行されます。 デフォルトでは、Cloud Assistantコマンドは、Linuxインスタンスではrootユーザーによって、Windowsインスタンスではシステムユーザーによって実行されます。

情報のセキュリティを確保するため、ECSインスタンスでのルートユーザーまたはシステムユーザーの使用を制限することを推奨します。 RAMユーザーを作成し、ECSインスタンスでのCloud Assistantコマンドの実行をrootユーザーまたはシステムユーザーに拒否するポリシーと、user01やuser02などの特定のユーザーがECSインスタンスでCloud Assistantコマンドを実行できるようにするポリシーをRAMユーザーにアタッチできます。

LinuxインスタンスでCloud Assistantコマンドを通常ユーザーとして実行する

LinuxインスタンスでのみCloud Assistantコマンドを実行する場合は、次の操作を実行して、RAMユーザーがCloud Assistantコマンドをrootユーザーとして実行することを制限できます。

  1. Alibaba CloudアカウントでRAMコンソールにログインします。

  2. RAMユーザーを作成します。 詳細については、「RAMユーザーの作成」をご参照ください。

    次の表に、RAMユーザーの作成に必要なパラメーターを示します。

    パラメーター

    ログオン名

    commandUser

    表示名

    commandUser

    アクセスモード

    Cloud Assistantは、Alibaba Cloud管理コンソールで、またはAPI操作を呼び出して使用できます。 この例では、コンソールアクセスOpenAPIアクセスを選択します。

    説明

    最小特権の原則に準拠するように、ビジネス要件に基づいてアクセスモードを選択できます。

    ログインパスワードの設定

    [デフォルトパスワードの自動再生成] を選択します。

    パスワードリセット

    [次のログイン時に必須] を選択します。

    MFAの有効化

    [不要] を選択します。

    RAMユーザーを作成したら、RAMユーザーのユーザー名、パスワード、およびAccessKeyのペアを記録します。

  3. Cloud Assistantの権限を含むポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。

    ram用户权限设置

    commandUserPolicyという名前のポリシーを作成して、ユーザーがECSインスタンスでCloud Assistantコマンドを実行することを許可または拒否します。 次のセクションでは、ポリシーの例について説明します。 ビジネス要件に基づいてポリシーを変更できます。

    • 次のポリシーでは、user01やuser02などの特定の通常ユーザーがECSインスタンスでCloud Assistantコマンドを実行できます。

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "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"
                  ],
                  "Resource": [
                      "acs:ecs:*:*:instance/*",
                      "acs:ecs:*:*:command/*"
                  ],
                  "Condition": {
                      "StringEquals": {
                          "ecs:CommandRunAs": [
                              "user01",
                              "user02"
                          ]
                      }
                  }
              }
          ],
          "Version": "1"
      }
      説明

      他のユーザーがECSインスタンスでCloud Assistantコマンドを実行できるようにする場合は、Condition要素のユーザー名を変更または追加できます。

    • 次のポリシーは、rootユーザーやシステムユーザーなどの特定のユーザーがECSインスタンスでCloud Assistantコマンドを実行できないようにします。

      {
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "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"
                  ],
                  "Resource": [
                      "acs:ecs:*:*:instance/*",
                      "acs:ecs:*:*:command/*"
                  ],
                  "Condition": {
                      "StringNotEqualsIgnoreCase": {
                          "ecs:CommandRunAs": [
                              "system",
                              "root"
                          ]
                      }
                  }
              }
          ],
          "Version": "1"
      }
      説明

      他のユーザーがECSインスタンスでCloud Assistantコマンドを実行しないようにする場合は、Condition要素のユーザー名を変更または追加できます。

  4. RAMユーザーにECSの読み取り専用権限とCloud Assistantの権限を付与します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

    授权

    • RAMユーザーにECSの読み取り専用権限を付与するには、AliyunECSReadOnlyAccessを選択します。

    • Cloud AssistantでRAMユーザーに権限を付与するには、前の手順で作成したcommandUserPolicyポリシーを選択します。

  5. RAMユーザーとしてAlibaba Cloud管理コンソールにログインします。

  6. Cloud Assistantコマンドを実行し、結果を確認します。 詳細については、「コマンドの作成と実行」をご参照ください。

    • 次の図は、ECSコンソールで実行される手順を示しています。 Usernameパラメーターを設定する必要があります。使用云助手创建命令

      user01はCloud Assistantコマンドを実行でき、rootユーザーがコマンドを実行するとエラーが報告されます。

    • 次の図は、CLIを使用して実行される手順を示しています。 user01はCloud Assistantコマンドを実行でき、rootユーザーがコマンドを実行するとエラーが報告されます。cli结果

WindowsインスタンスでCloud Assistantコマンドを通常ユーザーとして実行する

WindowsインスタンスでCloud Assistantコマンドを実行するには、ユーザー名とパスワードを指定する必要があります。 データのセキュリティを確保するには、CloudOps Orchestration Serviceでログインパスワードをホストし、Key Management Service (KMS) を使用して暗号化を実行する必要があります。 詳細については、「」をご参照ください。OOSとは何ですか?キー管理サービスとは

次の操作を実行して、RAMユーザーがCloud Assistantコマンドをrootユーザーまたはシステムユーザーとして実行することを制限できます。

  1. Alibaba CloudアカウントでRAMコンソールにログインします。

  2. RAMユーザーを作成します。 詳細については、「RAMユーザーの作成」をご参照ください。

    次の表に、RAMユーザーの作成に必要なパラメーターを示します。

    パラメーター

    ログオン名

    commandUser

    表示名

    commandUser

    アクセスモード

    Cloud Assistantは、Alibaba Cloud管理コンソールで、またはAPI操作を呼び出して使用できます。 この例では、コンソールアクセスOpenAPIアクセスを選択します。

    説明

    最小特権の原則に準拠するように、ビジネス要件に基づいてアクセスモードを選択できます。

    ログインパスワードの設定

    [デフォルトパスワードの自動再生成] を選択します。

    パスワードリセット

    [次のログイン時に必須] を選択します。

    MFAの有効化

    [不要] を選択します。

    RAMユーザーを作成したら、RAMユーザーのユーザー名、パスワード、およびAccessKeyのペアを記録します。

  3. Cloud AssistantとKMSの権限を含むポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。

    • Cloud Assistantの権限を含むポリシー:

      commandUserPolicyという名前のポリシーを作成して、ユーザーがECSインスタンスでCloud Assistantコマンドを実行することを許可または拒否します。 次のセクションでは、ポリシーの例について説明します。 ビジネス要件に基づいてポリシーを変更できます。

      • 次のポリシーでは、user01やuser02などの特定の通常ユーザーがECSインスタンスでCloud Assistantコマンドを実行できます。

        {
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "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"
                    ],
                    "Resource": [
                        "acs:ecs:*:*:instance/*",
                        "acs:ecs:*:*:command/*"
                    ],
                    "Condition": {
                        "StringEquals": {
                            "ecs:CommandRunAs": [
                                "user01",
                                "user02"
                            ]
                        }
                    }
                }
            ],
            "Version": "1"
        }
        説明

        他のユーザーがECSインスタンスでCloud Assistantコマンドを実行できるようにする場合は、Condition要素のユーザー名を変更または追加できます。

      • 次のポリシーは、rootユーザーやシステムユーザーなどの特定のユーザーがECSインスタンスでCloud Assistantコマンドを実行できないようにします。

        {
            "Statement": [
                {
                    "Effect": "Allow",
                    "Action": [
                        "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"
                    ],
                    "Resource": [
                        "acs:ecs:*:*:instance/*",
                        "acs:ecs:*:*:command/*"
                    ],
                    "Condition": {
                        "StringNotEqualsIgnoreCase": {
                            "ecs:CommandRunAs": [
                                "system",
                                "root"
                            ]
                        }
                    }
                }
            ],
            "Version": "1"
        }
        説明

        他のユーザーがECSインスタンスでCloud Assistantコマンドを実行しないようにする場合は、Condition要素のユーザー名を変更または追加できます。

    • KMSに対する権限を含むポリシー:

      次の内容を含むkmsPolicyという名前のポリシーを作成します。 詳細については、「RAMを使用してKMSリソースへのアクセスを制御する」トピックのRAMポリシーの例を参照してください。

      {
        "Version": "1",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "kms:List*", "kms:Describe*",
              "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey"
            ],
            "Resource": [
              "*"
            ]
          }
        ]
      }             
  4. ECS、OOS、Cloud Assistant、およびKMSに対するRAMユーザー権限を付与します。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

    win权限

    • RAMユーザーにECSの読み取り専用権限を付与するには、AliyunECSReadOnlyAccessを選択します。

    • RAMユーザーにOOSの読み取り専用権限を付与するには、AliyunOOSReadOnlyAccessを選択します。

    • Cloud AssistantでRAMユーザーに権限を付与するには、前の手順で作成したcommandUserPolicyポリシーを選択します。

    • KMSにRAMユーザー権限を付与するには、前の手順で作成したkmsPolicyポリシーを選択します。

  5. WindowsインスタンスのRAMロールを設定します。

    1. ポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。

      サンプルポリシー:

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": [
                      "kms:GetSecretValue"
                  ],
                  "Resource": "*",
                  "Effect": "Allow"
              },
              {
                  "Action": [
                      "oos:GetSecretParameter"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
              }
          ]
      }
    2. RAMロールを作成します。 詳細については、「信頼できるAlibaba CloudサービスのRAMロールの作成」をご参照ください。

      次の表に、RAMロールの作成に必要なパラメーターを示します。

      パラメーター

      信頼できるエンティティの選択

      [Alibaba Cloudサービス] を選択します。

      ロールタイプ

      [通常のサービスロール] を選択します。

      RAMロール名

      AxtSecretRamRole

      信頼できるサービスの選択

      ドロップダウンリストから [Elastic Compute Service] を選択します。

    3. RAMロールに権限を付与します。 詳細については、「RAMロールへの権限の付与」をご参照ください。

    4. RAMロールをECSインスタンスにアタッチします。 詳細については、「インスタンスRAMロールを使用した他のAlibaba CloudサービスのリソースへのECSアクセスの付与」をご参照ください。

  6. OOSで暗号化パラメーターを作成し、Windowsインスタンスのログインパスワードをホストします。 詳細については、「暗号化パラメーター」トピックの「暗号化パラメーターの作成」セクションをご参照ください。

    説明

    暗号化パラメーターは、ECSインスタンスと同じリージョンにある必要があります。 それ以外の場合、ECSインスタンスのログインパスワードはOOSでホストできません。

    次の表に、ユーザーのパスワードをホストする暗号化パラメーターを作成する方法を示します。 この例では、user01が使用されます。

    パラメーター

    パラメーター名

    axtSecretPassword

    KMSキーID

    [デフォルトサービスCMK] を選択します。

    Windowsインスタンスのログインパスワード。 この例では、user01のログインパスワードを入力します。

  7. RAMユーザーとしてAlibaba Cloud管理コンソールにログインします。

  8. Cloud Assistantコマンドを実行し、結果を確認します。 詳細については、「コマンドの作成と実行」をご参照ください。

    WindowsインスタンスでCloud Assistantコマンドを実行し、権限設定が有効かどうかを確認します。

    • 次の図は、ECSコンソールで実行される手順を示しています。 ユーザー名とパスワードのパラメーターを指定する必要があります。windows创建云助手命令

      user01はCloud Assistantコマンドを実行でき、システムユーザーがコマンドを実行するとエラーが報告されます。

    • 次の図は、CLIを使用して実行される手順を示しています。 user01はCloud Assistantコマンドを実行でき、システムユーザーがコマンドを実行するとエラーが報告されます。win执行结果cli