全部產品
Search
文件中心

Elastic Compute Service:通過自訂權限原則授權RAM使用者使用ECS

更新時間:Jul 20, 2024

如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹Elastic Compute Service使用自訂權限原則的情境和策略樣本。

什麼是自訂權限原則

在基於RAM的存取控制體系中,自訂權限原則是指在系統權限原則之外,您可以自主建立、更新和刪除的權限原則。自訂權限原則的版本更新需由您來維護。

  • 建立自訂權限原則後,需為RAM使用者、使用者組或RAM角色綁定權限原則,這些RAM身份才能獲得權限原則中指定的存取權限。

  • 已建立的權限原則支援刪除,但刪除前需確保該策略未被引用。如果該權限原則已被引用,您需要在該權限原則的引用記錄中移除授權。

  • 自訂權限原則支援版本控制,您可以按照RAM規定的版本管理機制來管理您建立的自訂權限原則版本。

操作文檔

授權資訊參考

使用自訂權限原則,您需要瞭解業務的許可權管控需求,並瞭解Elastic Compute Service的授權資訊。更多資訊,請參見授權資訊

常見自訂權限原則樣本

授權RAM使用者建立隨用隨付執行個體

{
   "Statement": [
       {
           "Effect": "Allow",
           "Action": [
                   "ecs:DescribeImages",
                 "vpc:DescribeVpcs",
                 "vpc:DescribeVSwitches",
                 "ecs:DescribeSecurityGroups",
                 "ecs:DescribeKeyPairs",
                 "ecs:DescribeTags",
                 "ecs:RunInstances"
         ],
           "Resource": "*"
       }
   ],
   "Version": "1"
}

授權RAM使用者建立訂用帳戶執行個體

其中bss相關API主要用於查看並支付訂用帳戶訂單,其對應的系統策略為AliyunBSSOrderAccess

重要

通過RunInstances建立訂用帳戶執行個體時,若傳入autoPay=true(建立執行個體時自動支付),則不需要授權bss相關API。

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                    "ecs:DescribeImages", 
                  "vpc:DescribeVpcs", 
                  "vpc:DescribeVSwitches", 
                  "ecs:DescribeSecurityGroups", 
                  "ecs:DescribeKeyPairs",
                  "ecs:DescribeTags", 
                  "ecs:RunInstances",
                  "bss:DescribeOrderList",
                  "bss:DescribeOrderDetail",
                  "bss:PayOrder",
                  "bss:CancelOrder"
          ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

授權RAM使用者重啟ECS執行個體

以下策略表示:僅被授予此策略的RAM使用者啟用MFA並使用MFA登入時,才具有重啟ECS執行個體的許可權。您可以通過設定Conditionacs:MFAPresent的值為true來實現。

{
  "Statement": [
    {
      "Action": "ecs:RebootInstance",
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "acs:MFAPresent": "true"
        }
      }
    }
  ],
  "Version": "1"
}

授權RAM使用者管理指定的ECS執行個體

以下策略表示:您可以查看所有ECS執行個體及資源,但只能操作其中一個執行個體i-001

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": "acs:ecs:*:*:instance/i-001"
    },
    {
      "Action": "ecs:Describe*",
      "Effect": "Allow",
      "Resource": "*"
    }
  ],
  "Version": "1"
}

授權RAM使用者查看指定地區ECS執行個體

以下策略表示:僅允許您查看青島的ECS執行個體,但不允許查看磁碟及快照。

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "ecs:Describe*",
      "Resource": "acs:ecs:cn-qingdao:*:instance/*"
    }
  ],
  "Version": "1"
}

授權RAM使用者管理阿里雲帳號下ECS安全性群組

下述策略表示:您擁有管理阿里雲帳號下ECS安全性群組的許可權。

{
  "Version": "1",
  "Statement": [
    {
      "Action": "ecs:*SecurityGroup*",
      "Resource": "*",
      "Effect": "Allow"
    }
  ]
}

