本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-ResetLinuxUserPassword
描述
AWSSupport-ResetLinuxUserPassword
运行手册可帮助您重置本地操作系统 (OS) 用户的密码。本运行手册对于需要使用串行控制台访问其亚马逊弹性计算云 (AmazonEC2) 实例的用户特别有用。运行手册在您 AWS 账户 和一个 AWS Identity and Access Management (IAM) 角色中创建一个临时 Amazon EC2 实例,该角色有权检索包含密码的 AWS Secrets Manager 密钥值。
运行手册会停止您的目标亚马逊EC2实例,分离亚马逊弹性区块存储 (AmazonEBS) 根卷,并将其附加到临时亚马逊EC2实例。利用运行命令,可以在临时实例上运行脚本,以设置您指定的操作系统用户的密码。然后,根 Amazon EBS 卷将重新连接到您的目标实例。此运行手册还提供了在自动化开始时创建根卷快照的选项。
开始之前
使用您要分配给操作系统用户的密码的值创建一个 Secrets Manager 密钥。该值必须为纯文本。有关更多信息,请参阅《AWS Secrets Manager 用户指南》中的创建 AWS Secrets Manager 密钥。
注意事项
-
我们建议您在使用此运行手册之前先备份您的实例。考虑将
CreateSnapshot
参数的值设置为Yes
。 -
更改本地用户密码需要运行手册停止您的实例。停止实例后,存储在内存或实例存储卷上的数据将丢失。此外,任何自动分配的公用IPv4地址都会被释放。有关停止实例时会发生什么情况的更多信息,请参阅 Amazon EC2 用户指南中的停止和启动实例。
-
如果连接到您的目标 Amazon EC2 实例的 Amazon EBS 卷使用客户托管 AWS Key Management Service (AWS KMS) 密钥进行加密,请确保 AWS KMS 密钥未加密,
deleted
disabled
否则您的实例将无法启动。
文档类型
自动化
所有者
Amazon
平台
Linux
参数
-
AutomationAssumeRole
类型:字符串
描述:(可选)允许 Systems ARN Manager Automation 代表您执行操作的 AWS Identity and Access Management (IAM) 角色的亚马逊资源名称 ()。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
InstanceId
类型:字符串
描述:(必填)包含您要重置的操作系统用户密码的 Amazon EC2 Linux 实例的 ID。
-
LinuxUserName
类型:字符串
默认:ec2-user
描述:(可选)要重置其密码的操作系统用户账户。
-
SecretArn
类型:字符串
描述:(必填)包含新密码的 Secrets Manager 密钥。ARN
-
SecurityGroupId
类型:字符串
描述:(可选)要附加到临时 Amazon EC2 实例的安全组的 ID。如果您未为此参数提供值,则使用默认的 Amazon Virtual Private Cloud (AmazonVPC) 安全组。
-
SubnetId
类型:字符串
描述:(可选)您要在其中启动 Amazon EC2 临时实例的子网的 ID。默认情况下,自动化会选择与您的目标实例相同的子网。如果您选择提供不同的子网,则它必须与目标实例位于同一可用区,并且可以访问 Systems Manager 端点。
-
CreateSnapshot
类型:字符串
有效值:是 | 否
默认:是
描述:(可选)确定是否在自动化运行之前创建目标 Amazon EC2 实例根卷的快照。
-
StopConsent
类型:字符串
有效值:是 | 否
默认:否
描述:输入
Yes
以确认您的目标 Amazon EC2 实例将在此自动化期间停止。当 Amazon EC2 实例停止时,存储在内存或实例存储卷中的所有数据都将丢失,并自动释放公有IPv4地址。有关更多信息,请参阅 Amazon EC2 用户指南中的停止和启动您的实例。
必需的IAM权限
AutomationAssumeRole
参数需要执行以下操作才能成功使用运行手册。
-
ssm:DescribeInstanceInformation
-
ssm:ListTagsForResource
-
ssm:SendCommand
-
ec2:AttachVolume
-
ec2:CreateSnapshot
-
ec2:CreateSnapshots
-
ec2:CreateVolume
-
ec2:DescribeImages
-
ec2:DescribeInstances
-
ec2:DescribeInstanceStatus
-
ec2:DescribeSnapshotAttribute
-
ec2:DescribeSnapshots
-
ec2:DescribeSnapshotTierStatus
-
ec2:DescribeVolumes
-
ec2:DescribeVolumeStatus
-
ec2:DetachVolume
-
ec2:RunInstances
-
ec2:StartInstances
-
ec2:StopInstances
-
ec2:TerminateInstances
-
cloudformation:CreateStack
-
cloudformation:DeleteStack
-
cloudformation:DescribeStackResource
-
cloudformation:DescribeStacks
-
cloudformation:ListStacks
-
logs:CreateLogDelivery
-
logs:CreateLogGroup
-
logs:DeleteLogDelivery
-
logs:DeleteLogGroup
-
logs:DescribeLogGroups
-
logs:DescribeLogStreams
-
logs:PutLogEvents
文档步骤
-
aws:branch
— 分支取决于您是否同意停止目标 Amazon EC2 实例。 -
aws:assertAwsResourceProperty
— 确保 Amazon EC2 实例的状态为running
或stopped
状态。否则,自动化将结束。 -
aws:executeAwsApi
— 获取 Amazon EC2 实例的属性。 -
aws:executeAwsApi
— 获取根卷属性。 -
aws:branch
— 根据是否提供了临时 Amazon EC2 实例的子网 ID 来分支自动化。 -
aws:assertAwsResourceProperty
— 确保您在SubnetId
参数中指定的子网与目标 Amazon EC2 实例位于同一个可用区中。 -
aws:assertAwsResourceProperty
— 确保目标 Amazon EC2 实例根卷是 Amazon EBS 卷。 -
aws:assertAwsResourceProperty
— 确保 Amazon EC2 实例架构为arm64
或x86_64
。 -
aws:assertAwsResourceProperty
— 确保 Amazon EC2 实例的关闭行为是stop
和不是terminate
。 -
aws:branch
— 确保 Amazon EC2 实例不是竞价型实例。否则,自动化将结束。 -
aws:executeScript
— 确保 Amazon EC2 实例不属于自动扩展组。如果该实例属于自动扩展组,则自动化会确认 Amazon EC2 实例处于Standby
生命周期状态。 -
aws:createStack
— 创建临时的 Amazon EC2 实例,用于重置您指定的操作系统用户的密码。 -
aws:waitForAwsResourceProperty
— 等到新启动的临时 Amazon EC2 实例开始运行。 -
aws:executeAwsApi
— 获取临时亚马逊EC2实例的 ID。 -
aws:waitForAwsResourceProperty
— 等待临时亚马逊EC2实例报告为由 Systems Manager 管理。 -
aws:changeInstanceState
— 停止目标 Amazon EC2 实例。 -
aws:changeInstanceState
— 强制目标 Amazon EC2 实例停止,以防它陷入停止状态。 -
aws:branch
— 根据是否请求了目标 Amazon EC2 实例的根卷快照来分支自动化。 -
aws:executeAwsApi
— 创建目标亚马逊EC2实例根亚马逊EBS卷的快照。 -
aws:waitForAwsResourceProperty
— 等待快照进入completed
状态。 -
aws:executeAwsApi
— 将 Amazon EBS 根卷与目标亚马逊EC2实例分离。 -
aws:waitForAwsResourceProperty
— 等待亚马逊EBS根卷与目标亚马逊EC2实例分离。 -
aws:executeAwsApi
— 将 Amazon 根EBS卷附加到临时亚马逊EC2实例。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 根卷附加到临时亚马逊EC2实例。 -
aws:runCommand
— 通过在临时 Amazon EC2 实例上使用运行命令运行 shell 脚本来重置目标用户密码。 -
aws:executeAwsApi
— 将 Amazon EBS 根卷与临时亚马逊EC2实例分离。 -
aws:waitForAwsResourceProperty
— 等待亚马逊EBS根卷与临时亚马逊EC2实例分离。 -
aws:executeAwsApi
— 出现错误后,将 Amazon EBS 根卷与临时亚马逊EC2实例分离。 -
aws:waitForAwsResourceProperty
— 在出错后,等待亚马逊EBS根卷与临时亚马逊EC2实例分离。 -
aws:branch
— 根据是否请求根卷的快照来确定出现错误时的恢复路径,对自动化进行分支。 -
aws:executeAwsApi
— 将根亚马逊EBS卷重新连接到目标亚马逊EC2实例。 -
aws:waitForAwsResourceProperty
— 等待亚马逊EBS根卷连接到亚马逊实EC2例。 -
aws:executeAwsApi
— 根据目标 Amazon EC2 实例根EBS卷快照创建新的 Amazon 卷。 -
aws:waitForAwsResourceProperty
— 等到新的 Amazon EBS 卷处于available
状态为止。 -
aws:executeAwsApi
— 将新的 Amazon EBS 卷作为根卷附加到目标实例。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 卷处于attached
状态。 -
aws:executeAwsApi
— 描述运行手册无法创建或更新 AWS CloudFormation 堆栈时的 AWS CloudFormation 堆栈事件。 -
aws:branch
— 根据之前的 Amazon EC2 实例状态对自动化进行分支。如果状态为running
,则实例已启动。如果处于stopped
状态,则自动化会继续。 -
aws:changeInstanceState
— 如果需要,启动 Amazon EC2 实例。 -
aws:waitForAwsResourceProperty
— 等到 AWS CloudFormation 堆栈处于终端状态后再删除。 -
aws:executeAwsApi
— 删除包括临时 Amazon EC2 实例在内的 AWS CloudFormation 堆栈。