本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Linux EC2 实例无缝地联接到您的Amazon托管的 Microsoft AD 目录
此过程无缝地将 Linux EC2 实例联接到Amazon托管的 Microsoft AD 目录。如果您需要跨多个域执行无缝域加入Amazon账户,您可选择启用账户目录共享.
支持以下 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 和红帽企业 Linux 7 之前的发行版不支持无缝域加入功能。
先决条件
在设置无缝域加入到 Linux EC2 实例之前,您需要完成本节中的步骤。
选择您的无缝域加入服务帐户
你可以将 Linux 计算机无缝连接到Amazon托管的 Active Directory 域。为此,必须使用具有创建计算机帐户权限的用户帐户才能将计算机加入域。虽然成员Amazon委派管理员或者其他组可能拥有足够权限将计算机加入到域,我们建议不要使用这些权限。作为最佳做法,我们建议您使用具有将计算机加入到域所需的最低权限的服务帐户。
要将具有加入计算机所需的最低权限的帐户委派到域,可以运行以下 PowerShell 命令。你必须从加入域的 Windows 计算机上运行这些命令安装 Active Directory 管理工具安装。此外,您必须使用有权修改计算机 OU 或容器上的权限的帐户。PowerShell 命令设置权限,允许服务帐户在域的默认计算机容器中创建计算机对象。
$AccountName = 'awsSeamlessDomain' # DO NOT modify anything below this comment. # Getting Active Directory information. Import-Module 'ActiveDirectory' $Domain = Get-ADDomain -ErrorAction Stop $BaseDn = $Domain.DistinguishedName $ComputersContainer = $Domain.ComputersContainer $SchemaNamingContext = Get-ADRootDSE | Select-Object -ExpandProperty 'schemaNamingContext' [System.GUID]$ServicePrincipalNameGuid = (Get-ADObject -SearchBase $SchemaNamingContext -Filter { lDAPDisplayName -eq 'Computer' } -Properties 'schemaIDGUID').schemaIDGUID # Getting Service account Information. $AccountProperties = Get-ADUser -Identity $AccountName $AccountSid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' $AccountProperties.SID.Value # Getting ACL settings for the Computers container. $ObjectAcl = Get-ACL -Path "AD:\$ComputersContainer" # Setting ACL allowing the service account the ability to create child computer objects in the Computers container. $AddAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'CreateChild', 'Allow', $ServicePrincipalNameGUID, 'All' $ObjectAcl.AddAccessRule($AddAccessRule) Set-ACL -AclObject $ObjectAcl -Path "AD:\$ComputersContainer"
如果您更喜欢使用图形用户界面 (GUI),您可以使用中描述的手动过程。向您的服务账户委派权限.
创建密码以存储域服务帐户
您可以使用Amazon Secrets Manager以存储域服务帐户。
创建密码并存储域服务帐户信息
-
登录到Amazon Web Services Management Console打开Amazon Secrets Manager在控制台https://console.aws.amazon.com/secretsmanager/
. -
选择 Store a new secret (存储新密钥)。
-
在 Store a new secret(存储新密钥)页面上,执行以下操作:
-
在 Select secret type (选择密钥类型) 下,选择 Other type of secrets (其他密钥类型)。
-
UNDER在 secret (指定要存储在密钥中的键-值对) 下中,执行以下操作:
-
在第一个框中,输入
awsSeamlessDomainUsername
. 在同一行上,在下一个框中,输入您的服务帐户的用户名。例如,如果您之前使用 PowerShell 命令,则服务帐户名称将为awsSeamlessDomain
.注意 你必须输入
awsSeamlessDomainUsername
完全如此。确保没有任何前导或结束空格。否则,域加入将失败。 -
选择添加行.
-
在新行上,在第一个框中,输入
awsSeamlessDomainPassword
. 在同一行的下一个框中,输入服务帐号的密码。注意 你必须输入
awsSeamlessDomainPassword
完全如此。确保没有任何前导或结束空格。否则,域加入将失败。 -
UNDER选择加密密钥,选择DefaultenCryptionKey从菜单中。当您选择此选项时,Secret Secrets Manager 始终会对密码进行加密,并免费提供给您。你也可以选择自己创建的密钥。
-
选择 Next (下一步)。
-
-
-
UNDER密钥名称中,使用以下格式输入包含目录 ID 的密钥名称:
aws/directory-services/
d-xxxxxxxxx
/seamless-domain-join这将用于检索应用程序中的秘密。
注意 你必须输入
aws/directory-services/
完全一样但是替换d-xxxxxxxxx
/seamless-domain-joind-xxxxxxxxxxxx
使用目录 ID。确保没有前导空格或结束空格。否则,域加入将失败。 -
将其他所有内容设置为默认值,然后选择下一步.
-
UNDER配置自动轮换,选择禁用自动旋转选择,然后选择下一步.
-
查看设置,然后选择存储保存您的更改。Secrets Manager 控制台将返回您的账户中的密钥列表,并且在列表中现在包含您的新密钥。
-
从列表中选择你新创建的秘密名称,然后记下键 ARN值。您需要在下一节中使用该名称。
创建所需的 IAM 策略和角色
使用以下先决条件步骤创建自定义策略,允许对您的 Secret Secrets Manager 无缝域加入密钥(您之前创建的)进行只读访问,并创建新的 LinuxEC2DomainJoin IAM 角色。
创建秘 Secrets Manager IAM 读取策略
您可以使用 IAM 控制台创建一个策略,授予对 Secret Secrets Manager 钥的只读访问权限。
创建秘 Secrets Manager IAM 读取策略
-
登录到Amazon Web Services Management Console作为有权创建 IAM 策略的用户。然后在以下网址打开 IAM 控制台https://console.aws.amazon.com/iam/
. -
在导航窗格中,选择 Policies (策略)。
-
选择创建策略。
-
选择 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" ] } ] } -
完成后,选择 Review policy(查看策略)。策略验证程序将报告任何语法错误。有关更多信息,请参阅 。验证 IAM 策略.
-
在存储库的审核策略页面中,输入策略名称,例如
SM-Secret-Linux-DJ-
. 查看摘要部分以查看您的策略授予的权限。然后选择 。创建策略保存您的更改。新策略会显示在托管策略列表中,并且现在已准备好附加到身份。d-xxxxxxxxxx
-Read
我们建议您为每个密码创建一个策略。这样做可以确保实例只能访问适当的机密,并最大限度地减少实例受到攻击时的影响。
创建 linuxEC2DOMAIN 加入角色
您可以使用 IAM 控制台创建用于域加入 Linux EC2 实例的角色。
创建 linuxEC2DomainJoin 角色
-
登录到Amazon Web Services Management Console作为有权创建 IAM 策略的用户。然后在以下网址打开 IAM 控制台https://console.aws.amazon.com/iam/
. -
在导航窗格中,选择 Roles(角色)。
-
在内容窗格中,选择创建角色.
-
在 Select type of trusted entity (选择受信任实体的类型)下,选择 Amazon service (Amazon 服务)。
-
UNDER选择使用案例选择EC2选择,然后选择后续:Permissions (下一步:权限)。
-
适用于筛选策略中,执行以下操作:
-
输入
AmazonSSMManagedInstanceCore
。然后,在列表中选中该项目的复选框。 -
输入
AmazonSSMDirectoryServiceAccess
。然后,在列表中选中该项目的复选框。 -
Enter
SM-Secret-Linux-DJ-
(或者您在上一过程中创建的策略名称)。然后在列表中选中该项目的复选框。d-xxxxxxxxxx
-Read
注意 AmazonSSMDirectoryServiceAccess 提供了将实例加入由托管的 Active Directory 的权限。Amazon Directory Service. AmazonSSMManagedInstanceCore 提供了使用Amazon Systems Manager服务。有关使用这些权限创建角色的更多信息,以及有关可分配给 IAM 角色的其他权限和策略的信息,请参阅为 Systems Manager 创建 IAM 实例配置文件中的Amazon Systems Manager用户指南.
-
-
选择 Next:。标签。
-
(可选)添加一个或多个标签键/值对以组织、跟踪或控制该角色的访问。接下来,选择 Next (下一步):审核。
-
在旁边Role name (角色名称),为新角色输入名称,例如
LinuxEC2DomainJoin
或者你喜欢的另一个名字。 -
(可选)对于角色描述,请输入描述。
-
选择 Create role(创建角色)。
无缝地加入 Linux EC2 实例
现在您已经配置了所有必备任务,可以使用以下过程无缝加入 Linux EC2 实例。
无缝地加入 Linux EC2 实例
-
登录到 Amazon Web Services Management Console,然后通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
从导航栏的区域选择器中,选择与现有目录相同的区域。
-
选择 Launch Instance(启动实例)。
-
在存储库的步骤 1选择页面,选择Select获取合适的 Amazon 系统映像 (AMI)。
注意 使用的 AMI 必须有Amazon Systems Manager(SSM 代理)版本 2.161644.0 或更高版本。要通过从该 AMI 启动实例来检查 AMI 中已安装的 SSM Agent 版本,请参阅获取当前安装的 SSM Agent 版本. 如果你需要升级 SSM 代理程序,请参阅在适用于 Linux 的 EC2 实例上安装和配置 SSM Agent.
-
在存储库的步骤 2页面上,选择合适的实例类型,然后选择后续:配置实例详细信息.
-
在存储库的步骤 3页面上,执行以下操作,然后选择:后续:Add Storage (下一步: 添加存储):
-
对于 Network,选择在其中创建了您的目录的 VPC。
-
适用于子网,在 VPC 中选择一个公有子网。选择的子网必须将所有外部流量都路由到 Internet 网关。否则将无法远程连接到实例。
-
对于 Auto-assign Public IP (自动分配公有 IP),选择 Enable (启用)。有关公有 IP 地址的更多信息,请参阅。Amazon EC2 实例 IP 寻址中的适用于 Windows 实例的 Amazon EC2 用户指南.
-
适用于域加入目录中,从列表中选择您的域。
-
适用于IAM 角色(以上) 选择您之前在先决条件部分创建的 IAM 角色步骤 2: 创建 linuxEC2DOMAIN 加入角色.
-
-
在两个上步骤 4和步骤 5页面,保留默认设置或根据需要进行更改。然后选择 。下一步在每个上。
-
在存储库的步骤 6页面上,选择已配置为允许从您的网络远程访问实例的安全组。然后选择查看和启动。
-
在存储库的步骤 7选择页面,选择启动,选择 key pair,然后选择启动实例.
如果您使用 SUSE Linux 执行无缝域加入,则需要重新启动才能进行身份验证。要从 Linux 终端重新启动 SUSE,请键入sudo reboot.