問題
如何創建RAM (Resource Access Management)策略以使用標籤控制對 雲服務器(Elastic Compute Service,ECS)實例的訪問?
場景描述
控制對ECS 實例部署的訪問,具體操作如下所示
- 添加標籤:向實例中添加特定標籤,您希望向用戶或組授予對這些實例的訪問權限。
- 創建RAM策略:創建一個 RAM 策略,以授予對任何帶該特定標籤的實例的訪問權限。
- 授權用戶:將該 RAM 策略附加到您希望訪問實例的用戶或組。
解決方法
向 ECS 實例組添加標籤
打開 ECS 控制檯,然後向 ECS 實例組添加標籤,您希望用戶或組能夠訪問這些實例。如果您還沒有標籤,請創建一個並加入資源
注意:在爲資源添加標籤之前,請閱讀並瞭解標籤限制。
創建一個 RAM 策略,以授予對帶該特定標籤的實例的訪問權限
創建一個類似於以下的 RAM 策略:
允許控制帶標籤的實例。
包含一個條件語句,如果條件鍵 ecs:tag/Onwer 的值與標籤值 [email protected] 或 [email protected] 匹配,則該語句允許訪問 ECS 資源。
允許訪問 帶有 標籤鍵owner 標籤值爲[email protected] 或者[email protected] 的 ECS 資源的 ecs:* 操作,.
明確允許訪問ECS查詢標籤 ecs:DescribeTagKeys 和 ecs:DeleteTags 操作
明確拒絕訪問 ecs:DeleteTags 、 ecs:UntagResources 、ecs:CreateTags 及 ecs:TagResources操作,以防止用戶創建或刪除標籤。
注意:這將通過向 ECS 實例中添加特定標籤來防止用戶控制該實例。
例如,創建完成的策略看起來應如下所示:
{
"Statement": [
{
"Effect": "Allow",
"Action": "ecs:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ecs:tag/owner": [
"[email protected]",
"[email protected]"
]
}
}
},
{
"Action": "ecs:DescribeTagKeys",
"Effect": "Allow",
"Resource": "*"
},
{
"Action": "ecs:DescribeTags",
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"ecs:DeleteTags",
"ecs:UntagResources",
"ecs:CreateTags",
"ecs:TagResources"
],
"Resource": "*"
}
],
"Version": "1"
}
將該 RAM 策略附加到您希望訪問實例的用戶或組a
最後,將已創建的 RAM 策略附加到您希望訪問實例的用戶或組。您可以使用 RAM 管理控制檯、阿里雲 CLI 或 阿里雲 API 來附加 RAM 策略。