点击围观!腾讯 TAPD 助力金融行业研发提效、敏捷转型最佳实践! 了解详情
写点什么

将 Linux 实例无缝加入适用于 Microsoft Active Directory 的 AWS Directory Service 中

  • 2020-09-10
  • 本文字数:2660 字

    阅读完需:约 9 分钟

将 Linux 实例无缝加入适用于 Microsoft Active Directory 的 AWS Directory Service 中

我接触过的很多客户都使用 Active Directory 来管理各种应用程序和服务的集中式用户身份验证和授权。对于这些客户来说,Active Directory 是他们 IT 拼图的关键部分。


在 AWS,我们提供适用于 Microsoft Active Directory 的 AWS Directory Service,为我们的客户提供构建于实际 Microsoft Active Directory 之上的高度可用的弹性 Active Directory 服务。AWS 管理运行 Active Directory 所需的基础设施,并处理所需的所有补丁和软件更新。它是完全托管型服务,因此,在域控制器故障之类的情况下,我们的监控将自动检测并替换故障的控制器。


手动连接计算机与 Active Directory 是一项费力不讨好的任务;您必须连接到计算机,进行一系列手动更改,然后执行重新启动。虽然这些都没有特别具有挑战性,但它确实需要时间,如果您希望注册多台计算机,则这项任务很快就会耗费大量时间。


今天,团队正在推出一项新功能,该功能将使 Linux EC2 实例在启动时无缝连接到适用于 Microsoft Active Directory 的 AWS Directory Service。此功能补充了可使 Windows EC2 实例在启动时无缝加入域的现有功能。此功能将使客户能够更快地移动并改善管理员的体验。


现在,您可以将您的 Windows 和 Linux EC2 实例同时无缝连接到适用于 Microsoft Active Directory 的 AWS Directory Service。该目录可以在您自己的账户中,或者可以从另一个账户与您共享,但唯一需要注意的是,实例和目录必须在同一个区域内。


要显示过程的工作原理,我们来了解一个现有的适用于 Microsoft Active Directory 的 AWS Directory Service,并逐步完成使 Linux EC2 实例无缝加入该目录所需的步骤。

创建和存储 AD 凭证

要将 Linux 计算机无缝加入我的 AWS Managed Active Directory 域,我需要一个有权将实例加入域的账户。尽管 AWS 代理管理员的成员拥有将计算机加入域的足够权限,但我创建了一个拥有所需最低权限的服务账户。我们的文档对如何创建这种服务账户进行了说明。


无缝加入域的功能需要了解我的活动目录服务账户的凭证。为实现这一目标,我需要使用 AWS Secrets Manager 与指定名称的密钥来创建密钥,无缝域功能将使用它来将实例加入目录中。


AWS Secrets Manager 控制台中,单击 Store a new secret (存储新密钥)按钮,在下一个屏幕上,在被要求选择密钥类型时,选择名为 Other type of secrets (其他密钥类型)的选项。我现在可以添加两个密钥/值。第一个称为 awsSeamlessDomainUsername ,在值文本框中,我会输入 Active Directory 服务账户的用户名。第二个密钥称为 awsSeamlessDomainPassword ,我会在此输入我的服务账户密码。



由于这是演示,我选择将 DefaultEncryptionKey 用作密钥,但您可以决定使用自己的密钥。



点击下一步后,系统要求我给密钥指定名称。我添加了以下名称,将 d-xxxxxxxxx 替换为我的目录 ID。


Html


aws/directory-services/d-xxxxxxxxx/seamless-domain-join
复制代码


如果您输入此名称错误或者在句前或句尾输入了空格,域加入将会失败。



我记下了 密钥 ARN ,因为我在创建 IAM 策略时将会需要它。


创建所需的 IAM 策略和角色

现在,我需要创建一个 IAM 策略,以授予读取我的 seamless-domain-join 密钥的权限。


我登录 IAM 控制台并选择 Policies (策略)。在内容窗格中,我选择 Create policy (创建策略)。我切换到 JSON 选项卡并从以下 JSON 策略文档中复制文本,从而将 Secrets Manager ARN 替换为我之前记下的那个。


Json


