將 Amazon EC2 Linux 執行個體無縫加入您的 AWS 管理 Microsoft AD 活動目錄 - AWS Directory Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Amazon EC2 Linux 執行個體無縫加入您的 AWS 管理 Microsoft AD 活動目錄

此程序將 Amazon EC2 Linux 執行個體無縫連接到您的 AWS 管理 Microsoft AD 活動目錄。如果您需要跨多個執行無縫網域加入 AWS 帳戶,您可以選擇性地選擇啟用目錄共用。

系統支援下列 Linux 執行個體分佈和版本:

  • AMIAmazon

  • Amazon Linux 2 (64 位元 x86)

  • 紅帽企業版 8 HVM (64 位元 x86)

  • Ubuntu 伺服器 18.04 LTS & Ubuntu 伺服器 16.04 LTS

  • CentOS 7 x86-64

  • SUSE企業服務器 SP1

注意

Ubuntu 14 和 Red Hat Enterprise Linux 7 之前的發行版不支援無縫域加入功能。

如需將 Linux 執行個體無縫加入您的執行個體的程序示範 AWS 管理 Microsoft AD 活動目錄,請參閱下面的 YouTube 視頻。

必要條件

您必須先完成本節中的程序,才能設定無縫網域加入 Linux 執行個體。

選取無縫域加入服務帳戶

您可以順暢地將 Linux 電腦加入您的 AWS 管理 Microsoft AD 活動目錄域。為此,您必須使用一個具有建立電腦帳戶許可的使用者帳戶,才能將機器加入域。雖然成員 AWS 委派的系統管理員或其他群組可能有足夠的權限將電腦加入網域,我們不建議您使用這些權限。我們建議您使用具有將電腦加入域所需的最低權限的服務帳戶,這才是最佳做法。

若要將電腦加入網域所需的最低權限委派帳戶,您可以執行下列 PowerShell 命令。您必須從已加入域並安裝了 安裝適用於 AWS 受管理 Microsoft AD 的活動目錄管理工具 的 Windows 電腦執行這些命令。此外,您必須使用有權修改電腦 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),您可以使用中所述的手動程序委派權限給您的服務帳戶

建立儲存域服務帳戶的機密

您可以使用... AWS Secrets Manager 儲存網域服務帳戶。

建立機密並儲存域服務帳戶資訊
  1. 登入 AWS Management Console 並打開 AWS Secrets Manager 控制台在https://console.aws.amazon.com/secretsmanager/

  2. 選擇 Store a new secret (存放新機密)。

  3. Store a new secret (儲存新機密) 頁面中,執行下列動作:

    1. 在「秘密類型」下,選擇「其他類型的機密」。

    2. 在「鍵/值配對」下,執行下列操作:

      1. 在第一個方塊中,輸入 awsSeamlessDomainUsername。在同一列的下一個方塊中,輸入服務帳戶的使用者名稱。例如,如果您之前使用了該 PowerShell 命令,則服務帳戶名稱將是awsSeamlessDomain

        注意

        您必須輸入完全正確的 awsSeamlessDomainUsername。確認頭尾沒有任何空格。否則域加入將會失敗。

        在 AWS Secrets Manager [選擇密碼類型] 頁面上的主控台。其他類型的密碼是在「秘密類型」下選取awsSeamlessDomainUsername的,並輸入為金鑰值。
      2. 選擇新增列

      3. 在新的一列的第一個方塊中,輸入 awsSeamlessDomainPassword。在同一列的下一個方塊中,輸入服務帳戶的密碼。

        注意

        您必須輸入完全正確的 awsSeamlessDomainPassword。確認頭尾沒有任何空格。否則域加入將會失敗。

      4. 在 [加密金鑰] 底下,保留預設值aws/secretsmanager。 AWS Secrets Manager 當您選擇此選項時,一律會加密密碼。您也可以選擇您建立的金鑰。

        注意

        有相關費用 AWS Secrets Manager,取決於您使用的秘密。如需目前完整的定價清單,請參閱 AWS Secrets Manager 定價

        您可以使用 AWS 秘密管理器創建的託管密鑰aws/secretsmanager,以免費加密您的密鑰。如果您創建自己的密KMS鑰來加密密鑰, AWS 向您收取當前費用 AWS KMS 率。如需詳細資訊,請參閱 AWS Key Management Service 定價。

      5. 選擇 Next (下一步)

  4. 密碼名稱下,輸入密碼名稱,其中包含使用下列格式的目錄 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 設定密碼頁面上的主控台。密碼名稱隨即輸入並反白顯示。
  5. 將其他所有設定保留為預設值,然後選擇下一步

  6. 針對設定自動輪換,選擇停用自動輪換,然後選擇下一步

    您可以在儲存此機密後開啟此機密的旋轉功能。

  7. 檢查設定,然後選擇儲存以儲存變更。Secrets Manager 主控台會傳回帳戶中的秘密清單,清單中包含現在的新秘密。

  8. 從清單中選擇您新建立的密碼名稱,並記下「機」ARN 值。您會在下一節中用到它。

