将亚马逊 EC2 Linux 实例无缝加入共享的微软 AWS 托管 AD - AWS Directory Service

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

将亚马逊 EC2 Linux 实例无缝加入共享的微软 AWS 托管 AD

在此过程中,您将将 Amazon EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD。为此,您需要在要启动 EC2 Linux EC2 实例的账户中以实例角色创建 AWS Secrets Manager IAM读取策略。在本程序Account 2中将提及这一点。此实例将使用从另一个帐户(称为)共享的 AWS 托管 Microsoft AD Account 1

先决条件

您需要先完成以下操作,然后才能将 Amazon EC2 Linux 实例无缝加入共享的 Microsoft AWS 托管 AD:

第 1 步。在账户 2 中创建 Linux EC2DomainJoin 角色

在此步骤中,您将使用IAM控制台创建用于在登录时加入您的 EC2 Linux 实例的域名的IAM角色Account 2

创建 Linux EC2DomainJoin 角色
  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在左侧导航窗格的 “访问管理” 下,选择 “角色”。

  3. Roles(角色)页面上,选择 Create role(创建角色)。

  4. 选择受信任实体的类型 下,选择 AWS 服务

  5. 在 “用例” 下,选择 EC2,然后选择 “下一步

  6. 对于筛选策略,执行以下操作:

    1. 输入 AmazonSSMManagedInstanceCore。然后在列表中选中该项目的复选框。

    2. 输入 AmazonSSMDirectoryServiceAccess。然后在列表中选中该项目的复选框。

    3. 添加这些策略后,选择创建角色

      注意

      AmazonSSMDirectoryServiceAccess提供将实例加入的权限 Active Directory 由... 管理 AWS Directory Service。 AmazonSSMManagedInstanceCore提供了使用所需的最低权限 AWS Systems Manager。有关创建具有这些权限的角色的更多信息,以及您可以分配给IAM角色的其他权限和策略的信息,请参阅AWS Systems Manager 用户指南中的配置 Systems Manager 所需的实例权限

  7. 在角色名称字段中输入新角色的名称,例如LinuxEC2DomainJoin或其他您喜欢的名称

  8. (可选)在角色描述中,输入描述。

  9. (可选)步骤 3:添加标签下选择添加新标签以添加标签。标签键值对用于组织、跟踪或控制此角色的访问权限。

  10. 选择 Create role(创建角色)。

第 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 定价。你可以使用 Secrets Manager 创建的来免费加密你的秘密。 AWS 托管式密钥 aws/secretsmanager如果您创建自己的KMS密钥来加密您的机密,则按当前费 AWS KMS率向您 AWS 收费。有关更多信息,请参阅AWS Key Management Service 定价

以下步骤允许您创建资源策略,使用户能够将 EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD。

