本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
演练:从工作站注册实例
重要
这些区域有: AWS OpsWorks Stacks 该服务已于 2024 年 5 月 26 日终止,新客户和现有客户均已禁用。我们强烈建议客户尽快将其工作负载迁移到其他解决方案。如果您对迁移有疑问,请联系 AWS Support 团队开启 AWS re: post 或通过
注意
仅 Linux 堆栈支持此功能。
注册过程支持多几种方案。本节将向您介绍一个场景的 end-to-end 示例:如何使用您的工作站注册 Amazon EC2 实例。其他注册场景使用类似的过程。有关更多信息,请参阅 注册 Amazon EC2 和本地实例。
注意
您通常需要注册现有的 Amazon EC2 实例。不过,您可以只为本演练创建新实例和新堆栈,然后在完成后将其删除。
步骤 1:创建堆栈和实例
首先,您需要在该堆栈中注册一个堆栈和一个 Amazon EC2 实例。
创建堆栈和实例
-
使用 AWS OpsWorks 堆叠控制台
以创建一个名EC2Register为的新堆栈。您可以接受其他堆栈设置的默认值。 -
从 Amazon EC2 控制台
启动新实例。请注意以下几点。 -
该实例必须与堆栈位于同一区域和VPC同一堆栈中。
如果您使用的是VPC,请为本演练选择一个公有子网。
-
如果您需要创建SSH密钥,请将私钥文件保存到您的工作站并记录其名称和文件位置。
如果您使用现有密钥,则记录名称和私有密钥文件位置。稍后将需要这些值。
-
该实例必须基于某个受支持的 Linux 操作系统。例如,如果您的堆栈位于美国西部(俄勒冈州),则可以使用
ami-35501205
在该地区启动 Ubuntu 14.04 LTS 实例。
否则,请接受默认值。
-
当该实例启动时,您可以继续下一部分。
步骤 2:安装和配置 AWS CLI
使用以下方法进行注册 AWS CLI aws opsworks register命令。在注册第一个实例之前,您必须运行版本 1.16.180 的 AWS CLI 或更新的版本。安装详细信息取决于您工作站的操作系统。有关安装的更多信息 AWS CLI,请参阅安装AWS命令行界面。要检查的版本 AWS CLI
您正在运行的,请在 shell 会话aws --version
中输入。
注意
要防止用户或角色注册实例,请更新实例配置文件以拒绝访问 register 命令。
我们强烈建议您不要跳过此步骤,即使您已经在运行 AWS CLI 在您的工作站上。使用最新版本的 AWS CLI 是一种安全最佳实践。
您必须提供register
一组具有适当权限的AWS证书。为了避免直接在实例上安装凭证,推荐的方法是注册使用实例配置文件启动的实例,然后将 --use-instance-profile
开关添加到您的 register
命令中。如果要从实例配置文件获取凭证,请跳至本主题中的步骤 3:在EC2Register堆栈中注册实例。但是,如果您的实例不是使用实例配置文件启动的,则可以创建IAM用户。以下过程创建具有相应权限的新用户,在工作站上安装该用户的凭证,然后将这些凭证传递给 register
。
警告
IAM用户拥有长期凭证,这会带来安全风险。为帮助减轻这种风险,我们建议仅向这些用户提供执行任务所需的权限,并在不再需要这些用户时将其移除。
创建用户
-
在IAM控制台
上,选择导航窗格中的用户,然后选择添加用户。 -
添加名为
EC2Register
的用户。 -
选择下一步。
-
在设置权限页面上,选择 直接附加策略。
-
OpsWorks
在 “权限策略筛选器” 框中输入以显示 AWS OpsWorks 策略,选择以下策略之一,然后选择下一步:查看。此策略授予用户运行register
时所需的权限。-
选择
AWSOpsWorksRegisterCLI_EC2
允许用户注册使用EC2实例配置文件的实例。 -
选择
AWSOpsWorksRegisterCLI_OnPremises
以允许注册本地实例的用户权限。
-
-
选择下一步。
-
在审核页面上,选择创建用户。
-
现在为您的用户创建访问密钥。从导航窗格中,选择用户,然后选择要为其创建访问密钥的用户。
-
选择安全凭证选项卡,然后选择创建访问密钥。
-
选择最符合您任务的访问密钥最佳实践和替代方法。
-
选择下一步。
-
(可选)输入标识访问密钥的标签。
-
选择下一步。
-
选择下载 .csv 文件,将凭证文件保存到系统中的方便位置,然后选择完成。
您需要向提供IAM用户的凭证register
。本演练通过在工作站credentials
的文件中安装EC2Register凭据来处理任务。有关管理证书的其他方法的信息 AWS CLI,请参阅配置和凭据文件。
安装用户的凭证
-
创建或打开工作站的
credentials
文件。文件位于~/.aws/credentials
(Linux、Unix 和 OS X) 或C:\Users\
(Windows 系统)。User_Name
\.aws\credentials -
使用以下格式将EC2Register用户的配置
credentials
文件添加到文件中。[ec2register] aws_access_key_id =
access_key_id
aws_secret_access_key =secret_access_key
Replace(替换)
access_key_id
以及secret_access_key
里面有你之前下载的EC2Register密钥。
步骤 3:在EC2Register堆栈中注册实例
您现在可以注册实例。
注册实例
-
In AWS OpsWorks 堆栈,返回EC2Register堆栈,在导航窗格中选择实例,然后选择注册实例。
-
选择EC2实例,选择下一步:选择实例,然后从列表中选择您的实例。
-
选择 “下一步:安装 AWS CLI” 和 “下一步:注册实例”。 AWS OpsWorks Stacks 会自动使用可用信息(如堆栈 ID 和实例 ID)来创建
register
命令模板,该模板将显示在注册实例页面上。在本示例中,您使用register
密钥登录实例并明确指定SSH密钥文件,因此请将 “我使用SSH密钥连接到我的实例” 设置为 “是”。命令模板类似于以下内容。aws opsworks register --infrastructure-class ec2 --region
region endpoint ID
--stack-id 247be7ea-3551-4177-9524-1ff804f453e3 --ssh-username[username]
--ssh-private-key[key-file]
i-f1245d10注意
您必须将区域设置为 AWS OpsWorks 如果堆栈位于与区域终端节点关联的经典区域内,则堆叠服务的终端节点区域,而不是堆栈的
us-east-1
区域。 AWS OpsWorks Stacks 会根据堆栈 ID 确定堆栈的区域。 -
命令模板包含多个用户特定的参数值,这些值通过方括号指示且必须用合适的值替换。将命令模板复制到文本编辑器,并按如下方式进行编辑。
重要
注册过程中创建的IAM用户在注册实例的整个生命周期中都是必需的。删除用户会导致 AWS OpsWorks Stacks 代理无法与服务通信。为了帮助防止在用户被意外删除时无法正常管理已注册实例,请将
--use-instance-profile
参数添加到您的register
命令,以便使用实例的内置实例配置文件。添加--use-instance-profile
参数还可以防止旋转时出现错误 AWS 账户访问密钥每 90 天一次(推荐的最佳做法),因为它可以防止可用访问密钥之间出现不匹配的情况 AWS OpsWorks 代理和必需的IAM用户。-
Replace(替换)
key file
使用您在创建实例时保存的 Amazon key pair 私EC2钥文件的完全限定路径。如果您愿意,可以使用相对路径。
-
Replace(替换)
username
使用实例的用户名。在本示例中,Ubuntu 实例的用户名要么是
ubuntu
,要么是红帽企业 Linux (RHEL) 或ec2-user
Amazon Linux 实例。 -
添加
--use-instance-profile
,它register
与实例配置文件一起运行,以防止在密钥轮换期间或主IAM用户被意外删除时出错。
您的命令应与以下内容类似。
aws opsworks register --use-instance-profile --infrastructure-class ec2 \ --region us-west-2 --stack-id 247be7ea-3551-4177-9524-1ff804f453e3 --ssh-username ubuntu \ --ssh-private-key "./keys/mykeys.pem" i-f1245d10
-
-
在您的工作站上打开一个终端窗口,粘贴来自编辑器的
register
命令,然后运行该命令。注册通常需要大约五分钟时间。完成后,返回 AWS OpsWorks 堆叠控制台并选择 “完成”。然后在导航窗格中选择 Instances (实例)。您的实例应在 Unassigned Instances 下列出。然后,您可以将该实例分配给某个层或将其留在原位,具体取决于您打算如何管理该实例。
-
完成后,停止该实例,然后使用将其删除 AWS OpsWorks 堆叠控制台或命令。这将终止 Amazon EC2 实例,因此您无需支付任何额外费用。