

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

# 将 Amazon EC2 Linux 实例无缝加入 Simple AD Active Directory
<a name="simple_ad_seamlessly_join_linux_instance"></a>

此过程会将 Amazon EC2 Linux 实例无缝加入 Simple AD Active 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 企业服务器 15 SP1

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

## 先决条件
<a name="simple_ad_seamless-linux-prereqs"></a>

您需要完成本节中的过程，才能设置通过域无缝加入 Linux 实例。

### 选择无缝域名加入服务账户
<a name="simple_ad_seamless-linux-prereqs-select"></a>

您可以将 Linux 计算机无缝加入 Simple AD 域。要执行此操作，您必须创建一个具有创建计算机账户权限的用户账户，才能将计算机加入域。尽管*域管理员*或其他组的成员可能有足够的权限将计算机加入域，但我们不建议使用此角色。作为最佳实践，我们建议您使用具有将计算机加入域所需最低权限的服务账户。

有关如何处理并委托权限到服务账户委托权限以创建计算机账户的信息，请参阅 [向您的服务账户委派权限](ad_connector_getting_started.md#connect_delegate_privileges)。

### 创建密钥以存储域服务账户
<a name="-create-secrets"></a>

您可以使用 AWS Secrets Manager 存储域名服务帐户。有关更多信息，请参阅[创建 AWS Secrets Manager 密钥](https://docs.aws.amazon.com//secretsmanager/latest/userguide/create_secret.html)。

**注意**  
Secrets Manager 会产生相关费用。有关更多信息，请参阅《AWS Secrets Manager User Guide》**中的 [Pricing](https://docs.aws.amazon.com//secretsmanager/latest/userguide/intro.html#asm_pricing)。

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

1. 登录 AWS 管理控制台 并打开 AWS Secrets Manager 控制台，网址为[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 选择**存储新密钥**。

1. 在 **Store a new secret**（存储新密钥）页面上，执行以下操作：

   1. 在**密钥类型**下，选择**其他密钥类型**。

   1. 在**键/值对**下，执行以下操作：

      1. 在第一个框中，输入 **awsSeamlessDomainUsername**。在同一行的下一个框中，输入您服务账户的用户名。例如，如果您之前使用过该 PowerShell 命令，则服务帐户名称将为**awsSeamlessDomain**。
**注意**  
必须完全按照原样输入 **awsSeamlessDomainUsername**。确保前后均没有任何空格。否则，域加入将失败。  
![\[在 AWS Secrets Manager 控制台的 “选择密钥类型” 页面上。在密钥类型下选择其他类型的密钥并输入 awsSeamlessDomainUsername 作为键值。\]](http://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/images/secrets_manager_1.png)

      1. 选择**添加行**。

      1. 在新行的第一个框中输入 **awsSeamlessDomainPassword**。在同一行的下一个框中，输入服务账户密码。
**注意**  
必须完全按照原样输入 **awsSeamlessDomainPassword**。确保前后均没有任何空格。否则，域加入将失败。

      1. 在**加密密钥**下，保留默认值 `aws/secretsmanager`。选择此选项时， AWS Secrets Manager 始终会对密钥进行加密。您也可以选择您创建的密钥。

      1. 选择**下一步**。

1. 在 “**密钥名称**” 下，使用以下格式输入包含您的目录 ID 的密钥名称，*d-xxxxxxxxx*替换为您的目录 ID：

   ```
   aws/directory-services/d-xxxxxxxxx/seamless-domain-join
   ```

   这将用于检索应用程序中的密钥。
**注意**  
您必须**aws/directory-services/*d-xxxxxxxxx*/seamless-domain-join**完全按原样输入，但要*d-xxxxxxxxxx*用您的目录 ID 替换。确保前后均没有空格。否则，域加入将失败。  
![\[在 AWS Secrets Manager 控制台的配置密钥页面上。输入密钥名称并突出显示。\]](http://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/images/secrets_manager_2.png)

1. 将其他所有内容都设置为默认值，然后选择**下一步**。

1. 在**配置自动轮换**下，选择**禁用自动轮换**，然后选择**下一步**。

   存储此密钥后，您可以为其启用轮换。

1. 查看设置，然后选择**存储**以保存更改。Secrets Manager 控制台将返回您账户中的密钥列表，并且列表中现在包含新的密钥。

1. 从列表中选择您新创建的密钥名称，并记下**密钥 ARN** 值。您需要在下一部分中使用该名称。

### 为域服务账户密钥启用轮换
<a name="seamless-linux-prereqs-turn-on-rotation"></a>

我们建议您定期轮换密钥以改善安全状况。

**为域服务账户密钥启用轮换**
+ 按照《*AWS Secrets Manager 用户指南*》中[为 AWS Secrets Manager 密钥设置自动轮换](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotate-secrets_turn-on-for-other.html)中的说明进行操作。

  对于步骤 5，使用《AWS Secrets Manager 用户指南》**中的轮换模板 [Microsoft Active Directory 凭证](https://docs.aws.amazon.com/secretsmanager/latest/userguide/reference_available-rotation-templates.html#template-AD-password)。

  如需帮助，请参阅《*AWS Secrets Manager 用户指南》*中的[AWS Secrets Manager 轮换疑难解答](https://docs.aws.amazon.com/secretsmanager/latest/userguide/troubleshoot_rotation.html)。

### 创建所需 IAM policy 和角色
<a name="seamless-linux-prereqs-create-policy"></a>

使用以下先决条件步骤创建自定义策略，该策略允许对您的 Secrets Manager 无缝域加入密钥（您之前创建的）进行只读访问，并创建新的 Linux EC2 DomainJoin IAM 角色。

#### 创建 Secrets Manager IAM 读取策略
<a name="seamless-linux-prereqs-create-policy-step1"></a>

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

**创建 Secrets Manager IAM 读取策略**

1. 以有权创建 IAM 策略的用户 AWS 管理控制台 身份登录。然后在上打开 IAM 控制台[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的**访问管理**下，选择**策略**。

1. 选择**创建策略**。

1. 选择 **JSON** 选项卡，然后复制以下 JSON 策略文档中的文本。然后将其粘贴到 **JSON** 文本框中。
**注意**  
确保将区域和资源 ARN 替换为您之前创建的密钥的实际区域和资源 ARN。

   ```
   {
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:xxxxxxxxx:secret:aws/directory-services/d-xxxxxxxxx/seamless-domain-join"
               ]
           }
       ]
   }
   ```

1. 完成后，选择**下一步**。策略验证程序将报告任何语法错误。有关更多信息，请参阅[验证 IAM policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_policy-validator.html)。

1. 在**检查策略**页面上，输入一个策略名称，例如 **SM-Secret-Linux-DJ-*d-xxxxxxxxxx*-Read**。查看**摘要**部分，以查看您的策略授予的权限。选择**创建策略**，保存更改。托管策略列表中将显示新策略，并且现在已准备好附加到身份中。

**注意**  
我们建议您为每个密钥创建一个策略。这样做可以确保实例只能访问相应的密钥，并在实例受损时将影响降至最低。

#### 创建 Linux EC2 DomainJoin 角色
<a name="seamless-linux-prereqs-create-policy-step2"></a>

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

**创建 Linux EC2 DomainJoin 角色**

1. 以有权创建 IAM 策略的用户 AWS 管理控制台 身份登录。然后在上打开 IAM 控制台[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)。

1. 在导航窗格中的**访问管理**下，选择**角色**。

1. 在内容窗格中，选择**创建角色**。

1. 在**选择受信任实体的类型**下，选择 **AWS 服务**。

1. 在**使用案例**下，选择 **EC2**，然后选择**下一步**。  
![\[在 IAM 控制台的 “选择可信实体” 页面上。 AWS 服务和 EC2 已选中。\]](http://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/images/iam-console-trusted-entity.png)

1. 对于**筛选策略**，执行以下操作：

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

   1. 输入 **AmazonSSMDirectoryServiceAccess**。然后选择列表中该项目的复选框。

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

   1. 添加了上面列出的三个策略后，选择**创建角色**。
**注意**  
Amazon SSMDirectory ServiceAccess 提供将实例加入由管理的活动目录的权限 Directory Service。Amazon SSMManaged InstanceCore 提供使用该 AWS Systems Manager 服务所需的最低权限。有关创建具有这些权限的角色的更多信息，以及您可以分配给 IAM 角色的其他权限和策略的信息，请参阅《AWS Systems Manager 用户指南》**中的[为 Systems Manager 创建 IAM 实例配置文件](https://docs.aws.amazon.com/systems-manager/latest/userguide/setup-instance-profile.html)。

1. 在**角色名称**字段中，输入新角色的名称，如 **LinuxEC2DomainJoin** 或您喜欢的其他名称。

1. （可选）对于**角色描述**，请输入描述。

1. （可选）在**步骤 3：添加标签**下选择**添加新标签**以添加标签。标签键值对用于组织、跟踪或控制此角色的访问权限。

1. 选择**创建角色**。

## 将 Linux 实例无缝加入 Simple AD Active Directory
<a name="simple_ad_seamless-linux-join-instance"></a>

**无缝加入 Linux 实例**

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

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

1. 在 **EC2 控制面板**的**启动实例**部分，选择**启动实例**。

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

1.  *（可选）*选择**添加其他标签**，添加一个或多个标签键值对，以组织、跟踪或控制此 EC2 实例的访问权限。

1. 在**应用程序和操作系统映像（Amazon 机器映像）**部分中，选择您想要启动的 Linux AMI。
**注意**  
使用的 AMI 必须具有 AWS Systems Manager （SSM 代理）版本 2.3.1644.0 或更高版本。要通过从该 AMI 启动实例来检查 AMI 中已安装的 SSM Agent 版本，请参阅[获取当前安装的 SSM Agent 版本](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-get-version.html)。如果您需要升级 SSM Agent，请参阅[在适用于 Linux 的 EC2 实例上安装和配置 SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-install-ssm-agent.html)。  
SSM 在将 Linux 实例加入 Active Directory 域时使用 `aws:domainJoin` 插件。该插件将 Linux 实例的主机名更改为 EC2 AMAZ-*XXXXXXX* 格式。有关 `aws:domainJoin` 的更多信息，请参阅《AWS Systems Manager 用户指南》**中的 [AWS Systems Manager 命令文档插件参考](https://docs.aws.amazon.com//systems-manager/latest/userguide/documents-command-ssm-plugin-reference.html#aws-domainJoin)。

1. 在**实例类型**部分，从**实例类型**下拉列表中选择要使用的实例类型。

1. 在**密钥对（登录）**部分，您可以选择创建新密钥对，或从现有密钥对中进行选择。要创建新的密钥对，请选择**新建新密钥对**。输入密钥对的名称，然后为**密钥对类型**和**私钥文件格式**选择一个选项。要以可与 OpenSSH 一起使用的格式保存私钥，请选择 **pem**。要以可与 PuTTY 一起使用的格式保存私钥，请选择 **ppk**。选择**创建密钥对**。您的浏览器会自动下载私有密钥文件。将私有密钥文件保存在安全位置。
**重要**  
这是您保存私有密钥文件的唯一机会。

1. 在**启动实例**页面的**网络设置**部分下，选择**编辑**。从 **VPC – *必需***下拉列表中选择创建目录的 **VPC**。

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

   有关如何连接到互联网网关的更多信息，请参阅《Amazon VPC 用户指南》**中的[使用互联网网关连接到互联网](https://docs.aws.amazon.com//vpc/latest/userguide/VPC_Internet_Gateway.html)。

1. 在**自动分配公有 IP** 下，选择**启用**。

   有关公共和私有 IP 寻址的更多信息，请参阅《Amazon EC2 用户指南》**中的 [Amazon EC2 实例 IP 寻址](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/using-instance-addressing.html)。

1. 对于**防火墙（安全组）**设置，您可以使用默认设置或进行更改以满足您的需求。

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

1. 选择**高级详细信息**部分，从**域加入目录**下拉列表中选择您的域。
**注意**  
选择域加入目录后，您可能会看到：  

![\[选择域加入目录时出现错误消息。您现有的 SSM 文档存在错误。\]](http://docs.aws.amazon.com/zh_cn/directoryservice/latest/admin-guide/images/SSM-Error-Message.png)

当 EC2 启动向导识别到某个现有 SSM 文档包含意外属性时，会发生此错误。您可以执行以下操作之一：  
如果您之前编辑了 SSM 文档且属性为预期属性，请选择关闭并继续启动 EC2 实例，不做任何更改。
选择“在此处删除现有 SSM 文档”链接以删除 SSM 文档。这将允许创建包含正确属性的 SSM 文档。启动 EC2 实例时，将自动创建 SSM 文档。

1. 对于 **IAM 实例配置文件**，请选择您之前在先决条件部分**步骤 2：创建 Linux EC2 DomainJoin 角色中创建的 IAM 角色**。

1. 选择**启动实例**。

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