本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。
背景
参数仓库是系统运维管理提供的一个可以在云端保存数据的功能,如有依赖使用云端数据的需求,使用参数仓库可以随时调用保存的数据、方便更新与维护。
而且在参数仓库功能内部还提供了一种加密参数选项,如当您想批量修改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