Seamlessly join a Linux EC2 instance to your Simple AD directory - AWS Directory Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

Seamlessly join a Linux EC2 instance to your Simple AD directory

This procedure seamlessly joins a Linux EC2 instance to your Simple AD directory.

支持以下 Linux 实例分发版和版本:

  • Amazon Linux AMI 2018.03.0

  • Amazon Linux 2(64 位 x86)

  • Red Hat Enterprise Linux 8 (HVM)(64 位 x86)

  • Ubuntu Server 18.04 LTS 和 Ubuntu Server 16.04 LTS

  • CentOS 7 x86-64

  • SUSE Linux Enterprise Server 15 SP1

注意

Ubuntu 14 和 Red Hat Enterprise Linux 7 之前的分发版不支持无缝域加入功能。

Prerequisites

Before you can set up seamless domain join to a Linux EC2 instance, you need to complete the procedures in this section.

Select your seamless domain join service account

You can seamlessly join Linux computers to your Simple AD domain. To do that, you must create a user account with create computer account permissions to join the computers to the domain. Although members of the Domain Admins or other groups may have sufficient privileges to join computers to the domain, we do not recommend this. As a best practice, we recommend you use a service account that has the minimum privileges necessary to join the computers to the domain.

For information about how to process and delegate permissions to your service account for computer account creation, see 向您的服务账户委派权限.

创建用于存储域服务账户的密钥

您可以使用 AWS Secrets Manager 存储域服务账户。

创建密钥并存储域服务账户信息

  1. 登录 AWS 管理控制台,并通过以下网址打开 AWS Secrets Manager 控制台:https://console.aws.amazon.com/secretsmanager/

  2. 选择存储新密钥

  3. 存储新密钥页面上,执行以下操作:

    1. Select secret type (选择密钥类型) 下,选择 Other type of secrets (其他密钥类型)

    2. 指定要存储在密钥中的键/值对下,执行以下操作:

      1. 在第一个框中,输入 awsSeamlessDomainUsername。在同一行的下一个框中,输入服务账户的用户名。例如,如果以前使用 PowerShell 命令,则服务账户名称将为 awsSeamlessDomain

        注意

        您必须完全按原样输入 awsSeamlessDomainUsername。确保没有任何前导或末尾空格。否则域加入将会失败。

      2. 选择添加行

      3. 在新行的第一个框中,输入 awsSeamlessDomainPassword。在同一行的下一个框中,输入服务账户的密码。

        注意

        您必须完全按原样输入 awsSeamlessDomainPassword。确保没有任何前导或末尾空格。否则域加入将会失败。

      4. 选择加密密钥下,从菜单中选择 DefaultEncryptionKey。当您选择此选项时,Secrets Manager 始终会加密密钥,并免费向您提供该密钥。您也可以选择您自己创建的密钥。

      5. 选择 Next (下一步)

  4. 密钥名称下,按照以下格式输入包含您的目录 ID 的密钥名称:aws/directory-services/d-xxxxxxxxx/seamless-domain-join。此名称将用于检索应用程序中的密钥。

    注意

    您必须完全按原样输入 aws/directory-services/d-xxxxxxxxx/seamless-domain-join,但将 d-xxxxxxxxxxxx 替换为您的目录 ID。确保没有前导或末尾空格。否则域加入将会失败。

  5. 将其他所有内容保留为默认值,然后选择下一步

  6. 配置自动轮换部分,选择禁用自动轮换,然后选择下一步

  7. 检查设置,然后选择保存,以保存更改。Secrets Manager 控制台将返回到您账户中的密钥列表,该列表现已包含新的密钥。

  8. 从列表中选择新创建的密钥名称,并记下密钥 ARN 值。您需要在下一节中使用该名称。

创建所需的 IAM 策略和角色

使用以下先决条件步骤创建允许对 Secrets Manager 无缝域加入密钥(您之前创建的)进行只读访问的自定义策略和新的 Linuxec2DomainJoin IAM 角色。

创建 Secrets Manager IAM 读取策略