{    "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(审查)页面上,我将策略命名为 SeamlessDomainJoin-Secret-Readonly ,然后选择 Create policy (创建策略)以保存我的工作。


现在,我需要创建一个将使用此策略的 IAM 角色(以及其他几个角色)。在 IAM 控制台中,我选择 Roles (角色),然后在内容窗格中选择 Create role (创建角色)。在 Select type of trusted entity (选择受信任实体的类型)下,我选择 AWS 服务 ,然后选择 EC2 作为使用案例并单击 Next:Permissions (下一步:权限)。



我将以下策略附加到我的角色中: AmazonSSMManagedInstanceCoreAmazonSSMDirectoryServiceAccessSeamlessDomainJoin-Secret-Readonly


我单击要求提供 Role name (角色名称)的 Review(审查)屏幕,调用角色 EC2DomainJoin ,但您可以调用您喜欢的任何角色。然后,我通过按下屏幕右下角的按钮来创建角色。


创建 Amazon 系统映像

当我稍后启动 Linux 实例时,我需要选择一个 Linux Amazon 系统映像 (AMI) 作为模板。当前,默认的 Linux AMI 不包含这个新的无缝域功能所需的 AWS Systems Manager 代理(SSM 代理)版本。因此,我将不得不使用更新的 SSM 代理创建 AMI。为此,我首先在我的账户中创建一个新的 Linux 实例,然后使用 SSH 客户端连接到该实例。然后,我遵照文档说明将 SSM 代理更新到 2.3.1644.0 或更新版本。一旦实例完成更新,我就可以使用下列文档根据此实例创建一个新的 AMI。


现在,我有了一个新 AMI,我可以在下一步中使用它。将来,基础 AMI 将更新为使用较新的 SSM 代理,我们可以跳过此部分。如果您有兴趣了解实例使用的是哪个版本的 SSM 代理,本文档将向您解释如何检查。

无缝加入

首先,我需要创建一个 Linux 实例,因此,我前往 EC2 控制台并选择 Launch Instance (启动实例)。



接下来,我选择 Linux Amazon 系统映像 (AMI)。我选择之前创建的 AMI。



配置实例时,我很谨慎地选择包含我的目录的 Amazon Virtual Private Cloud。使用标记为 Domain join directory (域加入目录)的下拉列表,我能够选择希望此实例加入的目录。


在 IAM 角色中,我选择之前创建的 EC2DomainJoin 角色。



当我启动此实例时,它将无缝加入我的目录中。实例上线后,我可以使用适用于 Microsoft Active Directory 的 AWS Directory Service 的管理员凭证对实例进行 SSH 连接,以确认一切是否正常工作。


这项新功能从今天开始推出,我们期待获得您对此新功能的反馈。


愉快加入


— Martin


本文转载自亚马逊 AWS 官方博客。


原文链接


将 Linux 实例无缝加入适用于 Microsoft Active Directory 的 AWS Directory Service 中


2020-09-10 10:001297

评论

发布
暂无评论
发现更多内容

张家口赛区全力推进,数字人民币备战冬奥场景全覆盖

CECBC

云图说|初识ModelArts开发者生态社区——AI Gallery

华为云开发者联盟

华为云 AI Gallery 云图说 ModelArts 开发者生态社区

技术分享| anyRTC服务单端口设计

anyRTC开发者

音视频 WebRTC RTMP 视频直播 服务单端口

Kafka版本概览

Kafka中文社区

🍃【Spring实战系列】「Web请求读取系列」如何构建一个可重复读取的Request的流机制

洛神灬殇

spring 12月日更 HttpRequestWrapper 请求处理

面对复杂微服务系统观测时,如何化繁为简?

尔达Erda

云计算 程序员 云原生 程序员微服务

The Data Way Vol.8|离开了代码,还能被称为工程师吗?

SphereEx

开源 ShardingSphere SphereEx OpenSEC 工程师文化

OceanBase 联合山东移动斩获殊荣:入选2021年信息技术应用创新安全优秀解决方案

OceanBase 数据库

信息安全 工信部 oceanbase 获奖 山东移动

区块链的价值和未来趋势

CECBC

需求蔓延,常见但不正常,教你如何破

华为云开发者联盟

敏捷 需求

区块链助力物流与供应链数字化

CECBC

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

全链路在线生产数据库压测利器:Apache ShardingSphere 影子库特性升级

SphereEx

开源 技术分享 ShardingSphere SphereEx 影子库

滴滴Logi-KafkaManager

Kafka中文社区

Kafk

大数据开发之Hbase面试题

@零度

大数据 HBase

Linux之less命令

入门小站

Linux

实践DDD的一种思路

安然

DDD CQRS

Spring核心原理分析之MVC九大组件(1)

Tom弹架构

Java spring 源码

我的记忆心法拆解一

将军-技术演讲力教练

在线toml转JSON工具

入门小站

工具

遇到或问过的一些Spring面试题(持续更新)

Lazy

Java spring

Java 开发之Linux 命令知识的积累

@零度

Java linux命令

边缘AI研发落地生态挑战调研报告

华为云开发者联盟

机器学习 AI 边缘

数字人民币成功落地需破解三大难点

CECBC

可视化开发主流开源流程引擎与设计器研究对比

全象云低代码

低代码 流程 低代码开发 低代码平台 可视化软件

Linux云计算这样学习效率更快,手把手带你实操结构化命令Case和for、while循环

学神来啦

Linux Shell linux运维 linux云计算 循环

黑客实验环境的搭建与使用

喀拉峻

黑客 网络安全 环境配置 网络攻防 环境搭建

前端开发之Nginx单页加载优化

@零度

nginx 前端开发

语音信号处理5:语音信号的感知

轻口味

28天写作 12月日更

如何以区块链技术为核心,渗透工业领域、支撑工业绿色发展

CECBC

将 Linux 实例无缝加入适用于 Microsoft Active Directory 的 AWS Directory Service 中_编程语言_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章