View a markdown version of this page

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

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

AWSSupport-ResetLinuxUserPassword

描述

AWSSupport-ResetLinuxUserPassword 运行手册可帮助您重置本地操作系统 (OS) 用户的密码。对于需要使用串行控制台访问其 Amazon Elastic Compute Cloud (Amazon EC2) 实例的用户,此运行手册尤其有用。运行手册 AWS 账户 使用自动生成的 AWS Identity and Access Management (IAM) 角色或您指定的自定义 IAM 实例配置文件在您的中创建一个临时 Amazon EC2 实例。自定义 (IAM) 实例配置文件必须有权检索包含密码的 AWS Secrets Manager 密钥值。

运行手册可停止您的目标 Amazon EC2 实例,分离 Amazon Elastic Block Store (Amazon EBS) 根卷,并将其附加到临时 Amazon 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否则您的实例将无法启动。

  • 使用自定义 IAM 实例配置文件需要拥有 IAM GetInstanceProfile 权限AutomationAssumeRole才能进行验证,而自定义实例配置文件本身必须包含 Systems Manager 和 Secrets Manager 访问权限。运行手册会预先验证实例配置文件是否存在,但如果实例配置文件缺少所需的访问权限,则在辅助实例操作期间将失败。

运行此自动化(控制台)

文档类型

自动化

所有者

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 用户指南中的停止和启动您的实例

  • InstanceProfileName

    类型:字符串

    描述:(可选)要附加到帮助程序 Amazon EC2 实例的 IAM 实例配置文件的名称。如果未提供,则将自动创建具有所需权限的临时实例配置文件。自定义实例配置文件必须有权访问指定的 Secrets Manager 密钥和 Systems Manager。

所需的 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

  • iam:GetInstanceProfile

文档步骤

  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 实例根卷是亚马逊 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:branch— 根据是否提供了自定义 IAM 实例配置文件名称来分支自动化

  13. aws:assertAwsResourceProperty— 确保自定义 IAM 实例配置文件存在并验证其名称是否与输入参数匹配。

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

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

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

  17. aws:waitForAwsResourceProperty— 等待临时 Amazon EC2 实例报告为由 Systems Manager 管理。

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

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

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

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

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

  23. aws:executeAwsApi— 将 Amazon EBS 根卷与目标 Amazon EC2 实例分离。

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

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

  26. aws:waitForAwsResourceProperty— 等待 Amazon EBS 根卷连接到临时的 Amazon EC2 实例。

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

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

  29. aws:waitForAwsResourceProperty— 等待 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

  30. aws:executeAwsApi— 出错后,将 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

  31. aws:waitForAwsResourceProperty— 等待出错后将 Amazon EBS 根卷与临时的 Amazon EC2 实例分离。

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

  33. aws:executeAwsApi— 将根 Amazon EBS 卷重新连接到目标 Amazon EC2 实例。

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

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

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

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

  38. aws:waitForAwsResourceProperty— 等待 Amazon EBS 交易量处于状态。attached

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

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

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

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

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