設定適用於 AD 的 AWS Private CA 連接器 - AWS Directory Service

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

設定適用於 AD 的 AWS Private CA 連接器

您可以將帶有 AWS Private Certificate Authority (CA) 自我管理的 Active Directory (AD) 與 AD Connector 整合,以便為加入 AD 域的使用者、群組和電腦頒發和管理憑證。AWS Private CA適用於 AD 的連接器可讓您使用全受管的 AWS Private CA 直接取代自我管理企業 CA,而無需部署、修補或更新本機代理程式或代理伺服器。

您可以透過 Directory Service 主控台、適用於 AD 的 AWS Private CA 連接器主控台或呼叫 CreateTemplate API 設定 AWS Private CA 與目錄的整合。若要透過使用中目錄的AWS Private CA連接器主控台設定私人 CA 整合,請參閱作用中目錄的AWS Private CA連接器。請參閱下文,了解從 AWS Directory Service 主控台設定此整合的步驟。

先決條件

使用 AD Connector 時,您需要向服務帳戶委派額外的許可。在服務帳戶上設定存取控制清單 (ACL),以便您能夠執行下列操作。

  • 新增和移除自身的服務主體名稱 (SPN)。

  • 在以下容器中建立並更新憑證授權機構:

    #containers CN=Public Key Services,CN=Services,CN=Configuration CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration
  • 創建和更新 NT AuthCertificates 證書授權單位對象,如下面的例子。如果 NT AuthCertificates 憑證授權單位物件存在,您必須委派它的權限。如果該物件不存在,您必須委派在公有金鑰服務容器上建立子物件的能力。

    #objects CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration
注意

如果您使用 AWS Managed Microsoft AD,當您授予適用於 AD 的 AWS Private CA 連接器服務目錄權限時,將自動委派額外的這些許可。

您可以使用下列 PowerShell 指令碼委派其他權限,並建立 NT AuthCertifiates 憑證授權單位物件。將 "myconnectoraccount" 替換為服務帳戶名稱。

$AccountName = 'myconnectoraccount' # DO NOT modify anything below this comment. # Getting Active Directory information. Import-Module -Name 'ActiveDirectory' $RootDSE = Get-ADRootDSE # Getting AD Connector service account Information $AccountProperties = Get-ADUser -Identity $AccountName $AccountSid = New-Object -TypeName 'System.Security.Principal.SecurityIdentifier' $AccountProperties.SID.Value [System.GUID]$ServicePrincipalNameGuid = (Get-ADObject -SearchBase $RootDse.SchemaNamingContext -Filter { lDAPDisplayName -eq 'servicePrincipalName' } -Properties 'schemaIDGUID').schemaIDGUID $AccountAclPath = $AccountProperties.DistinguishedName # Getting ACL settings for AD Connector service account. $AccountAcl = Get-ACL -Path "AD:\$AccountAclPath" # Setting ACL allowing the AD Connector service account the ability to add and remove a Service Principal Name (SPN) to itself $AccountAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'WriteProperty', 'Allow', $ServicePrincipalNameGuid, 'None' $AccountAcl.AddAccessRule($AccountAccessRule) Set-ACL -AclObject $AccountAcl -Path "AD:\$AccountAclPath" # Add ACLs allowing AD Connector service account the ability to create certification authorities [System.GUID]$CertificationAuthorityGuid = (Get-ADObject -SearchBase $RootDse.SchemaNamingContext -Filter { lDAPDisplayName -eq 'certificationAuthority' } -Properties 'schemaIDGUID').schemaIDGUID $CAAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'ReadProperty,WriteProperty,CreateChild,DeleteChild', 'Allow', $CertificationAuthorityGuid, 'None' $PKSDN = "CN=Public Key Services,CN=Services,CN=Configuration,$($RootDSE.rootDomainNamingContext)" $PKSACL = Get-ACL -Path "AD:\$PKSDN" $PKSACL.AddAccessRule($CAAccessRule) Set-ACL -AclObject $PKSACL -Path "AD:\$PKSDN" $AIADN = "CN=AIA,CN=Public Key Services,CN=Services,CN=Configuration,$($RootDSE.rootDomainNamingContext)" $AIAACL = Get-ACL -Path "AD:\$AIADN" $AIAACL.AddAccessRule($CAAccessRule) Set-ACL -AclObject $AIAACL -Path "AD:\$AIADN" $CertificationAuthoritiesDN = "CN=Certification Authorities,CN=Public Key Services,CN=Services,CN=Configuration,$($RootDSE.rootDomainNamingContext)" $CertificationAuthoritiesACL = Get-ACL -Path "AD:\$CertificationAuthoritiesDN" $CertificationAuthoritiesACL.AddAccessRule($CAAccessRule) Set-ACL -AclObject $CertificationAuthoritiesACL -Path "AD:\$CertificationAuthoritiesDN" $NTAuthCertificatesDN = "CN=NTAuthCertificates,CN=Public Key Services,CN=Services,CN=Configuration,$($RootDSE.rootDomainNamingContext)" If (-Not (Test-Path -Path "AD:\$NTAuthCertificatesDN")) { New-ADObject -Name 'NTAuthCertificates' -Type 'certificationAuthority' -OtherAttributes @{certificateRevocationList=[byte[]]'00';authorityRevocationList=[byte[]]'00';cACertificate=[byte[]]'00'} -Path "CN=Public Key Services,CN=Services,CN=Configuration,$($RootDSE.rootDomainNamingContext)" } $NTAuthCertificatesACL = Get-ACL -Path "AD:\$NTAuthCertificatesDN" $NullGuid = [System.GUID]'00000000-0000-0000-0000-000000000000' $NTAuthAccessRule = New-Object -TypeName 'System.DirectoryServices.ActiveDirectoryAccessRule' $AccountSid, 'ReadProperty,WriteProperty', 'Allow', $NullGuid, 'None' $NTAuthCertificatesACL.AddAccessRule($NTAuthAccessRule) Set-ACL -AclObject $NTAuthCertificatesACL -Path "AD:\$NTAuthCertificatesDN"

