View a markdown version of this page

日志记录 AWS 私有证书颁发机构 使用 API 调用 AWS CloudTrail - AWS 私有证书颁发机构

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

日志记录 AWS 私有证书颁发机构 使用 API 调用 AWS CloudTrail

AWS 私有证书颁发机构 与 AWS CloudTrail一项服务集成,该服务提供用户、角色或 AWS 服务在中执行的操作的记录 AWS 私有 CA。 CloudTrail 捕获 AWS 私有 CA 作为事件的 API 调用和签名操作。捕获的调用包括来自 AWS 私有 CA 控制台的调用和 AWS 私有 CA 对 API 操作的代码调用。如果您创建跟踪,则可以启用向 Amazon S3 存储桶持续交付事件,包括的事件 AWS 私有 CA。 CloudTrail 如果您未配置跟踪,仍可以在 CloudTrail 控制台的事件历史记录中查看最新事件。使用收集的信息 CloudTrail,您可以确定向谁发出了请求 AWS 私有 CA、发出请求的 IP 地址、谁提出了请求、何时提出请求以及其他详细信息。

要了解更多信息 CloudTrail,请参阅《AWS CloudTrail 用户指南》。

AWS 私有 CA 中的信息 CloudTrail

CloudTrail 在您创建帐户 AWS 账户 时已在您的上启用。当活动发生在中时 AWS 私有 CA,该活动将与 CloudTrail 事件历史记录中的其他 AWS 服务事件一起记录在事件中。您可以在中查看、搜索和下载最近的事件 AWS 账户。有关更多信息,请参阅使用事件历史记录查看 CloudTrail 事件。

要持续记录您的 AWS 账户事件(包括的事件) AWS 私有 CA,请创建跟踪。跟踪可以 CloudTrail 将日志文件传输到 Amazon S3 存储桶。默认情况下,在控制台中创建跟踪记录时,此跟踪记录应用于所有 AWS 区域。该跟踪记录 AWS 分区中所有区域的事件,并将日志文件传输到您指定的 Amazon S3 存储桶。此外,您可以配置其他 AWS 服务,以进一步分析和处理 CloudTrail 日志中收集的事件数据。有关更多信息,请参阅下列内容:

所有 AWS 私有 CA 操作均由 API 参考记录 CloudTrail 并记录在 AWS 私有 CA API 参考中。例如,对IssueCertificate和CreateAuditReport操作的ImportCACertificate调用会在 CloudTrail 日志文件中生成条目。

每个事件或日志条目都包含有关生成请求的人员信息。身份信息有助于您确定以下内容:

  • 请求是使用根或 AWS Identity and Access Management (IAM) 用户证书发出的。

  • 请求是使用角色还是联合用户的临时安全凭证发出的。

  • 请求是否由其他 AWS 服务发出。

有关更多信息,请参阅 CloudTrail userIdentity 元素。

注意

除了 Amazon S3,您还可以配置您的 CloudTrail 跟踪,将事件传送到亚马逊 CloudWatch 日志。配置后, CloudWatch 日志将接收与传送到您的 S3 存储桶相同 AWS 私有 CA 的事件。 AWS 私有 CA 不会将事件直接发布到 CloudWatch 日志。有关更多信息,请参阅《AWS CloudTrail 用户指南》中的向 CloudWatch 日志发送事件。

有关如何交 CloudTrail 付事件的信息(包括交付时间、耐久性以及与其他 AWS 服务的集成),请参阅获取和查看您的 CloudTrail 日志文件和AWS CloudTrail 服务等级协议。

AWS 私有 CA 管理事件

AWS 私有 CA 与集成 CloudTrail 以记录用户、角色或 AWS 服务在中执行的 API 操作 AWS 私有 CA。您可以使用 CloudTrail 实时监控 AWS 私有 CA API 请求并将日志存储在亚马逊简单存储服务、亚马逊 CloudWatch 日志和亚马逊 CloudWatch 事件中。 AWS 私有 CA 支持将以下操作和操作作为事件记录在 CloudTrail 日志文件中:

