建議您對ECS資源使用tag進行分類管理,通過tag可以定位一類資源,對一類資源定義RAM Policy(及批量營運操作等)。如通過RAM Policy約束只能使用打了某個tag的鏡像來建立ECS執行個體,實現分門別類的資源操作管控。
安全風險
使用標籤來劃分不同的資源,相比於資源群組,標籤是一種更加靈活的資源劃分維度或者工具,比如可以按照地區、部門、環境分別給資源打上多個標籤,同一個資源可以支援多個標籤。如果從資源視角來看,可以把資源分成各個雲產品,比如有 ECS 計算資源,有 OSS 儲存資源,有 VPC 網路資源,從標籤的視角,就可以更加貼近於使用者的視角,可以把資源按照地區或者是部門或者是環境等多個維度來進行區分,在此基礎上,可以基於標籤來實現訪問的控制。
最佳實務
您可以給同一業務屬性的資源打上標籤(Tag),然後在RAM權限原則中使用標籤來約束資源,達到您按業務管理資源權限原則的目的。
例如,您有一組部署資料庫的ECS執行個體,這組執行個體不允許綁定公網IP。那麼您可以:
1)給這組ECS執行個體,打上標籤,如function:database。
2)在以下RAM策略樣本中使用acs:ResourceTag/function:database進一步約束Resource。
{
"Version": "1",
"Statement": [
{
"Effect": "Deny", #拒絕
"Action": [
"ecs:ModifyInstanceNetworkSpec", #申請EIP
... ... #有內容省略
],
"Resource": "acs:ecs:*:*:instance/*", #所有ECS執行個體
"Condition": {
"StringEquals": {
"acs:ResourceTag/function:database": ["*"] #打了function:database Tag
},
"Bool": {
"ecs:AssociatePublicIpAddress": ["true"] #綁定公網IP
}
}
]
}效果:打了function:database標籤的ECS執行個體使用ModifyInstanceNetworkSpec修改網路設定時,禁止綁定公網IP。