設定適用於 AD 的 AWS Private CA 連接器

  1. 登入 AWS Management Console 並於 AWS Directory Service 開啟 https://console.aws.amazon.com/directoryservicev2/ 主控台。

  2. Directories (目錄) 頁面中,選擇目錄 ID。

  3. 網路與安全性索引標籤中的適用於 AD 的 AWS Private CA 連接器下,選擇設定適用於 AD 的 AWS Private CA 連接器為 Active Directory 建立私有 CA 憑證頁面將會出現。請依照主控台上的步驟建立適用於 Active Directory 的私有 CA 連接器,以透過私有 CA 註冊。如需詳細資訊,請參閱建立連接器

  4. 建立連接器後,請按照以下步驟檢視詳細資訊,包括連接器的狀態和關聯的私有 CA 的狀態。

檢視適用於 AD 的 AWS Private CA 連接器

  1. 登入 AWS Management Console 並於 AWS Directory Service 開啟 https://console.aws.amazon.com/directoryservicev2/ 主控台。

  2. Directories (目錄) 頁面中,選擇目錄 ID。

  3. 網路與安全性中的適用於 AD 的 AWS Private CA 連接器下,您可以檢視私有 CA 連接器和關聯的私有 CA。依預設,您會看到下列欄位:

    1. AWS Private CA 連接器 ID – AWS Private CA 連接器的唯一識別符。按一下它會進入相應 AWS Private CA 連接器的詳細資訊頁面。

    2. AWS Private CA 主體 – 有關 CA 辨別名稱的資訊。按一下它會進入相應 AWS Private CA 的詳細資訊頁面。

    3. 狀態 – 顯示的資訊基於對 AWS Private CA 連接器和 AWS Private CA 的狀態檢查。如果兩項檢查均透過,則會顯示作用中。如果其中一項檢查失敗,則會顯示 1/2 檢查失敗。如果兩項檢查均失敗,則會顯示失敗。如需失敗狀態的更多資訊,請將滑鼠懸停在超連結上以了解哪個檢查失敗。然後按照主控台中的說明進行修復。

    4. 建立日期 – 建立 AWS Private CA 連接器的日期。

如需詳細資訊,請參閱檢視連接器詳細資訊