

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

# 使用 AWS Private CA 和 AWS RAM 簡化私有憑證管理
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram"></a>

*Everett Hinckley 和 Vivek Goyal，Amazon Web Services*

## 總結
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-summary"></a>

您可以使用 AWS Private Certificate Authority (AWS Private CA) 發行私有憑證，以驗證內部資源和簽署電腦程式碼。此模式提供 AWS CloudFormation 範本，可快速部署多層 CA 階層和一致的佈建體驗。或者，您可以使用 AWS Resource Access Manager (AWS RAM) 在 AWS Organizations 中的組織或組織單位 (OUs) 內安全地共用 CA，並在使用 AWS RAM 管理許可時集中 CA。每個帳戶中不需要私有 CA，因此這種方法可以節省您的成本。此外，您可以使用 Amazon Simple Storage Service (Amazon S3) 來存放憑證撤銷清單 (CRL) 和存取日誌。

此實作提供下列功能和優點：
+ 使用 AWS Private CA 集中並簡化私有 CA 階層的管理。
+ 將憑證和金鑰匯出至 AWS 和內部部署上的客戶受管裝置。
+ 使用 AWS CloudFormation 範本以獲得快速部署和一致的佈建體驗。
+ 建立私有根 CA 以及 1、2、3 或 4 個次級 CA 階層。
+ 或者， 使用 AWS RAM 與組織或 OU 層級的其他帳戶共用終端實體次級 CA。
+ 使用 AWS RAM 移除每個帳戶中私有 CA 的需求，以節省成本。
+ 建立 CRL 的選用 S3 儲存貯體。
+ 為 CRL 存取日誌建立選用的 S3 儲存貯體。

## 先決條件和限制
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-prereqs"></a>

**先決條件**

如果您想要在 AWS Organizations 結構中共用 CA，請識別或設定下列項目：
+ 用於建立 CA 階層和共用的安全帳戶。
+ 用於測試的個別 OU 或帳戶。
+ 在 AWS Organizations 管理帳戶中啟用共用。如需詳細資訊，請參閱 [ AWS RAM 文件中的在 AWS Organizations 中啟用資源共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs)。

