天天看點

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

問題

如何建立通路控制 (RAM) 政策來授予子賬号(sub User)在指定的标簽(TAG)下 建立和管理 ECS 中 資源(支援标簽的資源)的權限? 該政策必須限制在标簽(TAG)級别權限,以便 RAM 子賬号可以建立包含特定标簽的 ECS 資源,并管理帶有标簽ECS資源。

場景描述

使用指定标簽(TAG)為子賬号(RAM User)限定通路ECS資源的邊界,這裡指支援标簽的ECS資源:執行個體/磁盤/網卡/安全組/快照/鏡像。

簡述

控制對ECS資源,比如ECS執行個體建立必須帶某個标簽TAG,否則不可以建立,具體操作如下所示

  1. 建立RAM政策:建立一個 RAM 政策,以授予對任何帶該特定标簽(TAG)​的通路權限(主要針對ECS)。
  2. 授權使用者:将該 RAM 政策附加到您希望通路具備該标簽(TAG)的使用者或組。
  3. 資源準備:有權限的賬号建立VPC執行個體及VSW執行個體,建立完成後打上特定标簽(TAG)。

    注: 下述政策沒有給出建立VPC/VSW的權限,需要可以自行添加建立權限政策。

  4. 安全組強制标簽建立:不帶特定标簽(TAG)建立安全組,建立不成功;帶特定标簽(TAG)建立安全組,建立成功。
  5. 獨立磁盤強制标簽建立:不帶特定标簽(TAG)建立磁盤:建立不成功;帶特定标簽(TAG)建立磁盤,建立成功。
  6. 執行個體強制标簽建立:不帶特定标簽(TAG)建立執行個體:建立不成功;帶特定标簽(TAG)建立執行個體:執行個體建立需要依賴帶特定标簽(TAG)的VPC/VSwitch/安全組,同時執行個體上也打上帶特定标簽(TAG),方可建立成功。
  7. 快照強制标簽建立:不帶特定标簽(TAG)建立快照:建立不成功;帶特定标簽(TAG)建立快照,建立成功。
  8. 自定義鏡像強制标簽建立:不帶特定标簽(TAG)建立自定義鏡像:建立不成功;帶特定标簽(TAG)建立自定義鏡像,建立成功。
  9. 輔助網卡強制标簽建立:不帶特定标簽(TAG)建立輔助網卡:建立不成功;帶特定标簽(TAG)建立輔助網卡,建立成功。

解決方法

建立RAM政策

通路控制台

或者 或者使用

RAM API CreatePolicy

建立政策

政策如下:

  • 允許部分ECS查詢接口(标簽查詢接口3個,建立需要資源查詢接口若幹個)、VPC查詢接口( "vpc:DescribeVpcs","vpc:DescribeVSwitches")、支付訂單接口("bss:PayOrder")
  • 不允許操作TAG相關接口
  • 除以上外,必須帶有特定标簽(key=owner value=zhangsan)的資源才有權限查詢或者操作相關資源的權限。這裡因為使用到VPC的資源(vpc及Vswitch)也現在其必須要特定的标簽才能使用。
{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ecs:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "ecs:tag/owner": "zhangsan"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ecs:*",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "vpc:tag/owner": "zhangsan"
                }
            }
        },
        {
            "Action": [
                "ecs:DescribeTagKeys",
                "ecs:ListTagResources",
                "ecs:DescribeTags",
                "ecs:DescribeKeyPairs",
                "ecs:DescribeImages",
                "ecs:DescribeSecurityGroups",
                "ecs:DescribeLaunchTemplates",
                "ecs:DescribeDedicatedHosts",
                "ecs:DescribeDedicatedHostTypes",
                "ecs:ecs:DescribeAutoSnapshotPolicyEx",
                "vpc:DescribeVpcs",
                "vpc:DescribeVSwitches",
                "bss:PayOrder"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Effect": "Deny",
            "Action": [
                "ecs:RemoveTags",
                "ecs:UntagResources",
                "ecs:AddTags",
                "ecs:TagResources"
            ],
            "Resource": "*"
        }
    ],
    "Version": "1"
}           

授權使用者