注意

CloudTrail 提供 API 调用和签名操作的实时事件流。有关您的私有 CA 颁发或吊销的所有证书的完整时间点清单,包括有效日期和吊销状态,请参阅。将审计报告与您的私有 CA 一起使用

识别原始请求者

当中间服务IssueCertificate代表最终用户或工作负载调用时,该 CloudTrail 事件会在userIdentity字段中记录中间服务的 IAM 身份,而不是原始请求者。

为了将证书颁发追溯到原始请求者,中间服务可以使用标准的 IAM 机制传播身份信息:

  • 会话标签 — 中间服务在通过担任其 IAM 角色时将识别信息(例如原始请求者的 ID)作为会话标签传递。 AWS STS这些标签显示在 CloudTrail 事件userIdentity区块下方sessionContext。有关更多信息,请参阅在 AWS STS中传递会话标签。

  • 源身份 -中间服务在担任其角色时设置源身份。源身份在角色链中 CloudTrail 是不可变的,并显示为。sourceIdentity有关更多信息,请参阅监控和控制使用假定角色采取的操作。

  • 任何地方的 IAM 角色 — 如果调用工作负载通过 IAM Roles Anywhere 使用证书进行身份验证,则证书的主体、颁发者和使用者备用名称 (SAN) 字段将自动映射到会话主体标签。 X.509 例如,SAN 中的 SPIFFE ID 显示为aws:PrincipalTag/x509SAN/URI。有关更多信息,请参阅 IAM 角色无处不在的信任模型。

这些身份属性记录在所有 AWS 服务调用的 CloudTrail 事件中,包括 AWS 私有 CA API 操作。

AWS 私有 CA 服务事件

除了从 API 调用中记录的管理事件外,还 AWS 私有 CA 会生成服务事件,让您可以查看代表您执行的内部操作。这些事件eventType的值为AwsServiceEvent,会自动记录到您的 CloudTrail 跟踪中。

IssueCertificateDetails 事件

AWS 私有 CA 当证书颁发尝试完成时生成一个IssueCertificateDetails事件。该事件记录结果——无论证书颁发成功还是颁发失败——并描述了证书颁发流程,包括以下详细信息:

  • TBS(待签名)证书结构(base64 编码的 DER)

  • 颁发 CA 的名称、授权密钥标识符和序列号

  • 颁发的证书的序列号、主题和有效期

  • 使用的签名算法和模板

  • 签发状态及失败原因(如果适用)

当共享 CA 颁发证书时,该事件会同时传送到 CA 所有者的账户和申请者的账户。对于失败的发放尝试,该事件可能包含解释失败原因的statusReason字段。

注意

该IssueCertificateDetailsSignCertificate活动通过提供有关发行的更多元数据,包括失败详细信息和完整的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 subject issuerNameserialNumber,从 TBS 证书派 AWS 私有 CA 生的字段(、、、和issuerAuthorityKeyIdentifier)才会出现。

{ "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(待签名)证书结构的 base64 编码的 DER 表示形式。包含与颁发的证书中显示的相同信息。对于签发失败,仅在生成 TBS 证书后失败时出现。
issuerAuthorityKeyIdentifier 颁发 CA 的权限密钥标识符,从 TBS 证书扩展名中提取,格式化为以冒号分隔的十六进制字节。当证书不包含授权密钥标识符扩展名(例如,自签名的根 CA 证书)时,如果失败发生在 TBS 证书生成之前,则省略此值。
issuerSerialNumber 颁发的 CA 证书的序列号,格式为以冒号分隔的十六进制字节。当 CA 证书不可用时省略。
issuerName 颁发 CA 的可分辨名称 (DN),来自 TBS 证书。对于签发失败,仅在生成 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 流程,而不是客户负责人。在这种情况下,该事件不包含requesterAccountIdrequesterArn、或requesterServicePrincipal字段。不要假设这三个字段中的一个总是存在的。

示例 AWS 私有 CA events

跟踪是一种配置,它允许将事件作为日志文件传输到您指定的 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" }