本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWSSupport-ResetLinuxUserPassword
描述
AWSSupport-ResetLinuxUserPassword
运行手册可帮助您重置本地操作系统 (OS) 用户的密码。本运行手册对于需要使用串行控制台访问其亚马逊弹性计算云 (Amazon EC2) 实例的用户特别有用。运行手册在您 AWS 账户 和一个 AWS Identity and Access Management (IAM) 角色中创建一个临时 Amazon EC2 实例,该角色有权检索包含密码的 AWS Secrets Manager 私有值。
运行手册会停止您的目标亚马逊 EC2 实例,分离亚马逊弹性区块存储 (Amazon EBS) 根卷,并将其附加到临时亚马逊实例。 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 Manager Automation 代表您执行操作 AWS Identity and Access Management (IAM) 角色的 Amazon 资源名称(ARN)。如果未指定角色,Systems Manager Automation 将使用启动此运行手册的用户的权限。
-
InstanceId
类型:字符串
描述:(必填)包含您要重置的操作系统用户密码的 Amazon EC2 Linux 实例的 ID。
-
LinuxUserName
类型:字符串
默认:ec2-user
描述:(可选)要重置其密码的操作系统用户账户。
-
SecretArn
类型:字符串
描述:(必需)包含新密码的 Secrets Manager 密钥的 ARN。
-
SecurityGroupId
类型:字符串
描述:(可选)要附加到临时 Amazon EC2 实例的安全组的 ID。如果您没有为此参数提供一个值,将使用默认的 Amazon Virtual Private Cloud (Amazon VPC) 安全组。
-
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
— 确保目标亚马逊 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实例根 Amazon EBS 卷的快照。 -
aws:waitForAwsResourceProperty
— 等待快照进入completed
状态。 -
aws:executeAwsApi
— 将 Amazon EBS 根卷与目标亚马逊 EC2 实例分离。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 根卷与目标亚马逊 EC2 实例分离。 -
aws:executeAwsApi
— 将根 Amazon EBS 卷附加到临时亚马逊 EC2 实例。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 根卷连接到临时亚马逊 EC2 实例。 -
aws:runCommand
— 通过在临时 Amazon EC2 实例上使用运行命令运行 shell 脚本来重置目标用户密码。 -
aws:executeAwsApi
— 将 Amazon EBS 根卷与临时亚马逊 EC2 实例分离。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 根卷与临时亚马逊 EC2 实例分离。 -
aws:executeAwsApi
— 出错后,将 Amazon EBS 根卷与临时亚马逊 EC2 实例分离。 -
aws:waitForAwsResourceProperty
— 等待出错后将 Amazon EBS 根卷与临时亚马逊 EC2 实例分离。 -
aws:branch
— 根据是否请求根卷的快照来确定出现错误时的恢复路径,对自动化进行分支。 -
aws:executeAwsApi
— 将根 Amazon EBS 卷重新连接到目标亚马逊 EC2 实例。 -
aws:waitForAwsResourceProperty
— 等待 Amazon EBS 根卷连接到亚马逊 EC2 实例。 -
aws:executeAwsApi
— 根据目标亚马逊 EC2 实例根卷快照创建新的 Amazon EBS 卷。 -
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 堆栈。