**限制**
+ CAs是區域資源。所有 CAs都位於單一 AWS 帳戶和單一 AWS 區域。
+ 不支援使用者產生的憑證和金鑰。針對此使用案例，我們建議您自訂此解決方案以使用外部根 CA。 
+ 不支援公有 CRL 儲存貯體。我們建議您將 CRL 保持私有。如果需要 CRL 的網際網路存取，請參閱 AWS Private CA 文件中的使用 Amazon CloudFront 為 CRLs 提供[啟用 S3 封鎖公開存取 (BPA) 功能的](https://docs.aws.amazon.com/privateca/latest/userguide/crl-planning.html#s3-bpa)一節。
+ 此模式實作單一區域方法。如果您需要多區域憑證授權單位，您可以在第二個 AWS 區域或內部部署中實作次級。這種複雜性超出此模式的範圍，因為實作取決於您的特定使用案例、工作負載磁碟區、相依性和需求。

## Architecture
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-architecture"></a>

**目標技術堆疊**
+ AWS Private CA
+ AWS RAM
+ Amazon S3
+ AWS Organizations
+ AWS CloudFormation

**目標架構**

此模式提供兩種共用給 AWS Organizations 的選項：

**選項 1** ─ 在組織層級建立共享。組織中的所有帳戶都可以使用共用 CA 發行私有憑證，如下圖所示。

![在組織層級共用 CA](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/34701b79-c670-4c5d-8c8b-00c7fbd12d06/images/3765d327-3097-4134-a701-28753e1abb14.png)


**選項 2** — 在組織單位 (OU) 層級建立共享。只有指定 OU 中的帳戶可以使用共用 CA 發行私有憑證。例如，在下圖中，如果共享是在沙盒 OU 層級建立，則開發人員 1 和開發人員 2 都可以使用共用 CA 發行私有憑證。

 

![在 OU 層級共用 CA](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/34701b79-c670-4c5d-8c8b-00c7fbd12d06/images/b8385d18-42d1-4924-aa69-cc4a3e96bf56.png)


## 工具
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-tools"></a>

**AWS 服務**
+ [AWS Private CA](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html) – AWS Private Certificate Authority (AWS Private CA) 是用於發行和撤銷私有數位憑證的託管私有 CA 服務。它可協助您建立私有 CA 階層，包括根 CA 和次級 CAs，而無需操作內部部署 CA 的投資和維護成本。
+ [AWS RAM](https://docs.aws.amazon.com/ram/latest/userguide/what-is.html) – AWS Resource Access Manager (AWS RAM) 可協助您在 AWS 帳戶以及 AWS Organizations 中的組織或 OUs 內安全地共用資源。若要減少多帳戶環境中的營運開銷，您可以建立資源，並使用 AWS RAM 跨帳戶共用該資源。
+ [AWS Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_introduction.html) – AWS Organizations 是一種帳戶管理服務，可讓您將多個 AWS 帳戶合併到您建立並集中管理的組織。
+ [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html) – Amazon Simple Storage Service (Amazon S3) 是一種物件儲存服務。您可以使用 Amazon S3 隨時從 Web 任何地方存放和擷取任意資料量。此模式使用 Amazon S3 來存放憑證撤銷清單 (CRL) 和存取日誌。
+ [AWS CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) – AWS CloudFormation 可協助您建立模型並設定 AWS 資源、快速一致地佈建資源，以及在整個生命週期中管理資源。您可以使用範本來描述您的資源及其相依性，並將它們一起啟動和設定為堆疊，而不是個別管理資源。此模式使用 AWS CloudFormation 自動部署多層 CA 階層。

**Code**

此模式的原始碼可在 GitHub 的 [AWS Private CA 階層](https://github.com/aws-samples/acmpca-hierarchy)儲存庫中使用。儲存庫包含：
+ AWS CloudFormation 範本 `ACMPCA-RootCASubCA.yaml`。您可以使用此範本來部署此實作的 CA 階層。 
+ 測試檔案是否有請求、匯出、描述和刪除憑證等使用案例。

若要使用這些檔案，請遵循 *Epics* 區段中的指示。

## 史詩
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-epics"></a>

### 架構 CA 階層
<a name="architect-the-ca-hierarchy"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 收集憑證主體資訊。 | 收集憑證擁有者的憑證主體資訊：組織名稱、組織單位、國家/地區、州、地區和通用名稱。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 收集 AWS Organizations 的選用資訊。 | 如果 CA 是 AWS Organizations 結構的一部分，而且您想要在該結構內共用 CA 階層，請收集管理帳號、組織 ID 和選擇性的 OU ID （如果您只想與特定 OU 共用 CA 階層）。此外，判斷您要與之共用 CA 的 AWS Organizations 帳戶或 OUs。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 設計 CA 階層。 | 決定哪個帳戶將存放根 CA 和次級 CAs。決定階層在根憑證和終端實體憑證之間需要多少次級層級。如需詳細資訊，請參閱 [AWS Private CA 文件中的設計 CA 階層](https://docs.aws.amazon.com/privateca/latest/userguide/ca-hierarchy.html)。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 決定 CA 階層的命名和標記慣例。 | 決定 AWS 資源的名稱：根 CA 和每個次級 CA。決定應指派給每個 CA 的標籤。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 判斷所需的加密和簽署演算法。 | 判斷下列項目：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.html) | 雲端架構師、安全架構師、PKI 工程師 | 
| 判斷 CA 階層的憑證撤銷要求。 | 如果需要憑證撤銷功能，請為包含憑證撤銷清單 (CRL) 的 S3 儲存貯體建立命名慣例。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 判斷 CA 階層的記錄需求。 | 如果需要存取記錄功能，請為包含存取日誌的 S3 儲存貯體建立命名慣例。 | 雲端架構師、安全架構師、PKI 工程師 | 
| 判斷憑證過期期間。 | 決定根憑證的過期日期 （預設值為 10 年）、終端實體憑證 （預設值為 13 個月） 和次級 CA 憑證 （預設值為 3 年）。次級 CA 憑證的過期時間應該早於階層中較高層級的 CA 憑證。如需詳細資訊，請參閱 AWS [Private CA 文件中的管理私有 CA 生命週期](https://docs.aws.amazon.com/privateca/latest/userguide/ca-lifecycle.html)。 | 雲端架構師、安全架構師、PKI 工程師 | 

### 部署 CA 階層
<a name="deploy-the-ca-hierarchy"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 完成 事前準備。 | 完成此模式[的先決條件](#simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-prereqs)區段中的步驟。 | 雲端管理員、安全工程師、PKI 工程師 | 
| 為各種角色建立 CA 角色。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.html) | 雲端管理員、安全工程師、PKI 工程師 | 
| 部署 CloudFormation 堆疊。 | [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.html) | 雲端管理員、安全工程師、PKI 工程師 | 
| 建構解決方案，以更新使用者受管資源使用的憑證。 | 整合式 AWS 服務的資源，例如 Elastic Load Balancing，會在過期前自動更新憑證。不過，使用者管理的資源，例如在 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上執行的 Web 伺服器，需要另一個機制。 [See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram.html) | 雲端管理員、安全工程師、PKI 工程師 | 

### 驗證並記錄 CA 階層
<a name="validate-and-document-the-ca-hierarchy"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 驗證選用的 AWS RAM 共用。 | 如果 CA 階層與 AWS Organizations 中的其他帳戶共用，請從 AWS 管理主控台登入其中一個帳戶，導覽至 [AWS Private CA 主控台](https://console.aws.amazon.com/acm-pca/home)，並確認新建立的 CA 已共用至此帳戶。只有階層中最低層級的 CA 才會顯示，因為這是產生終端實體憑證的 CA。針對與 CA 共用的帳戶，重複取樣。 | 雲端管理員、安全工程師、PKI 工程師 | 
| 使用憑證生命週期測試驗證 CA 階層。 | 在此模式的 [GitHub 儲存庫](https://github.com/aws-samples/acmpca-hierarchy)中，找到生命週期測試。從 AWS CLI 執行測試以請求憑證、匯出憑證、描述憑證，以及刪除憑證。 | 雲端管理員、安全工程師、PKI 工程師 | 
| 將憑證鏈匯入信任存放區。 | 對於要信任憑證的瀏覽器和其他應用程式，憑證的發行者必須包含在瀏覽器的信任存放區中，這是信任 CAs的清單。將新 CA 階層的憑證鏈新增至瀏覽器和應用程式的信任存放區。確認終端實體憑證是受信任的。 | 雲端管理員、安全工程師、PKI 工程師 | 
| 建立 Runbook 以記錄 CA 階層。 | 建立 Runbook 文件來描述 CA 階層的架構、可請求終端實體憑證的帳戶結構、建置程序，以及發行終端實體憑證 （除非您想要依子帳戶允許自助服務）、用量和追蹤等基本管理任務。 | 雲端管理員、安全工程師、PKI 工程師 | 

## 相關資源
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-resources"></a>
+ [設計 CA 階層](https://docs.aws.amazon.com/privateca/latest/userguide/ca-hierarchy.html) (AWS Private CA 文件）
+ [建立私有 CA](https://docs.aws.amazon.com/privateca/latest/userguide/create-CA.html) (AWS Private CA 文件）
+ [如何使用 AWS RAM 來共用您的 AWS Private CA 跨帳戶](https://aws.amazon.com/blogs/security/how-to-use-aws-ram-to-share-your-acm-private-ca-cross-account/) (AWS 部落格文章）
+ [AWS Private CA 最佳實務](https://docs.aws.amazon.com/acm-pca/latest/userguide/ca-best-practices.html) (AWS 部落格文章）
+ 在[ AWS Organizations 中啟用資源共用](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-orgs) (AWS RAM 文件）
+ [管理私有 CA 生命週期](https://docs.aws.amazon.com/privateca/latest/userguide/ca-lifecycle.html) (AWS Private CA 文件）
+ [AWS Config 的 acm-certificate-expiration-check AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/acm-certificate-expiration-check.html)(AWS Config 文件）
+ [AWS Certificate Manager 現在透過 Amazon CloudWatch 提供憑證過期監控 ](https://aws.amazon.com/about-aws/whats-new/2021/03/aws-certificate-manager-provides-certificate-expiry-monitoring-through-amazon-cloudwatch/)(AWS 公告）
+ [與 AWS Certificate Manager 整合的服務](https://docs.aws.amazon.com/acm/latest/userguide/acm-services.html) (ACM 文件）

## 其他資訊
<a name="simplify-private-certificate-management-by-using-aws-private-ca-and-aws-ram-additional"></a>

匯出憑證時，請使用密碼編譯強式的複雜密碼，並與組織的資料外洩預防策略保持一致。