將 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 中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章