647
魔獸
在ECS中訪問各類阿裏雲雲資源的正確姿勢
我們經常會有需要在阿裏雲的ECS中訪問各類OSS資源,以存取在ECS中需要使用到的各種文件。
通常,我們的做法是:
把阿裏雲賬號的Access Key ID及Access Key Secret(以下簡稱AK)設置在ECS中,通過這個AK來調用OSS的OPENAPI以達到從OSS中存取各類文件的目的。
但是,這種做法當前存在下列問題:
1) 直接存儲在ECS中的AK可能會因為各種原因出現泄漏的情況
2) AK的權限較大,無法更細致的限製當前ECS的具體權限,比如隻允許當前的ECS以隻讀的方式訪問某個Bucket
3) 假設AK因為某些原因需要變更,那麼您需要逐個實例手動進行修改
為解決上述問題,阿裏雲ECS推出了“ECS實例RAM角色”功能,使用該功能您可以安全快捷的在阿裏雲ECS中訪問各類阿裏雲的雲資源:
1) ECS實例RAM角色所提供的臨時安全token(STS Token)可讓您方便的訪問已授權的雲資源
2) STS Token會每六小時內刷新一次,大大的降低泄露所帶來的風險
3) STS Token所擁有的權限完全受您控製,您可以隨時進行權限的更改/維護
“ECS實例RAM角色”適用於下述各類場景:
1) 需要在當前ECS實例中讀寫指定OSS資源的
2) 需要在當前ECS中獲取賬戶下ECS資源的各種信息的,如:獲取賬號下其他ECS資源的外網IP信息
3) 需要在當前ECS中自定義運維策略的:如定時開啟/關閉指定的ECS實例
4) 需要在當前ECS中獲取RDS資源相關信息的
5) 其他各類需要在ECS中完成的對各類阿裏雲資源的相關操作
下麵以“在ECS中隻讀訪問所有OSS資源”為例,說明ECS實例RAM角色具體的使用步驟:
1) 登錄阿裏雲訪問控製控製台,進入角色管理,點擊“新建角色“
2) 選擇“服務角色”->“ECS雲服務器”
3) 輸入角色名稱,這裏我們設置為“OSSReadOnly”,點擊“創建”
4) 點擊“授權”->“編輯授權策略”,對角色進行授權
5) 選擇“AliyunOSSReadOnlyAccess”,並點擊“確定”。至此“ECS實例RAM角色”就創建並授權好了。
6) 進入阿裏雲ECS購買頁麵,在“RAM角色”中選擇剛剛創建的“OSSReadOnly”,設定其他購買選項後,您購買的ECS實例即擁有了“OSSReadOnly”的角色
7) 遠程連接進入實例,使用metadata(curl https://100.100.100.200/latest/meta-data/ram/security-credentials/OSSReadOnly)即可獲得該角色所提供的STS Token信息:
8) 使用所獲取的Token,在ECS中利用OSS的OPENAPI來進行OSS信息的讀取
說明:
1. 不隻是OSS,您還可以通過角色的權限控製,設置ECS在可控權限範圍內訪問阿裏雲的其他各類雲資源
2. 若要為已創建的實例賦予RAM角色,您可在“ECS控製台的實例列表”中進行操作
3. 更多關於ECS實例角色的文檔,請參考阿裏雲在線幫助:
a) 中文版
i. 關於ECS實例RAM角色
ii. 通過控製台使用實例RAM角色
iii. 通過OPENAPI使用實例RAM角色
iv. 實例RAM角色API實踐
b) 英文版
i. 關於ECS實例RAM角色
ii. 通過控製台使用實例RAM角色
iii. 通過OPENAPI使用實例RAM角色
iv. 實例RAM角色API實踐
最後更新:2017-11-29 14:34:48