将已建立的 RAM 政策附加到您希望控制通路的使用者或組。您可以使用

RAM 管理控制台

、阿裡雲 CLI、阿裡雲 API

AttachPolicyToUser AttachPolicyToGroup

來添加 RAM 政策。

VPC資源準備

本文沒有給VPC建立的權限。使用有VPC建立權限的賬号,進入

VPC控制台

建立VPC

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

使用API

TagResources
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

給建立出來的VPC/VSwitch都打上強制标簽(key=owner value=zhangsan),當然其他标簽(key=env, value=test)也可以同時加上,基于本文的RAM政策不影響通路權限。

安全組強制标簽建立

ECS(雲伺服器)控制台

點選 網絡與安全 - 點選 安全組 在安全組清單頁面點選 建立安全組 填入對應的參數。

注意此處VPC資源必須是帶有特定标簽的VPC執行個體(key=owner value=zhangsan)否則也會沒有權限。

如果建立安全組不帶特定标簽(key=owner value= zhangsan)時,點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立失敗

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

如果建立安全組帶特定标簽(key=owner value= zhangsan)時,點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功,彈出提醒框

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

點選檢視安全組清單,沒有看到建立出來的安全組

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

在标簽指定特定的标簽(key=owner value=zhangsan)

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

也可以點選全局标簽設定

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

出現沒有權限報錯:我們對于VPC停機不收費查詢沒有在權限裡是以報錯,本文跟此配置無關,直接點選确定。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

設定特定的标簽(key=owner value=zhangsan)點選确認

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

确認後特定标簽在控制台全局範圍生效。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

在不選擇該特定标簽過濾的情況下也可以在控制台看到安全組資源。

獨立磁盤強制标簽建立

不帶上特定的标簽(key=owner value=zhangsan )點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

帶上特定的标簽(key=owner value=zhangsan 如下圖紅框位置)點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

設定全局變量後,可以直接查詢磁盤清單

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

執行個體強制标簽建立

點選 執行個體與鏡像 - 點選 執行個體 在執行個體清單頁面點選 建立執行個體 填入對應的參數。

注意此處VPC資源(VPC和VSwitch)以及ECS安全組必須是帶有特定标簽(key=owner value=zhangsan)否則也會因為沒有權限建立失敗。

選擇相關參數,帶上特定的标簽(key=owner value=zhangsan 如下圖紅框位置)點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功,跳轉到支付頁面

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

支付完成後,開始建立資源

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

已設定全局标簽後,檢視執行個體清單

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

執行個體相關磁盤

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

執行個體相關網卡也可以支援檢視。

如果不帶上特定的标簽(key=owner value=zhangsan 如下圖紅框位置)點選建立,建立失敗。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

快照強制标簽建立

帶上特定的标簽(key=owner value=zhangsan )點選建立。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功,設定全局标簽後,檢視快照清單。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

自定義鏡像強制标簽建立

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功。設定全局标簽後,查詢鏡像清單。

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔
高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

輔助網卡強制标簽建立

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立成功,設定完全局标簽後,查詢網卡清單

高階實踐:強制TAG——必須帶标簽建立ECS 資源問題場景描述簡述解決方法後記相關文檔

建立失敗。

後記

阿裡雲ECS資源已存在,可以基于ECS控制台-标簽 選擇标簽編輯器或者基于OOS(運維編排)快速給存量的資源打上指定的标簽。後續我也會有相關的如果在事後做到強制标簽。

相關文檔

ECS支援跨地域跨資源類型的标簽(TAG)操作 如何檢查您的資源是否具有您指定的标簽? 基于标簽批量管理資源 支援标簽産品及其文檔 标簽的最佳實踐 通過OOS基于标簽批量啟動ECS執行個體實踐 如何使用标簽控制對ECS 資源的通路? 使用标簽檢索資源 建立資源标簽分組設定 ECS全局标簽實踐 ECS控制台雲資源分組管理---全局标簽 标記您的MongoDB資料庫執行個體 标記您的 CDN 資源——域名(domain) 标記您的 OSS 資源 标記您的 RDS 資源 标記您的 SLB 資源 标記您的 ECS 資源 标記您的redis資料庫執行個體