将资源策略附加到账户 1 中的密钥
  1. 打开 Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 从密钥列表中,选择您在密钥中创建的密钥先决条件

  3. 在 S ecret 的详细信息页面的 “概述” 选项卡下,向下滚动到 “资源权限”。

  4. 选择 “编辑权限”

    1. 在策略字段中,输入以下策略。以下策略允许EC2DomainJoin中的 Linux Account 2 访问中的密钥Account 1。将该ARN值替换为您Account 2步骤 1 中创建的LinuxEC2DomainJoin角色的ARN值。要使用此策略,请参阅将权限策略附加到 AWS Secrets Manager 密钥

      { { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account2:role/LinuxEC2DomainJoin" }, "Action": "secretsmanager:GetSecretValue", "Resource": "*" } ] }
在账户 1 中为密钥的KMS密钥策略添加声明
  1. 打开 Secrets Manager 控制台,网址为https://console.aws.amazon.com/secretsmanager/

  2. 在左侧导航窗格中,选择客户管理的密钥

  3. 客户管理的密钥页面上,选择您创建的密钥。

  4. 密钥详细信息页面上,导航到密钥策略,然后选择编辑

  5. 以下密钥策略声明允许使用ApplicationRole中的Account 2KMS密钥Account 1来解密中的密钥。Account 1要使用此语句,请将其添加到密钥的密KMS钥策略中。有关更多信息,请参阅更改密钥政策

    { { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::Account2:role/ApplicationRole" }, "Action": [ "kms:Decrypt", "kms:DescribeKey" ], "Resource": "*" }
为账户 2 中的身份创建身份策略
  1. 打开IAM控制台,网址为https://console.aws.amazon.com/iam/

  2. 在左侧导航窗格的访问管理下,选择策略

  3. 选择 Create Policy (创建策略)JSON策略编辑器中选择。

  4. 以下策略允许用户Account 2访问ApplicationRole中的密钥Account 1并使用中的加密密钥来解密密密钥值。Account 1你可以在 Secrets ARN Manager 控制台的 “密钥详情” 页面的 “密钥” 下找到你的密钥的ARN。或者,你可以调用 d escribe-secret 来识别密钥。ARN将资源ARN替换ARN为密钥的资源,ARN然后Account 1。要使用此策略,请参阅将权限策略附加到 AWS Secrets Manager 密钥

    { { "Version" : "2012-10-17", "Statement" : [ { "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": "SecretARN" }, { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Describekey" ], "Resource": "arn:aws:kms:Region:Account1:key/Your_Encryption_Key" } ] }
  5. 选择 “下一步”,然后选择 “保存更改”。

  6. 查找并选择您在Account 2中创建的角色Attach a resource policy to the secret in Account 1

  7. 在 “添加权限” 下,选择 “附加策略”。

  8. 在搜索栏中,找到您在中创建的策略,Add a statement to the key policy for the KMS key in Account 1然后选中将该策略添加到角色的复选框。然后选择 “添加权限”。

第 3 步。无缝加入你的 Linux 实例

现在,您可以使用以下步骤将您的 EC2 Linux 实例无缝加入共享的 AWS 托管 Microsoft AD。

无缝加入你的 Linux 实例
  1. 登录 AWS Management Console 并打开 Amazon EC2 控制台,网址为https://console.aws.amazon.com/ec2/

  2. 从导航栏的区域选择器中,选择与现有目录 AWS 区域 相同的目录。

  3. EC2控制面板启动实例部分,选择启动实例

  4. 启动实例页面的名称和标签部分下,输入您要用于 Linux EC2 实例的名称。

  5. (可选)选择 “添加其他标签” 以添加一个或多个标签键值对,以组织、跟踪或控制此EC2实例的访问权限。

  6. 在 “应用程序和操作系统映像(Amazon 系统映像)” 部分,选择AMI要启动的 Linux。

    注意

    用户必须AMI有 AWS Systems Manager (SSM代理)版本 2.3.1644.0 或更高版本。要AMI通过从中启动实例来检查已安装的SSM代理版本AMI,请参阅获取当前安装的SSM代理版本。如果您需要升级SSM代理,请参阅在 Linux EC2 实例上安装和配置SSM代理

    SSM将 Linux 实例加入时使用该aws:domainJoin插件 Active Directory 域。该插件将 Linux 实例的主机名更改为 EC2AMAZ-XXXXXXX。 有关的更多信息aws:domainJoin,请参阅《AWS Systems Manager 用户指南》中的AWS Systems Manager 命令文档插件参考

  7. 实例类型部分,从实例类型下拉列表中选择要使用的实例类型。

  8. 密钥对(登录)部分,您可以选择创建新密钥对,或从现有密钥对中进行选择。要创建新的密钥对,请选择新建新密钥对。输入密钥对的名称,然后为密钥对类型私钥文件格式选择一个选项。要以可与 Open 一起使用的格式保存私钥SSH,请选择 .pem。要以可用于 Pu 的格式保存私钥TTY,请选择 .ppk。选择创建密钥对。您的浏览器会自动下载私有密钥文件。将私有密钥文件保存在安全位置。

    重要

    这是您保存私有密钥文件的唯一机会。

  9. 启动实例页面的网络设置部分下,选择编辑。从 VPC-必填下拉列表中选择创建目录的。VPC

  10. 从 “子网” 下拉列表VPC中选择您的一个公有子网。选择的子网必须将所有外部流量都路由到互联网网关。否则将无法远程连接到实例。

    有关如何连接互联网网关的更多信息,请参阅亚马逊VPC用户指南》中的使用互联网网关连接互联网。

  11. 自动分配公有 IP 下,选择启用

    有关公有和私有 IP 地址的更多信息,请参阅亚马逊EC2用户指南中的亚马逊EC2实例 IP 地址

  12. 对于防火墙(安全组)设置,您可以使用默认设置或进行更改以满足您的需求。

  13. 对于配置存储设置,您可以使用默认设置或进行更改以满足您的需求。

  14. 选择高级详细信息部分,从域加入目录下拉列表中选择您的域。

    注意

    选择域加入目录后,您可能会看到:

    选择您的域加入目录时出现错误消息。您的现有SSM文档存在错误。

    如果EC2启动向导识别出具有意外属性的现有SSM文档,则会出现此错误。您可以执行以下操作之一:

    • 如果您之前编辑了SSM文档并且属性符合预期,请选择关闭并继续启动EC2实例,而不做任何更改。

    • 选择 “在此处删除现有SSM文档” 链接以删除该SSM文档。这将允许创建具有正确属性的SSM文档。该SSM文档将在您启动EC2实例时自动创建。

  15. 对于配置IAM文件,请选择您之前在 “先决条件” 部分 “步骤 2:创建 Linux EC2DomainJoin 角色” 中创建的角色。IAM

  16. 选择启动实例

注意

如果您要使用 SUSE Linux 进行无缝域加入,则需要重新启动才能进行身份验证。要SUSE从 Linux 终端重新启动,请键入 sudo reboot