

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

# 將稽核報告與私有 CA 搭配使用
<a name="PcaAuditReport"></a>

您可以建立稽核報告，以列出私有 CA 已發行或撤銷的所有憑證。報告會儲存在新的或輸入時指定的現有 S3 儲存貯體。

如需為您稽核報告新增加密保護的資訊，請參閱 [加密您的稽核報告](#audit-report-encryption)。

稽核報告檔案具有下列路徑和檔案名稱。Amazon S3 儲存貯體的 ARN 是 的值`amzn-s3-demo-bucket`。 `CA_ID` 是發出 CA 的唯一識別符。 `UUID`是稽核報告的唯一識別符。

```
amzn-s3-demo-bucket/audit-report/CA_ID/UUID.[json|csv]
```

每 30 分鐘可從您的儲存貯體產生及下載新的報告。以下範例顯示以 CSV 分隔的報告。

```
awsAccountId,requestedByServicePrincipal,certificateArn,serial,subject,notBefore,notAfter,issuedAt,revokedAt,revocationReason,templateArn
123456789012,,arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID,00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff,"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4e5f6a,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",2020-03-02T21:43:57+0000,2020-04-07T22:43:57+0000,2020-03-02T22:43:58+0000,,UNSPECIFIED,arn:aws:acm-pca:::template/EndEntityCertificate/V1
123456789012,acm.amazonaws.com,arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID,ff:ee:dd:cc:bb:aa:99:88:77:66:55:44:33:22:11:00,"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",2020-03-02T20:53:39+0000,2020-04-07T21:53:39+0000,2020-03-02T21:53:40+0000,,,arn:aws:acm-pca:::template/EndEntityCertificate/V1
```

JSON 格式的報告如下列範例所示。

```
[
   {
      "awsAccountId":"123456789012",
      "certificateArn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID",
      "serial":"00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff",
      "subject":"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",
      "notBefore":"2020-02-26T18:39:57+0000",
      "notAfter":"2021-02-26T19:39:57+0000",
      "issuedAt":"2020-02-26T19:39:58+0000",
      "revokedAt":"2020-02-26T20:00:36+0000",
      "revocationReason":"UNSPECIFIED",
      "templateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1"
   },
   {
      "awsAccountId":"123456789012",
      "requestedByServicePrincipal":"acm.amazonaws.com",
      "certificateArn":"arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID",
      "serial":"ff:ee:dd:cc:bb:aa:99:88:77:66:55:44:33:22:11:00",
      "subject":"2.5.4.5=#012345678901,2.5.4.44=#0a1b3c4d,2.5.4.65=#0a1b3c4d5e6f,2.5.4.43=#0a1b3c4d5e,2.5.4.42=#0123456789abcdef0123456789abcdef0123,2.5.4.4=#0123456789abcdef01234567,2.5.4.12=#0a1b3c4d5e,2.5.4.46=#0123456789ab,CN=www.example1.com,OU=Sales,O=Example Company,L=Seattle,ST=Washington,C=US",
      "notBefore":"2020-01-22T20:10:49+0000",
      "notAfter":"2021-01-17T21:10:49+0000",
      "issuedAt":"2020-01-22T21:10:49+0000",
      "templateArn":"arn:aws:acm-pca:::template/EndEntityCertificate/V1"
   }
]
```

**注意**  
當 AWS Certificate Manager 續約憑證時，私有 CA 稽核報告會以 填入 `requestedByServicePrincipal` 欄位`acm.amazonaws.com`。這表示 AWS Certificate Manager 服務代表客戶呼叫 AWS 私有 CA API `IssueCertificate`的動作來續約憑證。

## 為稽核報告準備 Amazon S3 儲存貯體
<a name="s3-access"></a>

**重要**  
AWS 私有 CA 不支援使用 [Amazon S3 物件鎖定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-lock.html)。如果您在儲存貯體上啟用物件鎖定， AWS 私有 CA 無法將稽核報告寫入儲存貯體。

若要存放稽核報告，您需要準備 Amazon S3 儲存貯體。如需詳細資訊，請參閱[如何建立 S3 儲存貯體？](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html) 

您的 S3 儲存貯體必須受到允許 AWS 私有 CA 存取和寫入您指定之 S3 儲存貯體的許可政策所保護。授權使用者和服務主體需要`Put`允許 AWS 私有 CA 將物件放入儲存貯體的許可，以及擷取物件的`Get`許可。我們建議您套用以下顯示的政策，這會限制存取私有 CA AWS 的帳戶和 ARN。或者，您可以使用 [aws：SourceOrgID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceorgid) 條件金鑰來限制對 中特定組織的存取 AWS Organizations。如需儲存貯體政策的詳細資訊，請參閱 [Amazon Simple Storage Service 的儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)。

## 建立稽核報告
<a name="create-the-report"></a>

您可以從 主控台或 建立稽核報告 AWS CLI。

**建立稽核報告 (主控台)**

1. 登入 AWS 您的帳戶，並在 https：//[https://console.aws.amazon.com/acm-pca/home](https://console.aws.amazon.com/acm-pca/home) 開啟 AWS 私有 CA 主控台。

1. 在**私有憑證授權**頁面上，從清單中選擇私有 CA。

1. 從 **Actions (動作)** 選單中，選擇 **Generate audit report (產生稽核報告)**。

1. 在**稽核報告目的地**下，對於**建立新的 S3 儲存貯體？**，選擇**是**並輸入唯一的儲存貯體名稱，或選擇**否**，然後從清單中選擇現有的儲存貯體。

   如果您選擇**是**， 會 AWS 私有 CA 建立預設政策並將其連接至您的儲存貯體。預設政策包含 `aws:SourceAccount`條件金鑰，這會限制對特定 AWS 帳戶的存取。如果您想要進一步限制存取，您可以將其他條件金鑰新增至政策，例如在[上述範例中](#s3-access)。

   如果您選擇**否**，您必須先將政策連接至儲存貯體，才能產生稽核報告。使用中所述的政策模式[為稽核報告準備 Amazon S3 儲存貯體](#s3-access)。如需連接政策的資訊，請參閱[使用 Amazon S3 主控台新增儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)。

1. 在**輸出格式**下，針對 JavaScript 物件表示法選擇 **JSON**，或針對逗號分隔值選擇 **CSV**。

1. 選擇 **Generate audit report (產生稽核報告)**。

**建立稽核報告 (AWS CLI)**

1. 如果您還沒有要使用的 S3 儲存貯體，[請建立一個](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket.html)。

1. 將政策連接至您的儲存貯體。使用中所述的政策模式[為稽核報告準備 Amazon S3 儲存貯體](#s3-access)。如需連接政策的資訊，請參閱[使用 Amazon S3 主控台新增儲存貯體政策](https://docs.aws.amazon.com/AmazonS3/latest/userguide/add-bucket-policy.html)

1. 使用 [create-certificate-authority-audit-report](https://docs.aws.amazon.com/cli/latest/reference/acm-pca/create-certificate-authority-audit-report.html) 命令來建立稽核報告，並將其放在預備的 S3 儲存貯體中。

   ```
   $ aws acm-pca create-certificate-authority-audit-report \
   --certificate-authority-arn arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566 \
   --s3-bucket-name amzn-s3-demo-bucket \
   --audit-report-response-format JSON
   ```

## 擷取稽核報告
<a name="audit-report-retrieving"></a>

若要擷取稽核報告以供檢查，請使用 Amazon S3 主控台、API、CLI 或 SDK。如需詳細資訊，請參閱《*Amazon Simple Storage Service 使用者指南*》中的[下載物件](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html)。

## 加密您的稽核報告
<a name="audit-report-encryption"></a>

您可以選擇性地在包含稽核報告的 Amazon S3 儲存貯體上設定加密。 AWS 私有 CA 支援 S3 中資產的兩種加密模式：
+ 使用 Amazon S3-managed AES-256 金鑰自動進行伺服器端加密。
+ 使用 AWS Key Management Service 和根據您的規格 AWS KMS key 設定的 進行客戶受管加密。

**注意**  
AWS 私有 CA 不支援使用 S3 自動產生的預設 KMS 金鑰。

下列程序說明如何設定每個加密選項。

**設定自動加密**

完成以下步驟以啟用 S3 伺服器端加密。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在**儲存貯**體表格中，選擇將存放 AWS 私有 CA 資產的儲存貯體。

1. 在您的儲存貯體頁面上，選擇**屬性**索引標籤。

1. 選擇**預設加密**卡片。

1. 選擇**啟用**。

1. 選擇 **Amazon S3 金鑰 (SSE-S3)**。

1. 選擇 **Save Changes** (儲存變更)。

**設定自訂加密**

完成下列步驟，以使用自訂金鑰啟用加密。

1. 開啟位於 [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon S3 主控台。

1. 在**儲存貯**體表格中，選擇將存放 AWS 私有 CA 資產的儲存貯體。

1. 在您的儲存貯體頁面上，選擇**屬性**索引標籤。

1. 選擇**預設加密**卡片。

1. 選擇**啟用**。

1. 選擇**AWS Key Management Service 金鑰 (SSE-KMS)**。

1. 選擇**從 AWS KMS 金鑰中選擇**或**輸入 AWS KMS key ARN**。

1. 選擇 **Save Changes** (儲存變更)。

1. （選用） 如果您還沒有 KMS 金鑰，請使用下列 AWS CLI [create-key](https://docs.aws.amazon.com/cli/latest/reference/kms/create-key.html) 命令建立一個：

   ```
   $ aws kms create-key
   ```

   輸出包含 KMS 金鑰的金鑰 ID 和 Amazon Resource Name (ARN)。以下是輸出範例：

   ```
   {
       "KeyMetadata": {
           "KeyId": "01234567-89ab-cdef-0123-456789abcdef",
           "Description": "",
           "Enabled": true,
           "KeyUsage": "ENCRYPT_DECRYPT",
           "KeyState": "Enabled",
           "CreationDate": 1478910250.94,
           "Arn": "arn:aws:kms:us-west-2:123456789012:key/01234567-89ab-cdef-0123-456789abcdef",
           "AWSAccountId": "123456789012"
       }
   }
   ```

1. 使用下列步驟，您可以授予 AWS 私有 CA 服務主體使用 KMS 金鑰的許可。根據預設，所有 KMS 金鑰都是私有的；只有資源擁有者可以使用 KMS 金鑰來加密和解密資料。然而，資源擁有者可以授與其他使用者和資源存取 KMS 金鑰的許可。服務主體必須位於與存放 KMS 金鑰相同的區域。

   1. 首先，使用以下 [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html) 命令，將 KMS 金鑰的預設政策儲存為 `policy.json`：

      ```
      $ aws kms get-key-policy --key-id key-id --policy-name default --output text > ./policy.json
      ```

   1. 在文字編輯器中開啟 `policy.json` 檔案。選取下列其中一個政策陳述式，並將其新增至現有政策。

      如果您的 Amazon S3 儲存貯體金鑰*已啟用*，請使用下列陳述式：

      ```
      {
         "Sid":"Allow ACM-PCA use of the key",
         "Effect":"Allow",
         "Principal":{
            "Service":"acm-pca.amazonaws.com"
         },
         "Action":[
            "kms:GenerateDataKey",
            "kms:Decrypt"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "kms:EncryptionContext:aws:s3:arn":"arn:aws:s3:::bucket-name"
            }
         }
      }
      ```

      如果您的 Amazon S3 儲存貯體金鑰*已停用*，請使用下列陳述式：

      ```
      {
         "Sid":"Allow ACM-PCA use of the key",
         "Effect":"Allow",
         "Principal":{
            "Service":"acm-pca.amazonaws.com"
         },
         "Action":[
            "kms:GenerateDataKey",
            "kms:Decrypt"
         ],
         "Resource":"*",
         "Condition":{
            "StringLike":{
               "kms:EncryptionContext:aws:s3:arn":[
                  "arn:aws:s3:::bucket-name/acm-pca-permission-test-key",
                  "arn:aws:s3:::bucket-name/acm-pca-permission-test-key-private",
                  "arn:aws:s3:::bucket-name/audit-report/*",
                  "arn:aws:s3:::bucket-name/crl/*"
               ]
            }
         }
      }
      ```

   1. 最後，使用以下 [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html) 命令套用更新的政策：

      ```
      $ aws kms put-key-policy --key-id key_id --policy-name default --policy file://policy.json
      ```