授權RAM使用者建立執行個體RAM角色

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ecs: CreateInstance",
                "ecs: AttachInstanceRamRole",
                "ecs: DetachInstanceRAMRole"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ram:PassRole",
            "Resource": "*"
        }
    ]
}

授權RAM使用者建立ECS執行個體後查詢執行個體和Block Storage資訊

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                    "ecs:DescribeInstances", 
                    "ecs:DescribeDisks"
          ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}

授權RAM使用者購買節省計劃

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "savingsplans:*",
      "Resource": "*"
    }
  ]
}

限制RAM使用者建立ECS執行個體時建立Default VPC

Elastic Compute Service提供了RAM使用者來實現不同業務之間的隔離操作,被賦予AliyunECSFullAccess(管理ECS)許可權的RAM使用者預設擁有建立ECS、查看ECS、重啟ECS等許可權。如果您需要限制RAM使用者在當前地區沒有VPC時禁止建立Default VPC並建立ECS的許可權,同時保留其他許可權,可通過存取控制RAM自訂策略來實現。

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "vpc:CreateDefaultVpc": [
                        "true"
                    ]
                }
            }
        }
    ]
}

授權RAM使用者使用首碼列表

{
    "Statement": [
        {
            "Action": [
                "ecs:CreatePrefixList",
                "ecs:ModifyPrefixList",
                "ecs:DescribePrefixLists",
                "ecs:DescribePrefixListAssociations",
                "ecs:DescribePrefixListAttributes",
                "ecs:DeletePrefixList"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ],
    "Version": "1"
}

授權RAM使用者使用雲助手

詳細資料,可參見雲助手自訂策略樣本

授權RAM使用者對OSS Bucket的讀許可權

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject",
                "oss:GetBucketLocation",
                "oss:GetBucketInfo"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

授權RAM使用者對OSS Bucket的讀寫權限

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "oss:GetObject",
                "oss:GetBucketLocation",
                "oss:GetBucketInfo",
                "oss:PutObject",
                "oss:DeleteObject",
                "oss:AbortMultipartUpload",
                "oss:ListMultipartUploads",
                "oss:ListParts"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

授權RAM使用者只允許通過HTTPS協議訪問ECS資源

{
  "Statement": [
    {
      "Action": "ecs:*",
      "Effect": "Allow",
      "Resource": "*",
      "Condition": {
        "Bool": {
          "acs:SecureTransport": "true"
        }
      }
    }
  ],
  "Version": "1"
}

限制RAM使用者僅支援建立加密雲端硬碟

對於部分高安全合規要求的企業,針對企業帳號下所有RAM子帳號可能要求必須使用加密以保護資料的機密性。ECS支援配置自訂權限原則限制RAM子帳號僅支援建立加密雲端硬碟。

{
  "Version": "1",
  "Statement": [
    {
      "Action": [
        "ecs:RunInstances",
        "ecs:CreateInstance"
      ],
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ecs:IsDiskEncrypted": "*false*"
        }
      },
      "Effect": "Deny"
    },
    {
      "Action": [
        "ecs:RunInstances",
        "ecs:CreateInstance"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "ecs:IsSystemDiskEncrypted": "false"
        }
      },
      "Effect": "Deny"
    },
    {
      "Action": "ecs:CreateDisk",
      "Resource": "*",
      "Condition": {
        "StringLike": {
          "ecs:IsDiskEncrypted": "*false*"
        }
      },
      "Effect": "Deny"
    }
  ]
}

限制RAM使用者只能使用自訂鏡像建立ECS執行個體

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:RunInstances",
                "ecs:CreateInstance"
            ],
            "Effect": "Deny",
            "Resource": "acs:ecs:<地區ID>:*:instance/*",
            "Condition": {
                "StringNotEquals": {
                    "ecs:ImageSource": "Custom"
                }
            }
        }
    ]
}