AWSSupport-ResetLinuxUserPassword - AWS Systems Manager 自动化运行手册参考

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 密钥未加密,deleteddisabled否则您的实例将无法启动。

运行此自动化(控制台)

文档类型

自动化

所有者

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

文档步骤

  1. aws:branch— 分支取决于您是否同意停止目标 Amazon EC2 实例。

  2. aws:assertAwsResourceProperty— 确保 Amazon EC2 实例的状态为runningstopped状态。否则,自动化将结束。

  3. aws:executeAwsApi— 获取 Amazon EC2 实例的属性。

  4. aws:executeAwsApi— 获取根卷属性。

  5. aws:branch— 根据是否提供了临时 Amazon EC2 实例的子网 ID 来分支自动化。

  6. aws:assertAwsResourceProperty— 确保您在SubnetId参数中指定的子网与目标 Amazon EC2 实例位于同一个可用区中。

  7. aws:assertAwsResourceProperty— 确保目标 Amazon EC2 实例根卷是 Amazon EBS 卷。

  8. aws:assertAwsResourceProperty— 确保 Amazon EC2 实例架构为arm64x86_64

  9. aws:assertAwsResourceProperty— 确保 Amazon EC2 实例的关闭行为是stop和不是terminate

  10. aws:branch— 确保 Amazon EC2 实例不是竞价型实例。否则,自动化将结束。

  11. aws:executeScript— 确保 Amazon EC2 实例不属于自动扩展组。如果该实例属于自动扩展组,则自动化会确认 Amazon EC2 实例处于Standby生命周期状态。

  12. aws:createStack— 创建临时的 Amazon EC2 实例,用于重置您指定的操作系统用户的密码。

  13. aws:waitForAwsResourceProperty— 等到新启动的临时 Amazon EC2 实例开始运行。

  14. aws:executeAwsApi— 获取临时亚马逊EC2实例的 ID。

  15. aws:waitForAwsResourceProperty— 等待临时亚马逊EC2实例报告为由 Systems Manager 管理。

  16. aws:changeInstanceState— 停止目标 Amazon EC2 实例。

  17. aws:changeInstanceState— 强制目标 Amazon EC2 实例停止,以防它陷入停止状态。

  18. aws:branch— 根据是否请求了目标 Amazon EC2 实例的根卷快照来分支自动化。

  19. aws:executeAwsApi— 创建目标亚马逊EC2实例根亚马逊EBS卷的快照。

  20. aws:waitForAwsResourceProperty— 等待快照进入completed状态。

  21. aws:executeAwsApi— 将 Amazon EBS 根卷与目标亚马逊EC2实例分离。

  22. aws:waitForAwsResourceProperty— 等待亚马逊EBS根卷与目标亚马逊EC2实例分离。

  23. aws:executeAwsApi— 将 Amazon 根EBS卷附加到临时亚马逊EC2实例。

  24. aws:waitForAwsResourceProperty— 等待 Amazon EBS 根卷附加到临时亚马逊EC2实例。

  25. aws:runCommand— 通过在临时 Amazon EC2 实例上使用运行命令运行 shell 脚本来重置目标用户密码。

  26. aws:executeAwsApi— 将 Amazon EBS 根卷与临时亚马逊EC2实例分离。

  27. aws:waitForAwsResourceProperty— 等待亚马逊EBS根卷与临时亚马逊EC2实例分离。

  28. aws:executeAwsApi— 出现错误后,将 Amazon EBS 根卷与临时亚马逊EC2实例分离。

  29. aws:waitForAwsResourceProperty— 在出错后,等待亚马逊EBS根卷与临时亚马逊EC2实例分离。

  30. aws:branch— 根据是否请求根卷的快照来确定出现错误时的恢复路径,对自动化进行分支。

  31. aws:executeAwsApi— 将根亚马逊EBS卷重新连接到目标亚马逊EC2实例。

  32. aws:waitForAwsResourceProperty— 等待亚马逊EBS根卷连接到亚马逊实EC2例。

  33. aws:executeAwsApi— 根据目标 Amazon EC2 实例根EBS卷快照创建新的 Amazon 卷。

  34. aws:waitForAwsResourceProperty— 等到新的 Amazon EBS 卷处于available状态为止。

  35. aws:executeAwsApi— 将新的 Amazon EBS 卷作为根卷附加到目标实例。

  36. aws:waitForAwsResourceProperty— 等待 Amazon EBS 卷处于attached状态。

  37. aws:executeAwsApi— 描述运行手册无法创建或更新 AWS CloudFormation 堆栈时的 AWS CloudFormation 堆栈事件。

  38. aws:branch— 根据之前的 Amazon EC2 实例状态对自动化进行分支。如果状态为 running,则实例已启动。如果处于 stopped 状态,则自动化会继续。

  39. aws:changeInstanceState— 如果需要,启动 Amazon EC2 实例。

  40. aws:waitForAwsResourceProperty— 等到 AWS CloudFormation 堆栈处于终端状态后再删除。

  41. aws:executeAwsApi— 删除包括临时 Amazon EC2 实例在内的 AWS CloudFormation 堆栈。