全部產品
Search
文件中心

:OOS操作ECS分組資源的權限原則管理

更新時間:Aug 13, 2024

當您的企業存在多使用者協同訪問資源的情境時,您可以建立多個RAM使用者(子帳號)並按需為其分配最小許可權,避免多使用者共用阿里雲帳號(主帳號)密碼或存取金鑰(AccessKey),從而降低企業的安全風險。本文介紹如何通過RAM使用者執行OOS模板。

情境介紹

某公司帳號下購買了若干台ECS執行個體,其中2台被打上標籤TagKey:TagValue進行了分組,某員工甲被分配的RAM使用者為subUser1ForOOS,甲定期通過該帳號在OOS中執行一個模板T,模板執行的任務是對標籤TagKey:TagValue分組下的ECS執行個體批量執行Shell指令。即該員工具有對模板T的唯讀和執行許可權,以及有模板任務涉及API(如RunCommand)的操作許可權,且可操作的API僅對標籤TagKey:TagValue分組下的執行個體有效。

解決方案

為滿足上述情境,許可權管理要分兩方面,OOS資源操作和ECS資源操作:

  • OOS方面的權限原則包括對模板的執行許可權、對執行的查詢許可權。

  • ECS方面權限原則為對標籤TagKey:TagValue下執行個體的操作許可權,且操作許可權僅限於模板中涉及的API。

以上的權限原則成功建立後,將其授權給員工甲使用的RAM使用者即可(或具有員工甲相同職責的使用者組)。

操作步驟

  1. ECS執行個體的分組

  2. 建立RAM使用者

  3. 建立自訂權限原則

  4. 為RAM使用者授權

  5. RAM使用者執行OOS模板

ECS執行個體的分組

  1. 登入雲端服務器管理主控台

  2. 選擇2台執行個體,在操作菜單下選擇豎著的三點 > 執行個體設定 > 編輯標籤

    image

  3. 單擊建立標籤,輸入標籤鍵標籤值,單擊確定

    本文中標籤鍵設為TagKey,標籤值設為TagValue。

    image

建立RAM使用者

  1. 使用阿里雲帳號或Resource Access Management員登入RAM控制台

  2. 在左側導覽列的身份管理 > 使用者菜單下,單擊建立使用者image

  3. 輸入登入名稱稱顯示名稱image

  4. 勾選訪問台控制,單擊自訂密碼並填寫要設定的子帳號密碼。單擊確定image

建立自訂權限原則

  1. 使用阿里雲帳號或Resource Access Management員登入RAM控制台

  2. 在左側導覽列的許可權管理菜單下,單擊權限原則>建立權限原則

  3. 分別建立OOS管理原則和ECS管理原則,策略內容如下:

    說明

    需將策略中的$AliyunMasterAccountID、$TagKey、$TagValue、$RegionID修改為您所使用的阿里雲帳號、ECS設定的tag以及使用的地區。

    1. OOS管理原則:

      { 
      "Statement": [
          {
              "Action": [
                  "oos:StartExecution",
                  "oos:List*",
                  "oos:Get*"
              ],
              "Resource": [
                  "acs:oos:$RegionID:$AliyunMasterAccountID:template/*",
                  "acs:oos:$RegionID:$AliyunMasterAccountID:execution/*"
              ],
              "Effect": "Allow"
          }
      ],
      "Version": "1"
      }
    2. ECS管理原則:

      {
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "ecs:DescribeInstances",
                  "ecs:RebootInstance"
              ],
              "Resource": "acs:ecs:$RegionID:$AliyunMasterAccountID:instance/*",
              "Condition": {
                  "StringEquals": {
                      "ecs:tag/$TagKey": [
                          "$TagValue"
                      ]
                  }
              }
          },
          {
              "Effect": "Allow",
              "Action": [
                  "ecs:DescribeCloudAssistantStatus",
                  "ecs:InstallCloudAssistant"
              ],
              "Resource": "acs:ecs:*:$AliyunMasterAccountID:instance/*",
              "Condition": {
                  "StringEquals": {
                      "ecs:tag/$TagKey": [
                          "$TagValue"
                      ]
                  }
              }
          },
          {
              "Action": "ecs:DescribeTagKeys",
              "Effect": "Allow",
              "Resource": "*"
          },
          {
              "Action": "ecs:DescribeTags",
              "Effect": "Allow",
              "Resource": "*"
          },
          {
              "Effect": "Deny",
              "Action": [
                  "ecs:DeleteTags",
                  "ecs:UntagResources",
                  "ecs:CreateTags",
                  "ecs:TagResources"
              ],
              "Resource": "*"
          },
           {
              "Effect": "Allow",
              "Action": [
                  "ecs:RunCommand"
              ],
              "Resource": "acs:ecs:*:$AliyunMasterAccountID:instance/*",
              "Condition": {
                  "StringEquals": {
                      "ecs:tag/$TagKey": [
                          "$TagValue"
                      ]
                  }
              }
          },
          {
              "Action": [
                  "ecs:RunCommand"
              ],
              "Resource": [
                  "acs:ecs:*:$AliyunMasterAccountID:command/*"
              ],
              "Effect": "Allow"
          },
          {
              "Action": [
                  "ecs:DescribeInvocations",
                  "ecs:DescribeInvocationResults"
              ],
              "Resource": [
                  "*"
              ],
              "Effect": "Allow"
          }
      ],
      "Version": "1"
      }            
  4. 分別填寫策略名稱稱備忘,單擊確定

為RAM使用者或使用者組授權

  1. 使用阿里雲帳號或Resource Access Management員登入RAM控制台

  2. 在左側導覽列的許可權管理 > 授權菜單下,單擊新增授權

  3. 授權主體中輸入RAM使用者名稱稱或使用者組名稱並選中,在權限原則中選擇自訂策略,在左側權限原則名稱列表下,單擊選擇需要授予給RAM使用者或使用者組的權限原則。 image

  4. 單擊確認新增授權

執行OOS模板

  1. 登入上文建立的RAM使用者。

  2. 進入CloudOps Orchestration Service控制台

  3. 自動化任務 > 公用工作範本,找到ACS-ECS-BulkyRunCommand模板,單擊建立執行

    image

  4. 單擊下一步:設定參數image

  5. 設定參數,單擊下一步:確定image

  6. 單擊建立image