如果系統權限原則不能滿足您的要求,您可以建立自訂權限原則實現最小授權。使用自訂權限原則有助於實現許可權的精細化管控,是提升資源訪問安全的有效手段。本文介紹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執行個體的許可權。您可以通過設定Condition
下acs: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"
}
}
}
]
}