您可以使用 IAM 控制台创建授予对 Secrets Manager 密钥的只读访问权限的策略。

创建 Secrets Manager IAM 读取策略

  1. 以有权创建 IAM 策略的用户身份登录 AWS 管理控制台。然后,通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Policies

  3. 选择 Create policy

  4. 选择 JSON 选项卡,然后复制以下 JSON 策略文档中的文本。然后,将其粘贴到 JSON 文本框中。

    注意

    确保将 Resource ARN 替换为您之前创建的密钥的实际 ARN。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": [ "arn:aws:secretsmanager:us-east-1:############:secret:aws/directory-service/d-xxxxxxxxxx/seamless-domain-join-example" ] } ] }
  5. 完成后,选择查看策略验证 IAM 策略语法报告任何语法错误。

  6. 查看策略页面上,输入策略名称,如 SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read。查看摘要部分,了解策略授予的权限。选择创建策略以保存更改。新策略将显示在托管策略列表中,并已可以附加到身份。

注意

建议您为每个密钥创建一个策略。这样做可以确保实例只能访问相应的密钥,最大限度地降低单个实例受损所造成的影响。

创建 LinuxEC2DomainJoin 角色

您可以使用 IAM 控制台创建将用于域加入 Linux EC2 实例的角色。

创建 LinuxEC2DomainJoin 角色

  1. 以有权创建 IAM 策略的用户身份登录 AWS 管理控制台。然后,通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在导航窗格中,选择 Roles

  3. 在内容窗格中,选择创建策略

  4. Select type of trusted entity (选择受信任实体的类型) 下,选择 AWS service ( 服务)

  5. 选择使用案例下,选择 EC2,然后选择下一步:权限

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

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

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

    3. 输入 SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read(或您在上一过程中创建的策略的名称)。然后,在列表中选中该项目的复选框。

    注意

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

  7. 选择下一步: 标签

  8. (可选)添加一个或多个标签键值对,以组织、跟踪或控制对该角色的访问。然后选择 Next: Review

  9. 角色名称旁边,输入新角色的名称,如 LinuxEC2DomainJoin 或您喜欢的其他名称。

  10. (可选)对于角色描述,请输入描述。

  11. 选择创建角色

Seamlessly join your Linux EC2 instance

由于您已配置了所有先决条件任务,因此可以使用以下过程无缝加入您的 Linux EC2 实例。

无缝加入您的 Linux EC2 实例

  1. 登录到 AWS 管理控制台,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

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

  3. 选择 Launch Instance

  4. 步骤 1 页面上,选择适当的 Amazon 系统映像所对应的选择

    注意

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

  5. Step 2 (步骤 2) 页面上,选择合适的实例类型,然后选择 Next: Configure Instance Details (下一步: 配置实例详细信息)

  6. 步骤 3 页面上,执行以下操作,然后选择 Next: Add Storage (下一步:添加存储)

    1. 对于 Network,选择在其中创建了您的目录的 VPC。

    2. 对于 Subnet (子网),在 VPC 中选择一个公有子网。选择的子网必须将所有外部流量都路由到 Internet 网关。否则将无法远程连接到实例。

    3. 对于 Auto-assign Public IP (自动分配公有 IP),选择 Enable (启用)。有关公有和私有 IP 寻址的更多信息,请参阅 Amazon EC2 用户指南(适用于 Windows 实例)中的 Amazon EC2 实例 IP 寻址

    4. 对于 Domain join directory (域加入目录),从列表中选择您的域。

    5. 对于 IAM 角色,请选择您之前在先决条件部分步骤 2:创建 LinuxEC2DomainJoin 角色中创建的 IAM 角色。

  7. 步骤 4步骤 5 页面上,保留默认设置或者根据需要进行更改。然后在每个页面上选择下一步

  8. 步骤 6 页面上,选择已配置为允许从您的网络远程访问实例的安全组。然后选择查看和启动

  9. 步骤 7 页面上,选择启动,选择密钥对,然后选择启动实例

注意

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