AWS CLI acm-pca describe-certificate-authority-audit-report 命令详解:查询私有 CA 审计报告状态与存储位置
【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli
本指南以 AWS CLI 中aws acm-pca describe-certificate-authority-audit-report命令为核心,讲解如何查询由create-certificate-authority-audit-report触发的审计报告当前状态(生成中 / 成功 / 失败)及其在 S3 中的落地位置(桶名与对象 Key),并给出可复制的完整命令与输出字段解析。读完本文,你将掌握该命令的两个必填参数、四种响应字段的含义、三类异常场景的处理方式,以及它在"私钥使用即产生审计"这一安全模型下的完整调用链路。
命令定位:审计私有 CA 私钥使用情况的查询入口
在 AWS Private CA(ACM Private CA)服务中,审计报告记录的是私钥被使用的审计事件。根据仓库中的服务模型定义 service-2.json,DescribeCertificateAuthorityAuditReport操作的作用是:
列出通过调用
CreateCertificateAuthorityAuditReport操作创建的特定审计报告的信息。审计信息在每次使用证书颁发机构(CA)私钥时创建;私钥在调用IssueCertificate操作或RevokeCertificate操作时使用。
也就是说,每次 CA 签发新证书或吊销证书,都会留下一条审计记录,而describe-certificate-authority-audit-report正是用于查询这份审计报告"是否生成完毕、放在了哪里"的接口。它本身不产出数据,而是配合创建命令完成"创建 → 轮询状态 → 定位文件 → 下载分析"的完整闭环。
在服务模型中,该操作的定义如下(service-2.json 第 133-147 行):
- HTTP 协议:
POST / - 输入形状:
DescribeCertificateAuthorityAuditReportRequest - 输出形状:
DescribeCertificateAuthorityAuditReportResponse - 错误类型:
ResourceNotFoundException、InvalidArgsException、InvalidArnException
命令行层面的入口则位于 AWS CLI 的 acm-pca 命令族中,官方示例文档见 describe-certificate-authority-audit-report.rst。
命令语法与必填参数
该命令的完整用法如下:
aws acm-pca describe-certificate-authority-audit-report \ --certificate-authority-arn <value> \ --audit-report-id <value>根据 service-2.json 中DescribeCertificateAuthorityAuditReportRequest形状(第 1052-1068 行)的定义,两个参数均为必填:
| 参数 | 类型 | 约束与说明 |
|---|---|---|
--certificate-authority-arn | Arn(字符串) | 私有 CA 的 Amazon Resource Name(ARN),形式固定为arn:aws:acm-pca:<region>:<account>:certificate-authority/<12345678-1234-1234-1234-123456789012>。注意此处 CA ARN 末尾没有/certificate/...后缀,它标识的是 CA 本身而非其签发的证书 |
--audit-report-id | AuditReportId(字符串) | 调用create-certificate-authority-audit-report时返回的报告 ID,即创建响应中的AuditReportId字段 |
AuditReportId 的格式约束
服务模型对AuditReportId有严格的格式约束(service-2.json 第 559-564 行):
- 长度:固定36 个字符(
min: 36, max: 36) - 正则模式:
[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}
该模式即标准的 UUID 形式(8-4-4-4-12 的小写十六进制分段),因此你在终端中看到的审计报告 ID 一定是一个类似11111111-2222-3333-4444-555555555555的 UUID 字符串。传入不符合该模式的 ID 会触发InvalidArgsException。
官方示例命令
仓库中的官方示例(describe-certificate-authority-audit-report.rst)给出了最直接的单行用法,描述为"列出由 ARN 标识的 CA 的指定审计报告信息":
aws acm-pca describe-certificate-authority-audit-report \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/99999999-8888-7777-6666-555555555555 \ --audit-report-id 11111111-2222-3333-4444-555555555555也可以写成便于复制粘贴的单行形式:
aws acm-pca describe-certificate-authority-audit-report --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/99999999-8888-7777-6666-555555555555 --audit-report-id 11111111-2222-3333-4444-555555555555命令中两个参数的含义:
--certificate-authority-arn:被审计的私有 CA 的 ARN,示例中使用的是us-west-2区域、账户 ID 为123456789012的虚构 CA。--audit-report-id:要查询的审计报告 ID,来自创建报告时的返回结果。
注意:示例中的 ARN 与报告 ID 均为文档演示用的占位值。实际使用时,CA ARN 应来自
aws acm-pca list-certificate-authorities或create-certificate-authority的输出,报告 ID 应来自create-certificate-authority-audit-report的返回结果。
输出字段详解:报告状态与存储位置
DescribeCertificateAuthorityAuditReportResponse形状(service-2.json 第 1069-1089 行)定义了命令返回的四个字段:
| 输出字段 | 类型 | 含义 |
|---|---|---|
AuditReportStatus | AuditReportStatus(枚举) | 报告创建当前的状态:CREATING(生成中)、SUCCESS(成功)、FAILED(失败) |
S3BucketName | S3BucketName(字符串) | 存放报告的 S3 桶名称,长度约束为 3-63 字符(service-2.json 第 1925-1929 行) |
S3Key | S3Key(字符串) | 唯一标识 S3 桶中报告文件的对象 Key,最长 1024 字符 |
CreatedAt | TStamp(时间戳) | 报告创建的时间 |
一条典型的查询输出(JSON 格式,状态为成功时)形如:
{ "AuditReportStatus": "SUCCESS", "S3BucketName": "your-bucket-name", "S3Key": "audit-report/11111111-2222-3333-4444-555555555555.json", "CreatedAt": "2026-09-12T18:30:00+00:00" }关于这三个状态值的语义(AuditReportStatus枚举定义见 service-2.json 第 572-579 行):
- CREATING:报告仍在生成中,此时
S3BucketName和S3Key字段可能为空,需要稍后重试查询。 - SUCCESS:报告已生成完毕,
S3BucketName与S3Key已就绪,可以直接据此从 S3 下载文件。 - FAILED:报告生成失败,需要结合 CA 状态与创建报告的参数排查原因(如目标 S3 桶权限不正确)。
完整工作流:从创建审计报告到查询并下载
describe-certificate-authority-audit-report无法凭空工作,其报告 ID 来自创建命令。仓库中配套的创建命令示例(create-certificate-authority-audit-report.rst)给出了完整用法:
aws acm-pca create-certificate-authority-audit-report \ --certificate-authority-arn arn:aws:acm-pca:us-east-1:accountid:certificate-authority/12345678-1234-1234-1234-123456789012 \ --s3-bucket-name your-bucket-name \ --audit-report-response-format JSON该命令有三个必填参数(CreateCertificateAuthorityAuditReportRequest,service-2.json 第 756-777 行):--certificate-authority-arn、--s3-bucket-name(报告落地的 S3 桶)和--audit-report-response-format(报告格式)。报告格式仅支持两种枚举值(AuditReportResponseFormat,第 565-571 行):JSON或CSV。创建成功后,服务会返回AuditReportId和S3Key(第 778-790 行),其中的AuditReportId正是查询命令所需的第二个参数。
推荐的标准操作闭环如下:
# 1. 创建审计报告(格式选 JSON 或 CSV) aws acm-pca create-certificate-authority-audit-report \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/99999999-8888-7777-6666-555555555555 \ --s3-bucket-name your-bucket-name \ --audit-report-response-format JSON # 2. 记录返回的 AuditReportId,随后查询报告状态与存储位置 aws acm-pca describe-certificate-authority-audit-report \ --certificate-authority-arn arn:aws:acm-pca:us-west-2:123456789012:certificate-authority/99999999-8888-7777-6666-555555555555 \ --audit-report-id 11111111-2222-3333-4444-555555555555 # 3. 当 AuditReportStatus 为 SUCCESS 时,从返回的 S3BucketName + S3Key 下载报告 aws s3 cp s3://your-bucket-name/<S3Key> ./audit-report.json由于报告生成是异步的,刚创建完立即查询通常会得到CREATING状态。在实际的自动化脚本中,建议对describe-certificate-authority-audit-report进行轮询,直到AuditReportStatus变为SUCCESS或FAILED再继续后续处理。值得一提的是,仓库的 waiters 配置 waiters-2.json 也引用了该操作,说明官方在 SDK 层面同样将其视为等待轮询的目标操作,可用于实现"等待审计报告就绪"的同步语义。
错误场景与排查要点
根据服务模型(service-2.json 第 141-145 行),该命令可能抛出三类异常:
| 异常类型 | 触发场景 | 排查建议 |
|---|---|---|
ResourceNotFoundException | 指定的 CA ARN 或审计报告 ID 不存在 | 确认 CA 未被删除、报告 ID 确实由创建命令返回 |
InvalidArgsException | 参数格式非法,例如审计报告 ID 不符合 UUID 格式(36 字符、8-4-4-4-12 分段) | 核对--audit-report-id是否符合[a-z0-9]{8}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{4}-[a-z0-9]{12}模式 |
InvalidArnException | CA ARN 格式不正确 | 确认 ARN 是否形如arn:aws:acm-pca:<region>:<account>:certificate-authority/<uuid>,且区域与当前 CLI 配置一致 |
此外,即使命令执行成功返回SUCCESS,也可能出现"报告文件不可读"的情况——这通常与创建报告时指定的 S3 桶权限有关,需要通过 S3 侧排查桶策略与对象权限。
典型应用场景
- 合规审计:定期创建并查询审计报告,获取私有 CA 的私钥使用历史(每次
issue-certificate与revoke-certificate都会产生审计记录),满足内部审计或外部合规要求。 - 自动化巡检脚本:在 CI/CD 管道中调用
create-certificate-authority-audit-report后,通过本命令轮询直到SUCCESS,再从返回的 S3 位置拉取报告做程序化分析。 - 异常排查:当 CA 出现可疑签发/吊销行为时,快速定位对应时间段的审计报告文件(通过
CreatedAt字段核对时间窗口)。
小结
aws acm-pca describe-certificate-authority-audit-report是 AWS Private CA 审计能力的关键查询接口:只需 CA ARN 与报告 ID 两个必填参数,即可获知审计报告的生成状态(CREATING/SUCCESS/FAILED)及其在 S3 中的精确位置(桶名 + 对象 Key)与创建时间。结合 create-certificate-authority-audit-report 创建报告、轮询状态、再从 S3 下载文件,即可形成一条完整的私有 CA 私钥使用审计链路。相关的官方示例与底层服务模型分别位于 awscli/examples/acm-pca/ 与 awscli/botocore/data/acm-pca/2017-08-22/,可供进一步查阅。
【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考