本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
背景
參數倉庫是系統運維管理提供的一個可以在云端保存數據的功能,如有依賴使用云端數據的需求,使用參數倉庫可以隨時調用保存的數據、方便更新與維護。
而且在參數倉庫功能內部還提供了一種加密參數選項,如當您想批量修改ECS實例的密碼時,簡單的介紹兩種方法:
可以選擇使用阿里云提供的SDK編輯腳本的方式來修改。
使用系統運維管理的模板來修改密碼。
無論是第一種還是第二種方法,如果直接輸入密碼,此時您的密碼是以明文的形式輸入的,并不是一種安全的狀態,當您想查看使用過的密碼歷史記錄時,也沒有關于此方面的自動化記錄。
當您選擇使用第二種方法時,系統運維管理提供了集成加密參數的功能,它可以解決明文密碼的窘境。具體應該怎么樣做呢?下面為您詳細介紹。
使用本模板時,會重啟ECS實例,請確保重啟ECS實例不會對您的業務造成影響。
操作步驟
登錄系統運維管理控制臺。
單擊參數倉庫 > 加密參數。
創建加密參數。
在維護您的密碼前,首先需要先創建一個包含密碼的加密參數,如何創建加密參數請參考創建加密參數此文檔。
創建修改密碼的運維模板。
當您創建了加密參數后,怎么使用它呢?此時就用到了系統運維管理的模板相關的功能,編輯并創建您的修改密碼的模板,關于如何創建模板請參考新建模板文檔。此文檔為您提供了一個測試模板請參考附錄一:修改實例密碼模板。
創建執行。
選擇已經創建完成的模板,單擊創建執行 > 下一步:設置參數。
輸入參數。
選擇相應的regionId與實例。
在輸入密碼框后面選擇參數倉庫功能,并單擊其功能按鈕。
在選擇參數時,選擇加密參數這一功能,搜索并選擇已經創建完成的加密參數,單擊確定。
在參數輸入完成后,就可以去執行模板了,單擊下一步:確定 > 創建,等待模板執行成功。
驗證模板中的使用加密參數是否生效。
登錄實例,當到輸入實例密碼的步驟時,輸入使用加密參數設置的密碼,此時發現可以直接連接進入實例中。如下所示:
附錄一:修改實例密碼模板
FormatVersion: OOS-2019-06-01
Description:
en: Bulky modify the password of an ECS instance(Resetting the password will restart the ECS instance you selected).
zh-cn: 批量修改ECS實例的密碼(重置密碼會重啟您選定的ECS實例).
Parameters:
regionId:
Type: String
Description:
en: The id of region.
zh-cn: 地域ID。
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targets:
Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
password:
Description:
en: The password of the ECS instance.
zh-cn: ECS實例的密碼。支持長度為8至30個字符,必須同時包含大小寫英文字母、數字和特殊符號中的三類字符
Type: String
rateControl:
Description:
en: Concurrency ratio of task execution.
zh-cn: 任務執行的并發比率。
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
zh-cn: OOS扮演的RAM角色。
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances.
zh-cn: 獲取ECS實例。
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: resetPassword
Action: 'ACS::ECS::ResetPassword'
Description:
en: Modify the password of an ECS instance.
zh-cn: 修改實例密碼。
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
password: '{{ password }}'
Loop:
RateControl: '{{ rateControl }}'
Items: '{{ getInstance.instanceIds }}'
Outputs:
instanceId:
Type: String
ValueSelector: instanceId