開啟網域服務帳戶密碼的輪換

我們建議您定期輪換密碼,以改善您的安全狀態。

開啟網域服務帳戶密碼的輪換

建立必要的IAM原則和角色

使用下列先決條件步驟來建立自訂原則,允許 Secrets Manager 無縫網域加入密碼的唯讀存取權 (您先前建立),以及建立新的 Linux EC2DomainJoin IAM 角色。

建立 Secrets Manager IAM 讀取原則

您可以使用IAM主控台建立原則,以授與 Secret Manager 密碼的唯讀存取權。

建立 Secrets Manager IAM 讀取原則
  1. 登入 AWS Management Console 以具有建立IAM策略之權限的使用者身分。然後開啟主IAM控台,位於https://console.aws.amazon.com/iam/

  2. 在功能窗格的 [存取管理] 中,選擇 [原則]。

  3. 選擇 建立政策

  4. 選擇索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" ] } ] }
  5. 完成時,選擇 Next (下一步)。政策驗證程式會回報任何語法錯誤。如需詳細資訊,請參閱驗證IAM原則

  6. 檢閱政策頁面上,輸入政策的名稱,例如 SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read。檢閱摘要區段來查看您的政策所授予的許可。然後選擇建立政策來儲存變更。新的政策會出現在受管政策清單中,並且已準備好連接至身分。

注意

我們建議您為每個機密建立一個政策。這樣做可以確保執行個體只能存取適當的機密,並在執行個體受到入侵時將影響降至最低。

建立 Linux EC2DomainJoin 角色

您可以使用IAM主控台建立將用於加入 Linux EC2 執行個體網域的角色。

若要建立 Linux EC2DomainJoin 角色
  1. 登入 AWS Management Console 以具有建立IAM策略之權限的使用者身分。然後開啟主IAM控台,位於https://console.aws.amazon.com/iam/

  2. 在功能窗格的 [存取管理] 下,選擇 [角色]。

  3. 在內容窗格中,選擇建立角色

  4. [選取信任實體的類型] 下,選擇 AWS 服務

  5. 在 [使用案例] 下,選擇 EC2,然後選擇 [下步]。

    在 [選取受信任的實體] 頁面的IAM主控台中。 AWS 服務和EC2選擇。
  6. 對於篩選政策,請執行下列操作:

    1. 輸入 AmazonSSMManagedInstanceCore。然後選取清單中相應項目的核取方塊。

    2. 輸入 AmazonSSMDirectoryServiceAccess。然後選取清單中相應項目的核取方塊。

    3. 輸入 SM-Secret-Linux-DJ-d-xxxxxxxxxx-Read 或您在上一個程序中建立的 IAM 政策名稱。然後選取清單中相應項目的核取方塊。

    4. 新增上面列出的三個策略之後,選取 [建立角色]。

    注意

    A mazonSSMDirectory ServiceAccess 提供將執行個體加入至 Active Directory 由管理 AWS Directory Service。 A mazonSSMManaged InstanceCore 提供了使用 AWS Systems Manager 服務。IAM如需有關使用這些權限建立角色的詳細資訊,以及可指派給IAM角色的其他權限和原則的詳細資 Systems Manager,請參閱:AWS Systems Manager 使用者指南

  7. 輸入新角色的名稱,例如LinuxEC2DomainJoin,在「角色名稱」欄位中輸入您偏好的名稱

  8. (選用) 針對 Role description (角色描述),輸入描述。

  9. (選擇性) 在「步驟 3:新增標籤」下方選擇「新增標籤」以新增標籤。標籤鍵值配對用於組織、追蹤或控制此角色的存取。

  10. 選擇建立角色

無縫加入您的 Linux 執行個體

