本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 記錄 AWS 私有憑證授權單位 API 呼叫 AWS CloudTrail
AWS 私有憑證授權單位 已與 服務整合 AWS CloudTrail,此服務可提供使用者、角色或 AWS 服務在其中採取之動作的記錄 AWS 私有 CA。CloudTrail 會將 的 API 呼叫和簽署操作擷取 AWS 私有 CA 為事件。擷取的呼叫包括來自 AWS 私有 CA 主控台的呼叫,以及對 AWS 私有 CA API 操作的程式碼呼叫。如果您建立線索,您可以將 CloudTrail 事件持續交付至 Amazon S3 儲存貯體,包括 的事件 AWS 私有 CA。即使您未設定追蹤,依然可以透過 CloudTrail 主控台中的事件歷史記錄檢視最新事件。您可以使用 CloudTrail 所收集的資訊來判斷提出的請求 AWS 私有 CA、提出請求的 IP 地址、提出請求的人員、提出請求的時間,以及其他詳細資訊。
若要進一步了解 CloudTrail,請參閱AWS CloudTrail 《使用者指南》。
AWS 私有 CA CloudTrail 中的資訊
建立帳戶 AWS 帳戶 時,您的 上會啟用 CloudTrail。當活動在 中發生時 AWS 私有 CA,該活動會與事件歷史記錄中的其他 AWS 服務事件一起記錄在 CloudTrail 事件中。您可以在 中檢視、搜尋和下載最近的事件 AWS 帳戶。如需詳細資訊,請參閱「使用 CloudTrail 事件歷史記錄檢視事件」。
若要持續記錄 中的事件 AWS 帳戶,包括 的事件 AWS 私有 CA,請建立追蹤。線索能讓 CloudTrail 將日誌檔案交付至 Amazon S3 儲存貯體。依預設,當您在主控台中建立追蹤時,該追蹤會套用至所有的 AWS 區域。線索會記錄 AWS 分割區中所有區域的事件,並將日誌檔案交付至您指定的 Amazon S3 儲存貯體。此外,您可以設定其他 AWS 服務,以進一步分析和處理 CloudTrail 日誌中所收集的事件資料。如需詳細資訊,請參閱下列內容:
CloudTrail 會記錄所有 AWS 私有 CA 動作,並記錄在 AWS 私有 CA API 參考中。例如,對 ImportCACertificate、IssueCertificate 和 CreateAuditReport 動作發出的呼叫會在 CloudTrail 記錄檔案中產生專案。
每一筆事件或日誌專案都會包含產生請求者的資訊。身分資訊可協助您判斷下列事項:
-
是否使用根或 AWS Identity and Access Management (IAM) 使用者登入資料提出請求。
-
提出該請求時,是否使用了特定角色或聯合身分使用者的暫時安全憑證。
-
請求是否由其他 AWS 服務提出。
如需詳細資訊,請參閱 CloudTrail userIdentity 元素。
注意
除了 Amazon S3 之外,您還可以設定 CloudTrail 追蹤將事件交付至 Amazon CloudWatch Logs。 Amazon CloudWatch Amazon S3 設定後,CloudWatch Logs 會收到交付至 S3 儲存貯體的相同 AWS 私有 CA 事件。 AWS 私有 CA 不會將事件直接發佈至 CloudWatch Logs。如需詳細資訊,請參閱AWS CloudTrail 《 使用者指南》中的將事件傳送至 CloudWatch Logs。
如需有關 CloudTrail 如何交付事件的資訊,包括交付時間、耐用性以及與其他 AWS 服務的整合,請參閱取得和檢視您的 CloudTrail 日誌檔案和服務AWS CloudTrail 水準協議
AWS 私有 CA 管理事件
AWS 私有 CA 與 CloudTrail 整合,以記錄使用者、角色或服務 AWS 在其中所做的 API 動作 AWS 私有 CA。您可以使用 CloudTrail 即時監控 AWS 私有 CA API 請求,並將日誌儲存在 Amazon Simple Storage Service、Amazon CloudWatch Logs 和 Amazon CloudWatch Events 中。 AWS 私有 CA 支援將下列動作和操作記錄為 CloudTrail 日誌檔案中的事件:
GenerateOCSPResponse- 當 AWS 私有 CA 產生 OCSP 回應時觸發。IssueCertificateDetails– 當 AWS 私有 CA 完成憑證發行嘗試 (成功或失敗) 時產生。包含憑證中繼資料,包括 TBS 憑證、簽署演算法、有效期間和發行狀態。從共用 CA 發出憑證時,此事件會同時交付至 CA 擁有者帳戶和申請者帳戶。SignCertificate- 當您的用戶端呼叫 IssueCertificate 時產生。SignOCSPResponse- AWS 私有 CA 簽署 OCSP 回應時產生。GenerateCRL- 在 AWS 私有 CA 產生憑證撤銷清單 (CRL) 時產生。SignCACSR- 在 AWS 私有 CA 簽署憑證授權單位 (CA) 憑證簽署請求 (CSR) 時產生。SignCRL- AWS 私有 CA 簽署 CRL 時產生。
注意
CloudTrail 提供 API 呼叫和簽署操作的即時事件串流。如需私有 CA 已發行或撤銷之所有憑證的完整point-in-time庫存,包括有效日期和撤銷狀態,請參閱 將稽核報告與私有 CA 搭配使用。
識別原始請求者
當中繼服務IssueCertificate代表最終使用者或工作負載呼叫 時,CloudTrail 事件會在 userIdentity 欄位中記錄中繼服務的 IAM 身分,而不是原始請求者。
若要將憑證發行追蹤回原始申請者,中繼服務可以使用標準 IAM 機制傳播身分資訊:
-
工作階段標籤 — 透過 擔任其 IAM 角色時,中繼服務會將識別資訊 (例如原始請求者的 ID) 做為工作階段標籤傳遞 AWS STS。這些標籤會出現在 下的 CloudTrail 事件
userIdentity區塊中sessionContext。如需詳細資訊,請參閱在 AWS STS中傳入工作階段標籤。 -
來源身分 — 中繼服務會在擔任其角色時設定來源身分。來源身分在角色鏈之間是不可變的,並在 CloudTrail 中顯示為
sourceIdentity。如需詳細資訊,請參閱監控和控制使用擔任角色所採取的動作。 -
IAM Roles Anywhere — 如果呼叫工作負載透過 IAM Roles Anywhere 使用 X.509 憑證進行驗證,則憑證的主旨、發行者和主旨別名 (SAN) 欄位會自動對應至工作階段主體標籤。例如,SAN 中的 SPIFFE ID 會顯示為
aws:PrincipalTag/x509SAN/URI。如需詳細資訊,請參閱 IAM Roles Anywhere 信任模型。
這些身分屬性會記錄在所有 AWS 服務呼叫的 CloudTrail 事件中,包括 AWS 私有 CA API 操作。
AWS 私有 CA 服務事件
除了從 API 呼叫記錄的管理事件之外, AWS 私有 CA 還會產生服務事件,讓您了解代表您執行的內部操作。這些事件具有 eventType 的 AwsServiceEvent ,且會自動記錄到您的 CloudTrail 追蹤。
IssueCertificateDetails 事件
AWS 私有 CA 當憑證發行嘗試完成時, 會產生IssueCertificateDetails事件。事件會記錄結果,無論是成功發出憑證還是發行失敗,並描述憑證發行程序,包括詳細資訊,例如:
TBS (to-be-signed憑證結構 (base64 編碼的 DER)
發行 CA 的名稱、授權機構金鑰識別符和序號
發行憑證的序號、主旨和有效期間
使用的簽署演算法和範本
適用時具有失敗原因的發行狀態
從共用 CA 發出憑證時,事件會同時交付至 CA 擁有者的帳戶和申請者的帳戶。對於失敗的發行嘗試,事件可能包含解釋失敗原因statusReason的欄位。
注意
IssueCertificateDetails 事件透過提供有關發行的其他中繼資料來補充現有SignCertificate事件,包括失敗詳細資訊和完整的 TBS 憑證內容。
範例:憑證發行成功
下列範例顯示成功發行憑證IssueCertificateDetails的事件。
{ "eventVersion": "1.11", "userIdentity": { "accountId": "111122223333", "invokedBy": "acm-pca.amazonaws.com" }, "eventTime": "2026-08-10T15:27:20Z", "eventSource": "acm-pca.amazonaws.com", "eventName": "IssueCertificateDetails", "awsRegion": "us-west-2", "sourceIPAddress": "acm-pca.amazonaws.com", "userAgent": "acm-pca.amazonaws.com", "requestParameters": null, "responseElements": null, "eventID": "83fecbfe-7e3a-4a14-8968-c99ad2d30d39", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::ACMPCA::CertificateAuthority", "ARN": "arn:aws:acm-pca:us-west-2:111122223333:certificate-authority/9bb0e8f5-b024-4517-b0bb-e886cb34ac01" }, { "accountId": "111122223333", "type": "AWS::ACMPCA::Certificate", "ARN": "arn:aws:acm-pca:us-west-2:111122223333:certificate-authority/9bb0e8f5-b024-4517-b0bb-e886cb34ac01/certificate/1a98eb0323009660dff81ac79ab4539e" } ], "eventType": "AwsServiceEvent", "managementEvent": true, "recipientAccountId": "111122223333", "serviceEventDetails": { "tbsCertificate": "MIIBZaADAgECAhAamOsDIwCWYN...", "issuerAuthorityKeyIdentifier": "16:E9:CC:B3:8A:DE:98:0F:10:BB:48:53:A4:1D:FD:A5:F2:EC:FE:5D", "issuerSerialNumber": "01", "issuerName": "CN=Example Intermediate CA", "subject": "CN=www.example.com", "serialNumber": "1A:98:EB:03:23:00:96:60:DF:F8:1A:C7:9A:B4:53:9E", "notBefore": "2026-08-10T14:27:20Z", "notAfter": "2026-08-17T15:27:20Z", "issuedAt": "2026-08-10T15:27:20Z", "templateArn": "arn:aws:acm-pca:::template/EndEntityCertificate/V1", "signingAlgorithm": "ECDSAWITHSHA256", "status": "ISSUED" }, "eventCategory": "Management" }
範例:憑證發行失敗
下列範例顯示憑證發行失敗IssueCertificateDetails的事件。當發行失敗時, status 欄位為 FAILED, statusReason 欄位說明原因。有效性欄位 (notBefore、notAfter) 和 issuedAt會被省略,因為沒有發出憑證。衍生自 TBS 憑證的欄位 (tbsCertificate、serialNumber、、 subject issuerName和 issuerAuthorityKeyIdentifier) 只有在 AWS 私有 CA 產生 TBS 憑證後發生失敗時才會出現。
{ "eventVersion": "1.11", "userIdentity": { "accountId": "111122223333", "invokedBy": "acm-pca.amazonaws.com" }, "eventTime": "2026-08-10T15:27:20Z", "eventSource": "acm-pca.amazonaws.com", "eventName": "IssueCertificateDetails", "awsRegion": "us-west-2", "sourceIPAddress": "acm-pca.amazonaws.com", "userAgent": "acm-pca.amazonaws.com", "requestParameters": null, "responseElements": null, "eventID": "fedcba98-7654-3210-fedc-ba9876543210", "readOnly": false, "resources": [ { "accountId": "111122223333", "type": "AWS::ACMPCA::CertificateAuthority", "ARN": "arn:aws:acm-pca:us-west-2:111122223333:certificate-authority/9bb0e8f5-b024-4517-b0bb-e886cb34ac01" }, { "accountId": "111122223333", "type": "AWS::ACMPCA::Certificate", "ARN": "arn:aws:acm-pca:us-west-2:111122223333:certificate-authority/9bb0e8f5-b024-4517-b0bb-e886cb34ac01/certificate/d6b81f1bf0563e97c29584a55c3ea553" } ], "eventType": "AwsServiceEvent", "managementEvent": true, "recipientAccountId": "111122223333", "serviceEventDetails": { "tbsCertificate": "MIIBZaADAgECAhAamOsDIwCWYN...", "issuerAuthorityKeyIdentifier": "16:E9:CC:B3:8A:DE:98:0F:10:BB:48:53:A4:1D:FD:A5:F2:EC:FE:5D", "issuerSerialNumber": "01", "issuerName": "CN=Example Intermediate CA", "subject": "CN=www.example.com", "serialNumber": "D6:B8:1F:1B:F0:56:3E:97:C2:95:84:A5:5C:3E:A5:53", "templateArn": "arn:aws:acm-pca:::template/EndEntityCertificate/V1", "signingAlgorithm": "ECDSAWITHSHA256", "status": "FAILED", "statusReason": "Name Constraints violation: DNS name not found in a permitted subtree." }, "eventCategory": "Management" }
下表說明 serviceEventDetails 物件中的欄位。
| 欄位 | 說明 |
|---|---|
tbsCertificate |
TBS (to-be-signed) 憑證結構的 base64 編碼 DER 表示法。包含與發行的憑證中顯示的相同資訊。對於失敗的發行,只有在產生 TBS 憑證之後發生失敗時才會出現。 |
issuerAuthorityKeyIdentifier |
發行 CA 的授權金鑰識別符,擷取自 TBS 憑證延伸,格式為冒號分隔的十六進位位元組。當憑證不包含授權機構金鑰識別符延伸 (例如,自我簽署的根 CA 憑證) 時省略,如果在產生 TBS 憑證之前發生失敗,則表示發行失敗。 |
issuerSerialNumber |
發行 CA 憑證的序號,格式為冒號分隔的十六進位位元組。當 CA 憑證無法使用時省略。 |
issuerName |
發行 CA 與 TBS 憑證的辨別名稱 (DN)。對於失敗的發行,只有在產生 TBS 憑證之後發生失敗時才會出現。 |
subject |
憑證主體與 TBS 憑證的辨別名稱 (DN)。對於失敗的發行,只有在產生 TBS 憑證之後發生失敗時才會出現。 |
serialNumber |
憑證的序號,格式為冒號分隔的十六進位位元組。對於失敗的發行,只有在產生 TBS 憑證之後發生失敗時才會出現。 |
notBefore |
ISO 8601 格式的憑證有效期間開始。如果發行失敗,則省略。 |
notAfter |
ISO 8601 格式的憑證有效期間結束。如果發行失敗,則省略。 |
issuedAt |
以 ISO 8601 格式發出憑證時的時間戳記。如果發行失敗,則省略。 |
templateArn |
用於發行之憑證範本的 ARN。 |
signingAlgorithm |
使用的簽署演算法 (例如 ECDSAWITHSHA256或 SHA256WITHRSA)。 |
status |
發行嘗試的結果: ISSUED或 FAILED. 僅在發行達到這些終端狀態的其中之一時 AWS 私有 CA 記錄IssueCertificateDetails事件,因此此欄位永遠不會是 PENDING。在發行成功或失敗之前,仍在處理的憑證不會產生事件;請使用 GetCertificate 檢查尚未顯示事件的憑證狀態。 |
statusReason |
發行失敗的原因。只有在出現故障原因時才會顯示;有些失敗的發行事件不包含此欄位。 |
requesterAccountId |
請求憑證的 AWS 帳戶 ID。只有在 AWS 服務未代表您提出請求時才會顯示。 |
requesterArn |
請求憑證之委託人的 ARN。只有在 AWS 服務未代表您提出請求時才會顯示。 |
requesterServicePrincipal |
代表您請求憑證 AWS 的服務委託人 (例如 acm.amazonaws.com)。僅在 AWS 服務發出請求時顯示。 |
注意
有些憑證發行歸因於內部 AWS 程序,而非客戶委託人。在這些情況下,事件不包含 requesterAccountId、 requesterArn或 requesterServicePrincipal 欄位。請勿假設這三個欄位之一永遠存在。
範例 AWS 私有 CA 事件
追蹤是一種組態,能讓事件以日誌檔案的形式交付到您指定的 Amazon S3 儲存貯體。CloudTrail 日誌檔案包含一或多個日誌專案。一個事件為任何來源提出的單一請求,並包含請求動作、請求的日期和時間、請求參數等資訊。CloudTrail 日誌檔並非依公有 API 呼叫的堆疊追蹤排序,因此不會以任何特定順序出現。
以下是 AWS 私有 CA CloudTrail 事件的範例。
範例 1:管理事件、 IssueCertificate
以下範例顯示的是展示 IssueCertificate 動作的 CloudTrail 日誌項目。
{ "version":"0", "id":"event_ID", "detail-type":"ACM Private CA Certificate Issuance", "source":"aws.acm-pca", "account":"account", "time":"2019-11-04T19:57:46Z", "region":"region", "resources":[ "arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566", "arn:aws:acm-pca:region:account:certificate-authority/CA_ID/certificate/certificate_ID" ], "detail":{ "result":"success" } }
範例 2:管理事件、 ImportCertificateAuthorityCertificate
以下範例顯示的是展示 ImportCertificateAuthorityCertificate 動作的 CloudTrail 日誌項目。
{ "eventVersion":"1.05", "userIdentity":{ "type":"IAMUser", "principalId":"account", "arn":"arn:aws:iam::account:user/name", "accountId":"account", "accessKeyId":"key_ID" }, "eventTime":"2018-01-26T21:53:28Z", "eventSource":"acm-pca.amazonaws.com", "eventName":"ImportCertificateAuthorityCertificate", "awsRegion":"region", "sourceIPAddress":"IP_address", "userAgent":"agent", "requestParameters":{ "certificateAuthorityArn":"arn:aws:acm-pca:us-east-1:111122223333:certificate-authority/11223344-1234-1122-2233-112233445566", "certificate":{ "hb":[ 45, 45, ...10 ], "offset":0, "isReadOnly":false, "bigEndian":true, "nativeByteOrder":false, "mark":-1, "position":1257, "limit":1257, "capacity":1257, "address":0 }, "certificateChain":{ "hb":[ 45, 45, ...10 ], "offset":0, "isReadOnly":false, "bigEndian":true, "nativeByteOrder":false, "mark":-1, "position":1139, "limit":1139, "capacity":1139, "address":0 } }, "responseElements":null, "requestID":"request_ID", "eventID":"event_ID", "eventType":"AwsApiCall", "recipientAccountId":"account" }