本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将亚马逊 EC2 Linux 实例无缝加入共享的 AWS 托管微软 AD
在此过程中,将 Amazon EC2 Linux 实例无缝加入共享的 AWS Managed Microsoft AD 为此,您需要在要启动 EC2 Linux 实例的账户的 EC2 实例角色中创建 IA AWS Secrets Manager M 读取策略。该账户在此过程中被称为 Account 2。此实例将使用从另一个账户(称为 Account 1)共享的 AWS Managed Microsoft AD。
先决条件
您需要先完成以下操作,然后才能将 Amazon EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD:
-
教程:共享您的 AWS 托管 Microsoft AD 目录以实现无缝加入 EC2 域名教程中的步骤 1 到 3。本教程将引导你完成网络设置和共享 AWS 托管 Microsoft AD 的过程。
步骤 1:在账户 2 中创建 Linux EC2 DomainJoin 角色
在此步骤中,您可以使用 IAM 控制台创建用于在登录 Account
2 时通过域加入 EC2 Linux 实例的 IAM 角色。
创建 Linux EC2 DomainJoin 角色
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在左侧导航窗格中的访问管理下,选择角色。
-
在 Roles(角色)页面上,选择 Create role(创建角色)。
-
在 选择受信任实体的类型 下,选择 AWS 服务。
-
在使用案例下,选择 EC2,然后选择下一步。
-
对于筛选策略,执行以下操作:
-
输入
AmazonSSMManagedInstanceCore。然后在列表中选择该项目的复选框。 -
输入
AmazonSSMDirectoryServiceAccess。然后在列表中选择该项目的复选框。 -
添加这些策略后,选择创建角色。
注意
AmazonSSMDirectoryServiceAccess提供将实例加入由管理的 Active Directory 的权限 Directory Service。AmazonSSMManagedInstanceCore提供了使用所需的最低权限 AWS Systems Manager。有关创建具有这些权限的角色的更多信息,以及您可以分配给 IAM 角色的其他权限和策略的信息,请参阅《AWS Systems Manager 用户指南》中的为 Systems Manager 配置所需的实例权限。
-
-
在角色名称字段中,输入新角色的名称,如
LinuxEC2DomainJoin或您喜欢的其他名称。 -
(可选)对于角色描述,请输入描述。
-
(可选)在步骤 3:添加标签下选择添加新标签以添加标签。标签键值对用于组织、跟踪或控制此角色的访问权限。
-
选择创建角色。
步骤 2:创建跨账户资源访问权限以共享 AWS Secrets Manager 机密
下一节是需要满足的其他要求,才能将 EC2 Linux 实例与共享的 AWS 托管 Microsoft AD 无缝连接。这些要求包括创建资源策略并将其附加到相应的服务和资源。
要允许账户中的用户访问另一个账户中的 AWS Secrets Manager 密钥,您必须在资源策略和身份策略中同时允许访问权限。这种类型的访问权限称为跨账户资源访问权限。
这种类型的访问权限不同于授予 Secrets Manager 密钥所在账户中的身份访问权限。您还必须允许身份使用密钥加密的 AWS Key Management Service(KMS)密钥。此权限是必要的,因为您不能使用 AWS 托管密钥 (aws/secretsmanager) 进行跨账户访问。相反,您需要使用您创建的 KMS 密钥加密密钥,然后向其中附加密钥策略。要更改密钥的加密密钥,请参阅修改 AWS Secrets Manager
密钥。
注意
根据您使用的密钥 AWS Secrets Manager,会收取与之相关的费用。有关当前完整定价列表,请参阅 AWS Secrets Manager 定价aws/secretsmanager如果您创建自己的 KMS 密钥来加密您的密钥,则按当前 AWS KMS 费率向您 AWS 收费。有关更多信息,请参阅AWS Key Management Service 定价
以下步骤允许您创建资源策略,使用户能够将 EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD。
将资源策略附加到 Account 1 中的密钥
打开 Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/
。 -
从密钥列表中,选择您在先决条件期间创建的密钥。
-
在密钥的详细信息页面的概述选项卡下,向下滚动到资源权限。
-
选择编辑权限。
-
在策略字段中输入以下策略。以下策略允许EC2DomainJoin中的 Linux
Account 2访问中的密钥Account 1。将 ARN 值替换为您在步骤 1 中创建的LinuxEC2DomainJoin角色Account 2的 ARN 值。要使用此策略,请参阅将权限策略附加到 AWS Secrets Manager 密钥。
-
将语句添加到 Account 1 中 KMS 密钥的密钥政策中
打开 Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/
。 -
在左侧导航栏中,选择客户管理型密钥。
-
在客户管理型密钥页面上,选择您创建的密钥。
-
在密钥详细信息页面上,导航到密钥政策,然后选择编辑。
-
以下密钥政策语句允许
Account 2中的ApplicationRole使用Account 1中的 KMS 密钥来解密Account 1中的密钥。要使用此语句,请将其添加到 KMS 密钥的密钥策略中。有关更多信息,请参阅更改密钥策略。{ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account2:role/ApplicationRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }
为 Account 2 中的身份创建身份策略
使用 https://console.aws.amazon.com/iam/
打开 IAM 控制台。 -
在左侧导航窗格中的访问管理下,选择策略。
-
选择 Create Policy (创建策略)。在策略编辑器中,选择 JSON。
-
以下策略允许
Account 2中的ApplicationRole访问Account 1中的密钥,并通过使用同样位于Account 1中的加密密钥来解密密钥值。您可以在 Secrets Manager 控制台的密钥详细信息页面的密钥 ARN 下方找到您的密钥 ARN。或者,您可以调用 describe-secret 以识别密钥的 ARN。将资源 ARN 替换为密钥 ARN 和Account 1的资源 ARN。要使用此策略,请参阅将权限策略附加到 AWS Secrets Manager 密钥。 -
选择下一步,然后选择保存更改。
-
在Attach a resource policy to the secret in Account 1中查找并选择您在
Account 2中创建的角色。 -
在添加权限下,选择附加策略。
-
在搜索栏中,找到您在Add a statement to the key policy for the KMS key in Account 1中创建的策略,并选择将该策略添加到角色的框。然后选择添加权限。
步骤 3:无缝加入 Linux 实例
现在,您可以使用以下步骤将您的 EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD。
无缝加入 Linux 实例
-
登录 AWS 管理控制台 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/
。 -
从导航栏的区域选择器中,选择与现有目录 AWS 区域 相同的目录。
-
在 EC2 控制面板的启动实例部分,选择启动实例。
-
在启动实例页面的名称和标签部分下,输入您要用于 Linux EC2 实例的名称。
(可选)选择添加其他标签,添加一个或多个标签键值对,以组织、跟踪或控制此 EC2 实例的访问权限。
-
在应用程序和操作系统映像(Amazon 机器映像)部分中,选择您想要启动的 Linux AMI。
注意
使用的 AMI 必须具有 AWS Systems Manager (SSM 代理)版本 2.3.1644.0 或更高版本。要通过从该 AMI 启动实例来检查 AMI 中已安装的 SSM Agent 版本,请参阅获取当前安装的 SSM Agent 版本。如果您需要升级 SSM Agent,请参阅在适用于 Linux 的 EC2 实例上安装和配置 SSM Agent。
SSM 在将 Linux 实例加入 Active Directory 域时使用
aws:domainJoin插件。该插件将 Linux 实例的主机名更改为 EC2 AMAZ-XXXXXXX格式。有关aws:domainJoin的更多信息,请参阅《AWS Systems Manager 用户指南》中的 AWS Systems Manager 命令文档插件参考。 -
在实例类型部分,从实例类型下拉列表中选择要使用的实例类型。
-
在密钥对(登录)部分,您可以选择创建新密钥对,或从现有密钥对中进行选择。要创建新的密钥对,请选择新建新密钥对。输入密钥对的名称,然后为密钥对类型和私钥文件格式选择一个选项。要以可与 OpenSSH 一起使用的格式保存私钥,请选择 pem。要以可与 PuTTY 一起使用的格式保存私钥,请选择 ppk。选择创建密钥对。您的浏览器会自动下载私有密钥文件。将私有密钥文件保存在安全位置。
重要
这是您保存私有密钥文件的唯一机会。
-
在启动实例页面的网络设置部分下,选择编辑。从 VPC – 必需下拉列表中选择创建目录的 VPC。
-
从子网下拉列表中选择 VPC 中的其中一个公有子网。选择的子网必须将所有外部流量都路由到互联网网关。否则将无法远程连接到实例。
有关如何连接到互联网网关的更多信息,请参阅《Amazon VPC 用户指南》中的使用互联网网关连接到互联网。
-
在自动分配公有 IP 下,选择启用。
有关公共和私有 IP 寻址的更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EC2 实例 IP 寻址。
-
对于防火墙(安全组)设置,您可以使用默认设置或进行更改以满足您的需求。
-
对于配置存储设置,您可以使用默认设置或进行更改以满足您的需求。
-
选择高级详细信息部分,从域加入目录下拉列表中选择您的域。
注意
选择域加入目录后,您可能会看到:
当 EC2 启动向导识别到某个现有 SSM 文档包含意外属性时,会发生此错误。您可以执行以下操作之一:
如果您之前编辑了 SSM 文档且属性为预期属性,请选择关闭并继续启动 EC2 实例,不做任何更改。
选择“在此处删除现有 SSM 文档”链接以删除 SSM 文档。这将允许创建包含正确属性的 SSM 文档。启动 EC2 实例时,将自动创建 SSM 文档。
-
对于 IAM 实例配置文件,请选择您之前在先决条件部分步骤 2:创建 Linux EC2 DomainJoin 角色中创建的 IAM 角色。
-
选择启动实例。
注意
如果您要使用 SUSE Linux 进行无缝域加入,则需要重新启动才能进行身份验证。要从 Linux 终端重启 SUSE,请键入 sudo reboot。