無縫加入您的 Linux 執行個體
  1. 登入 AWS Management Console 並在打開 Amazon EC2 控制台https://console.aws.amazon.com/ec2/

  2. 從導航欄中的「區域」選擇器中,選擇相同的 AWS 區域 作為現有目錄。

  3. EC2儀表板的 [啟動執行個體] 區段中,選擇 [啟動執行個體]。

  4. 在 [啟動執行個體] 頁面的 [名稱和標籤] 區段下,輸入您想要用於 Linux EC2 執行個體的名稱。

  5. (選擇性) 選擇「新增其他標籤」以新增一或多個標籤索引鍵值配對,以組織、追蹤或控制此EC2執行個體的存取權。

  6. 在「應用程式和作業系統映像 (Amazon 機器映像)」區段中,選擇AMI您要啟動的 Linux。

    注意

    AMI使用的必須具有 AWS Systems Manager (SSM代理程式) 版本 2.3.1644.0 或更高版本。若要AMI透過從中啟動執行個體來檢查已安裝的 SSM Agent 版本AMI,請參閱取得目前安裝的 SSM Agent 版本。如果您需要升級SSM代理程式,請參閱在 Linux EC2 執行個體上安裝和設定SSM代理程式

    SSM將 aws:domainJoin Linux 執行個體加入至 Active Directory 網域。該插件將 Linux 實例的主機名更改為格式 EC2AMAZ-XXXXXXX如需 aws:domainJoin 的詳細資訊,請參閱 。AWS Systems Manager 指令文件外掛程式參考 AWS Systems Manager 使用者指南

  7. 執行個體類型區段中,從執行個體類型下拉式清單中選擇您要使用的執行個體類型。

  8. 金鑰對 (登入) 區段中,您可以選擇建立新金鑰對或從現有金鑰對中進行選擇。若要建立新的金鑰對,請選擇建立新金鑰對。輸入金鑰對的名稱,然後選取金鑰對類型私有金鑰檔案格式的選項。若要以可與「開啟」搭配使用的格式儲存私密金鑰SSH,請選擇 .pe m。若要以可與 Pu 搭配使用的格式儲存私密金鑰TTY,請選擇 .pp k。選擇建立金鑰對。您的瀏覽器會自動下載私有金鑰檔案。將私有金鑰檔案存放在安全的地方。

    重要

    這是您儲存私有金鑰檔案的唯一機會。

  9. 啟動執行個體頁面上的網路設定區段下,選擇編輯。從「VPC-VPC要」下拉列表中選擇創建目錄的目錄。

  10. VPC從子網下拉式清單中選擇您的其中一個公用子網路。您所選取的子網路必須將所有外部流量路由到網際網路閘道。如果沒有,則將無法從遠端連線到執行個體。

    有關如何 Connect 到網際網路閘道的詳細資訊,請參閱 Amazon 使用VPC者指南中的使用網際網路閘道連接到網際網路。

  11. 自動指派公有 IP 下,選擇啟用

    如需有關公有和私有 IP 定址的詳細資訊,請參閱 Amazon EC2使用者指南中的 Amazon EC2 執行個體 IP 定址

  12. 對於防火牆 (安全群組)設定,您可以使用預設設定或根據需要進行變更。

  13. 對於設定儲存設定,您可以使用預設設定或根據需要進行變更。

  14. 選取進階詳細資訊區段,從域加入目錄下拉式清單中選取域。

    注意

    選擇網域加入目錄後,您可能會看到:

    選取網域加入目錄時出現錯誤訊息。您現有的SSM文件發生錯誤。

    如果EC2啟動精靈識別具有未預期屬性的現有SSM文件,就會發生此錯誤。您可以執行下列任一作業:

    • 如果您之前已編輯過SSM文件且預期會有屬性,請選擇「關閉」(close) 並繼續啟動EC2實例,而不會變更。

    • 選取「在此刪除現有SSM文件」連結以刪除SSM文件。這將允許創建具有正確屬性的SSM文檔。當您啟動執行個體時,會自動建立SSM文EC2件。

  15. 對於IAM執行個體設定檔,請在必要條件一節中選擇您先前建立的IAM角色步驟 2:建立 Linux EC2DomainJoin 角色

  16. 選擇啟動執行個體

注意

如果您使用 SUSE Linux 執行無縫網域加入,則需要重新開機,才能進行驗證。若要SUSE從 Linux 終端機重新開機,請輸入 sudo 重新開機